21 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters,
23 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
const&
27 auto const bhe_if_use_python_bc_conf =
30 DBUG(
"If using python boundary condition : {:s}",
31 (bhe_if_use_python_bc_conf) ?
"true" :
"false");
33 auto const borehole_geometry =
39 Pipe const outer_pipe =
41 createPipe(pipes_config.getConfigSubtree(
"outer"), parameters);
42 Pipe const inner_pipe =
44 createPipe(pipes_config.getConfigSubtree(
"inner"), parameters);
45 const auto pipe_longitudinal_dispersion_length =
47 pipes_config.getConfigParameter<
double>(
48 "longitudinal_dispersion_length");
50 pipe_longitudinal_dispersion_length};
52 double const annulus_diameter =
54 if (annulus_diameter <= 0)
57 "Invalid coaxial pipe geometry: outer pipe inner diameter ({:g}) "
58 "must be greater than inner pipe outside diameter ({:g}).",
59 pipes.outer_pipe.diameter, pipes.inner_pipe.outsideDiameter());
65 auto const refrigerant =
76 return {borehole_geometry, refrigerant, grout,
77 flowAndTemperatureControl, pipes, bhe_if_use_python_bc_conf};
80template <
typename T_BHE>
83 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters,
85 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
const&
89 return {std::get<0>(coaxial), std::get<1>(coaxial), std::get<2>(coaxial),
90 std::get<3>(coaxial), std::get<4>(coaxial), std::get<5>(coaxial)};
95 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters,
97 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
const&
102 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters,
103 std::map<std::string,
104 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
const&
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
T getConfigParameter(std::string const ¶m) const
ConfigTree getConfigSubtree(std::string const &root) const
RefrigerantProperties createRefrigerantProperties(BaseLib::ConfigTree const &config)
template BHE_CXA createBHECoaxial< BHE_CXA >(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
double coaxialPipesAnnulusDiameter(Pipe const &inner_pipe, Pipe const &outer_pipe)
FlowAndTemperatureControl createFlowAndTemperatureControl(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves, RefrigerantProperties const &refrigerant)
template BHE_CXC createBHECoaxial< BHE_CXC >(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
BoreholeGeometry createBoreholeGeometry(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters)
Pipe createPipe(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters)
T_BHE createBHECoaxial(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
std::variant< InflowTemperature, Power, BuildingPower, BuildingPowerHotWaterActiveCooling, BuildingPowerHotWaterPassiveCooling, BuildingPowerHotWater, BuildingPowerActiveCooling, BuildingPowerPassiveCooling, ActiveCooling > FlowAndTemperatureControl
GroutParameters createGroutParameters(BaseLib::ConfigTree const &config)
static std::tuple< BoreholeGeometry, RefrigerantProperties, GroutParameters, FlowAndTemperatureControl, PipeConfigurationCoaxial, bool > parseBHECoaxialConfig(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)