Commit 25b70e8f authored by ShuangChen88's avatar ShuangChen88

[BHE] add a new flow and temperature curve control condition

fixed comments and the description of the user guide

add the tag-documentation files for the new case
parent 2a717c29
It means the flow rate in the pipes varying with time. the flow rate curve should be presented and set as input data. The Flow rate in the curve needs to be offered by using m3/s as its unit.
......@@ -44,6 +44,22 @@ FlowAndTemperatureControl createFlowAndTemperatureControl(
return TemperatureCurveConstantFlow{flow_rate, temperature_curve};
}
if (type == "TemperatureCurveFlowCurve")
{
auto const& flow_rate_curve = *BaseLib::getOrError(
curves,
//! \ogs_file_param{prj__processes__process__HEAT_TRANSPORT_BHE__borehole_heat_exchangers__borehole_heat_exchanger__flow_and_temperature_control__TemperatureCurveFlowCurve__flow_rate_curve}
config.getConfigParameter<std::string>("flow_rate_curve"),
"Required flow curve not found.");
auto const& temperature_curve = *BaseLib::getOrError(
curves,
//! \ogs_file_param{prj__processes__process__HEAT_TRANSPORT_BHE__borehole_heat_exchangers__borehole_heat_exchanger__flow_and_temperature_control__TemperatureCurveFlowCurve__temperature_curve}
config.getConfigParameter<std::string>("temperature_curve"),
"Required temperature curve not found.");
return TemperatureCurveFlowCurve{flow_rate_curve, temperature_curve};
}
if (type == "FixedPowerConstantFlow")
{
//! \ogs_file_param{prj__processes__process__HEAT_TRANSPORT_BHE__borehole_heat_exchangers__borehole_heat_exchanger__flow_and_temperature_control__FixedPowerConstantFlow__power}
......
......@@ -37,6 +37,18 @@ struct TemperatureCurveConstantFlow
MathLib::PiecewiseLinearInterpolation const& temperature_curve;
};
struct TemperatureCurveFlowCurve
{
FlowAndTemperature operator()(double const /*T_out*/,
double const time) const
{
return {flow_rate_curve.getValue(time),
temperature_curve.getValue(time)};
}
MathLib::PiecewiseLinearInterpolation const& flow_rate_curve;
MathLib::PiecewiseLinearInterpolation const& temperature_curve;
};
struct FixedPowerConstantFlow
{
FlowAndTemperature operator()(double const T_out,
......@@ -106,6 +118,7 @@ struct BuildingPowerCurveConstantFlow
};
using FlowAndTemperatureControl = std::variant<TemperatureCurveConstantFlow,
TemperatureCurveFlowCurve,
FixedPowerConstantFlow,
FixedPowerFlowCurve,
PowerCurveConstantFlow,
......
......@@ -121,6 +121,8 @@ Four type of flow and temperature control patterns are provided in OGS.
The key word < flow_rate > applies here, along with the curve defined in the < curves >.
* TemperatureCurveConstantFlow:\
It means BHE has a constant < flow_rate > while the inflow temperature following the values defined in the < curves >.
* TemperatureCurveFlowCurve:\
It means both the BHE inflow rate and temperature values are following the corresponding curves.
The unit of < power > is in $\mathrm{W}$ and < flow_rate > is in $\mathrm{m^{3}/s}$. For heating applications, thermal energy is extracted from the subsurface, then a negative power value should be given. It is vice versa for cooling applications.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment