OGS
CreateThermalTwoPhaseFlowWithPPMaterialProperties.cpp
Go to the documentation of this file.
1 
12 
13 #include <tuple>
14 
15 #include "BaseLib/Logging.h"
27 #include "MeshLib/Mesh.h"
28 #include "MeshLib/PropertyVector.h"
29 #include "ParameterLib/Parameter.h"
32 
33 namespace ProcessLib
34 {
35 namespace ThermalTwoPhaseFlowWithPP
36 {
37 std::unique_ptr<ThermalTwoPhaseFlowWithPPMaterialProperties>
39  BaseLib::ConfigTree const& config,
40  MeshLib::PropertyVector<int> const* material_ids,
41  std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters)
42 {
43  DBUG(
44  "Reading material properties of nonisothermal two-phase flow process.");
45  auto two_phase_model_tuple =
47  config, material_ids, parameters);
48  auto two_phase_material_model =
49  std::move(std::get<0>(two_phase_model_tuple));
50  auto const& fluid_config = std::get<1>(two_phase_model_tuple);
51 
52  // Get fluid properties
53  auto const& spec_heat_capacity_solid_conf =
55  fluid_config.getConfigSubtree("specific_heat_capacity_solid");
56  auto specific_heat_capacity_solid =
58  spec_heat_capacity_solid_conf);
59  auto const& spec_heat_capacity_water_conf =
61  fluid_config.getConfigSubtree("specific_heat_capacity_water");
62  auto specific_heat_capacity_water =
64  spec_heat_capacity_water_conf);
65  auto const& spec_heat_capacity_air_conf =
67  fluid_config.getConfigSubtree("specific_heat_capacity_air");
68  auto specific_heat_capacity_air =
70  spec_heat_capacity_air_conf);
71  auto const& spec_heat_capacity_vapor_conf =
73  fluid_config.getConfigSubtree("specific_heat_capacity_water_vapor");
74  auto specific_heat_capacity_vapor =
76  spec_heat_capacity_vapor_conf);
77 
78  auto const& thermal_conductivity_dry_solid_conf =
80  fluid_config.getConfigSubtree("thermal_conductivity_dry_solid");
81  auto thermal_conductivity_dry_solid =
83  thermal_conductivity_dry_solid_conf);
84  auto const& thermal_conductivity_wet_solid_conf =
86  fluid_config.getConfigSubtree("thermal_conductivity_wet_solid");
87  auto thermal_conductivity_wet_solid =
89  thermal_conductivity_wet_solid_conf);
90 
91  std::unique_ptr<MaterialLib::Fluid::WaterVaporProperties> vapor_property =
92  std::make_unique<MaterialLib::Fluid::WaterVaporProperties>();
93 
94  return std::make_unique<ThermalTwoPhaseFlowWithPPMaterialProperties>(
95  std::move(two_phase_material_model),
96  std::move(specific_heat_capacity_solid),
97  std::move(specific_heat_capacity_water),
98  std::move(specific_heat_capacity_air),
99  std::move(specific_heat_capacity_vapor),
100  std::move(thermal_conductivity_dry_solid),
101  std::move(thermal_conductivity_wet_solid),
102  std::move(vapor_property));
103 }
104 
105 } // namespace ThermalTwoPhaseFlowWithPP
106 } // namespace ProcessLib
A function for creating a thermal conductivity model for fluid.
A function for creating a specific heat capacity model for fluid.
void DBUG(char const *fmt, Args const &... args)
Definition: Logging.h:27
Definition of the Mesh class.
Definition of the PiecewiseLinearInterpolation class.
std::unique_ptr< FluidProperty > createSpecificFluidHeatCapacityModel(BaseLib::ConfigTree const &config)
std::unique_ptr< FluidProperty > createFluidThermalConductivityModel(BaseLib::ConfigTree const &config)
std::tuple< std::unique_ptr< TwoPhaseFlowWithPPMaterialProperties >, BaseLib::ConfigTree > createTwoPhaseFlowMaterialProperties(BaseLib::ConfigTree const &config, MeshLib::PropertyVector< int > const *material_ids, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters)
std::unique_ptr< ThermalTwoPhaseFlowWithPPMaterialProperties > createThermalTwoPhaseFlowWithPPMaterialProperties(BaseLib::ConfigTree const &config, MeshLib::PropertyVector< int > const *material_ids, std::vector< std::unique_ptr< ParameterLib::ParameterBase >> const &parameters)