OGS 6.2.0-555-gc9b84ea78.dirty.20190716144505
FlowAndTemperatureControl.h
Go to the documentation of this file.
1 
12 #pragma once
13 
14 #include <boost/variant.hpp>
16 
17 namespace ProcessLib
18 {
19 namespace HeatTransportBHE
20 {
21 namespace BHE
22 {
24 {
25  double const flow_rate;
26  double const temperature;
27 };
28 
30 {
31  FlowAndTemperature operator()(double const /*T_out*/,
32  double const time) const
33  {
34  return {flow_rate, temperature_curve.getValue(time)};
35  }
36  double flow_rate;
38 };
39 
41 {
42  FlowAndTemperature operator()(double const T_out,
43  double const /*time*/) const
44  {
45  return {flow_rate, power / flow_rate / heat_capacity / density + T_out};
46  }
47  double flow_rate;
48  double power; // Value is expected to be in Watt.
49  double heat_capacity;
50  double density;
51 };
52 
54 {
55  FlowAndTemperature operator()(double const T_out, double const time) const
56  {
57  double const flow_rate = flow_curve.getValue(time);
58  return {flow_rate, power / flow_rate / heat_capacity / density + T_out};
59  }
61 
62  double power; // Value is expected to be in Watt.
63  double heat_capacity;
64  double density;
65 };
66 
68 {
69  FlowAndTemperature operator()(double const T_out, double const time) const
70  {
71  double const power = power_curve.getValue(time);
72  return {flow_rate, power / flow_rate / heat_capacity / density + T_out};
73  }
75 
76  double flow_rate;
77  double heat_capacity;
78  double density;
79 };
80 
85 
86 } // namespace BHE
87 } // namespace HeatTransportBHE
88 } // namespace ProcessLib
FlowAndTemperature operator()(double const T_out, double const time) const
Definition of the PiecewiseLinearInterpolation class.
FlowAndTemperature operator()(double const T_out, double const time) const
FlowAndTemperature operator()(double const T_out, double const) const
MathLib::PiecewiseLinearInterpolation const & temperature_curve
FlowAndTemperature operator()(double const, double const time) const
boost::variant< TemperatureCurveConstantFlow, FixedPowerConstantFlow, FixedPowerFlowCurve, PowerCurveConstantFlow > FlowAndTemperatureControl
MathLib::PiecewiseLinearInterpolation const & power_curve
MathLib::PiecewiseLinearInterpolation const & flow_curve