32 flow_rate = (std::abs(flow_rate) < flow_rate_min) ? 0.0 : flow_rate;
34 if (std::abs(power) < power_min)
36 return {flow_rate, T_out};
42 "BHE power {:0.2f} W with flow rate of 0 m3/s requested, "
43 "calculation not possible!",
46 return {flow_rate, power / flow_rate / heat_capacity / density + T_out};
52 double const time)
const
66 double const time)
const
69 flow_rate = (std::abs(flow_rate) <
flow_rate_min) ? 0.0 : flow_rate;
104 double const flow_rate =
flow_curve.getValue(time);
153 double const flow_rate =
flow_curve.getValue(time);
177 double const power_building =
181 double const power = power_building - power_building / cop;
205 double const power_heating =
207 double const cop_heating =
210 double const power_hot_water =
212 double const cop_hot_water =
215 double const power_cooling =
217 double const cop_cooling =
220 double const flow_rate =
flow_curve.getValue(time);
222 double const power = power_heating - power_heating / cop_heating +
223 power_hot_water - power_hot_water / cop_hot_water +
224 power_cooling - power_cooling / cop_cooling;
250 double const power_heating =
252 double const cop_heating =
255 double const power_hot_water =
257 double const cop_hot_water =
262 double const flow_rate =
flow_curve.getValue(time);
264 double const power = power_heating - power_heating / cop_heating +
265 power_hot_water - power_hot_water / cop_hot_water +
292 double const power_heating =
294 double const cop_heating =
297 double const power_hot_water =
299 double const cop_hot_water =
302 double const flow_rate =
flow_curve.getValue(time);
304 double const power = power_heating - power_heating / cop_heating +
305 power_hot_water - power_hot_water / cop_hot_water;
330 double const power_heating =
332 double const cop_heating =
335 double const power_cooling =
337 double const cop_cooling =
340 double const flow_rate =
flow_curve.getValue(time);
342 double const power = power_heating - power_heating / cop_heating +
343 power_cooling - power_cooling / cop_cooling;
368 double const power_heating =
370 double const cop_heating =
375 double const flow_rate =
flow_curve.getValue(time);
378 power_heating - power_heating / cop_heating + power_cooling;
403 double const power_heating =
405 double const cop_heating =
408 double const flow_rate =
flow_curve.getValue(time);
410 double const power = power_heating - power_heating / cop_heating;
434 double const power_cooling =
436 double const cop_cooling =
439 double const flow_rate =
flow_curve.getValue(time);
441 double const power = power_cooling - power_cooling / cop_cooling;
std::variant< TemperatureCurveConstantFlow, TemperatureCurveFlowCurve, FixedPowerConstantFlow, FixedPowerFlowCurve, PowerCurveConstantFlow, PowerCurveFlowCurve, BuildingPowerCurveConstantFlow, BuildingPowerCurveHotWaterCurveActiveCoolingCurveFlowCurve, BuildingPowerCurveHotWaterCurvePassiveCoolingCurveFlowCurve, BuildingPowerCurveHotWaterCurveFlowCurve, BuildingPowerCurveActiveCoolingCurveFlowCurve, BuildingPowerCurvePassiveCoolingCurveFlowCurve, BuildingPowerCurveFlowCurve, ActiveCoolingCurveFlowCurve > FlowAndTemperatureControl
FlowAndTemperature check_power_and_flow_rate(double flow_rate, double power, double heat_capacity, double density, double T_out, double flow_rate_min, double power_min)
BuildingPowerCurves const building_active_cooling_curves
FlowAndTemperature operator()(double const T_out, double const time) const
MathLib::PiecewiseLinearInterpolation const & flow_curve
static constexpr bool is_power_bc
BuildingPowerCurves const building_heating_curves
static constexpr bool is_power_bc
FlowAndTemperature operator()(double const T_out, double const time) const
BuildingPowerCurves const building_active_cooling_curves
MathLib::PiecewiseLinearInterpolation const & flow_curve
BuildingPowerCurves const building_power_curves
static constexpr bool is_power_bc
FlowAndTemperature operator()(double const T_out, double const time) const
BuildingPowerCurves const building_heating_curves
static constexpr bool is_power_bc
MathLib::PiecewiseLinearInterpolation const & flow_curve
FlowAndTemperature operator()(double const T_out, double const time) const
FlowAndTemperature operator()(double const T_out, double const time) const
BuildingPowerCurves const building_heating_curves
static constexpr bool is_power_bc
BuildingPowerCurves const building_active_cooling_curves
BuildingPowerCurves const building_hot_water_curves
MathLib::PiecewiseLinearInterpolation const & flow_curve
BuildingPowerCurves const building_hot_water_curves
FlowAndTemperature operator()(double const T_out, double const time) const
MathLib::PiecewiseLinearInterpolation const & flow_curve
static constexpr bool is_power_bc
BuildingPowerCurves const building_heating_curves
FlowAndTemperature operator()(double const T_out, double const time) const
static constexpr bool is_power_bc
MathLib::PiecewiseLinearInterpolation const & cooling_power
BuildingPowerCurves const building_heating_curves
BuildingPowerCurves const building_hot_water_curves
MathLib::PiecewiseLinearInterpolation const & flow_curve
BuildingPowerCurves const building_heating_curves
MathLib::PiecewiseLinearInterpolation const & cooling_power
MathLib::PiecewiseLinearInterpolation const & flow_curve
FlowAndTemperature operator()(double const T_out, double const time) const
static constexpr bool is_power_bc
FlowAndTemperature operator()(double const T_out, double const) const
static constexpr bool is_power_bc
MathLib::PiecewiseLinearInterpolation const & flow_curve
FlowAndTemperature operator()(double const T_out, double const time) const
static constexpr bool is_power_bc
static constexpr bool is_power_bc
FlowAndTemperature operator()(double const T_out, double const time) const
MathLib::PiecewiseLinearInterpolation const & power_curve
MathLib::PiecewiseLinearInterpolation const & power_curve
static constexpr bool is_power_bc
FlowAndTemperature operator()(double const T_out, double const time) const
MathLib::PiecewiseLinearInterpolation const & flow_curve
FlowAndTemperature operator()(double const, double const time) const
MathLib::PiecewiseLinearInterpolation const & temperature_curve
static constexpr bool is_power_bc
MathLib::PiecewiseLinearInterpolation const & flow_rate_curve
static constexpr bool is_power_bc
MathLib::PiecewiseLinearInterpolation const & temperature_curve
FlowAndTemperature operator()(double const, double const time) const