36{
38
40 auto const property_type = config.peekConfigParameter<std::string>("type");
41
42 if (property_type == "Constant")
43 {
44 return createConstant(config);
45 }
46 if (property_type == "Curve")
47 {
48 return createCurve(config, curves);
49 }
50 if (property_type == "Linear")
51 {
53 }
54
55 if (property_type == "Exponential")
56 {
58 }
59 if (property_type == "Function")
60 {
62 }
63
64 if (property_type == "Parameter")
65 {
67 }
68
69 if (boost::iequals(property_type, "AverageMolarMass"))
70 {
72 }
73
74 if (boost::iequals(property_type, "ClausiusClapeyron"))
75 {
77 }
78
79 if (boost::iequals(property_type, "CubicLawPermeability"))
80 {
82 }
83
84 if (boost::iequals(property_type, "Dupuit"))
85 {
87 }
88
89 if (boost::iequals(property_type,
90 "EffectiveThermalConductivityPorosityMixing"))
91 {
93 geometry_dimension, config, local_coordinate_system);
94 }
95
96 if (boost::iequals(property_type, "IdealGasLaw"))
97 {
99 }
100
101 if (boost::iequals(property_type, "PengRobinson"))
102 {
104 }
105
106 if (boost::iequals(property_type, "IdealGasLawBinaryMixture"))
107 {
109 }
110
111 if (boost::iequals(property_type, "StrainDependentPermeability"))
112 {
114 geometry_dimension, config, parameters, local_coordinate_system);
115 }
116
117 if (boost::iequals(property_type, "GasPressureDependentPermeability"))
118 {
120 geometry_dimension, config, parameters, local_coordinate_system);
121 }
122
123 if (boost::iequals(property_type, "EmbeddedFracturePermeability"))
124 {
126 parameters);
127 }
128
129 if (boost::iequals(property_type,
130 "OrthotropicEmbeddedFracturePermeability"))
131 {
133 geometry_dimension, config, parameters);
134 }
135
136 if (boost::iequals(property_type,
137 "PermeabilityMohrCoulombFailureIndexModel"))
138 {
140 geometry_dimension, config, parameters, local_coordinate_system);
141 }
142
143 if (boost::iequals(property_type, "KozenyCarman"))
144 {
146 }
147
148 if (boost::iequals(property_type, "VermaPruess"))
149 {
151 }
152
153 if (boost::iequals(property_type, "PermeabilityOrthotropicPowerLaw"))
154 {
156 local_coordinate_system);
157 }
158
159 if (boost::iequals(property_type, "PorosityFromMassBalance"))
160 {
162 }
163
164 if (boost::iequals(property_type, "TransportPorosityFromMassBalance"))
165 {
167 }
168
169 if (boost::iequals(property_type, "SaturationBrooksCorey"))
170 {
172 }
173
174 if (boost::iequals(property_type, "RelPermBrooksCorey"))
175 {
177 }
178
179 if (boost::iequals(property_type, "RelPermBrooksCoreyNonwettingPhase"))
180 {
182 }
183
184 if (boost::iequals(property_type, "SaturationLiakopoulos"))
185 {
187 }
188
189 if (boost::iequals(property_type, "RelPermLiakopoulos"))
190 {
192 }
193
194 if (boost::iequals(property_type, "SaturationExponential"))
195 {
197 }
198 if (boost::iequals(property_type, "SaturationVanGenuchten"))
199 {
201 }
202
203 if (boost::iequals(property_type,
204 "SaturationVanGenuchtenWithVolumetricStrain"))
205 {
207 }
208
209 if (boost::iequals(property_type, "CapillaryPressureVanGenuchten"))
210 {
212 }
213
214 if (boost::iequals(property_type,
215 "CapillaryPressureRegularizedVanGenuchten"))
216 {
218 }
219
220 if (boost::iequals(property_type, "RelativePermeabilityVanGenuchten"))
221 {
223 }
224
225 if (boost::iequals(property_type,
226 "RelativePermeabilityNonWettingPhaseVanGenuchtenMualem"))
227 {
229 }
230
231 if (boost::iequals(property_type, "RelativePermeabilityUdell"))
232 {
234 }
235
236 if (boost::iequals(property_type,
237 "RelativePermeabilityUdellNonwettingPhase"))
238 {
240 }
241
242 if (boost::iequals(property_type,
243 "RelativePermeabilityGeneralizedPowerNonwettingPhase"))
244 {
246 }
247
248 if (boost::iequals(property_type, "RelativePermeabilityGeneralizedPower"))
249 {
251 }
252
253 if (boost::iequals(property_type, "SaturationDependentSwelling"))
254 {
256 local_coordinate_system);
257 }
258
259 if (boost::iequals(property_type, "TemperatureDependentFraction"))
260 {
262 }
263
264 if (boost::iequals(property_type, "SpecificHeatCapacityWithLatentHeat"))
265 {
267 }
268
269 if (boost::iequals(property_type, "BishopsPowerLaw"))
270 {
272 }
273
274 if (boost::iequals(property_type, "BishopsSaturationCutoff"))
275 {
277 }
278
279 if (boost::iequals(property_type, "LinearSaturationSwellingStress"))
280 {
282 }
283
284 if (boost::iequals(property_type, "SaturationWeightedThermalConductivity"))
285 {
287 config, parameters);
288 }
289
290 if (boost::iequals(property_type, "WaterDensityIAPWSIF97Region1"))
291 {
293 }
294
295 if (boost::iequals(property_type,
296 "WaterSaturationTemperatureIAPWSIF97Region4"))
297 {
299 }
300
301 if (boost::iequals(property_type, "WaterEnthalpyIAPWSIF97Region1"))
302 {
304 }
305
306 if (boost::iequals(property_type, "WaterLiquidDensityIAPWSIF97Region4"))
307 {
309 }
310
311 if (boost::iequals(property_type, "WaterVapourDensityIAPWSIF97Region4"))
312 {
314 }
315
316 if (boost::iequals(property_type, "WaterLiquidEnthalpyIAPWSIF97Region4"))
317 {
319 }
320
321 if (boost::iequals(property_type, "WaterVapourEnthalpyIAPWSIF97Region4"))
322 {
324 }
325
326 if (boost::iequals(property_type, "WaterTemperatureIAPWSIF97Region1"))
327 {
329 }
330
331 if (boost::iequals(property_type, "WaterVapourDensity"))
332 {
334 }
335
336 if (boost::iequals(property_type, "VapourDiffusionFEBEX"))
337 {
339 }
340
341 if (boost::iequals(property_type, "VapourDiffusionDeVries"))
342 {
344 }
345
346 if (boost::iequals(property_type, "VapourDiffusionPMQ"))
347 {
349 }
350
351 if (boost::iequals(property_type, "LinearWaterVapourLatentHeat"))
352 {
354 }
355
356 if (boost::iequals(property_type,
357 "WaterVapourLatentHeatWithCriticalTemperature"))
358 {
360 }
361
362 if (boost::iequals(property_type, "TemperatureDependentDiffusion"))
363 {
365 }
366
367 if (boost::iequals(property_type, "VolumeFractionAverage"))
368 {
370 }
371
372 if (boost::iequals(property_type, "WaterViscosityIAPWS"))
373 {
375 }
376
377 if (boost::iequals(property_type, "LiquidViscosityVogels"))
378 {
380 }
381
382 if (boost::iequals(property_type, "WaterThermalConductivityIAPWS"))
383 {
385 }
386
387
388 OGS_FATAL(
"The specified component property type '{:s}' was not recognized",
389 property_type);
390}
std::unique_ptr< Property > createWaterEnthalpyIAPWSIF97Region1(BaseLib::ConfigTree const &config)
std::unique_ptr< Function > createFunction(BaseLib::ConfigTree const &config)
std::unique_ptr< TemperatureDependentFraction > createTemperatureDependentFraction(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterDensityIAPWSIF97Region1(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterViscosityIAPWS(BaseLib::ConfigTree const &config)
std::unique_ptr< IdealGasLawBinaryMixture > createIdealGasLawBinaryMixture(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createOrthotropicEmbeddedFracturePermeability(int const geometry_dimension, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< Property > createPengRobinson(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createPermeabilityOrthotropicPowerLaw(BaseLib::ConfigTree const &config, ParameterLib::CoordinateSystem const *const local_coordinate_system)
std::unique_ptr< Property > createLinearSaturationSwellingStress(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterLiquidEnthalpyIAPWSIF97Region4(BaseLib::ConfigTree const &config)
std::unique_ptr< TransportPorosityFromMassBalance > createTransportPorosityFromMassBalance(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< SaturationDependentSwelling > createSaturationDependentSwelling(BaseLib::ConfigTree const &config, ParameterLib::CoordinateSystem const *const local_coordinate_system)
std::unique_ptr< ClausiusClapeyron > createClausiusClapeyron(BaseLib::ConfigTree const &config)
std::unique_ptr< BishopsPowerLaw > createBishopsPowerLaw(BaseLib::ConfigTree const &config)
std::unique_ptr< PorosityFromMassBalance > createPorosityFromMassBalance(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< Parameter > createParameterProperty(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< SaturationLiakopoulos > createSaturationLiakopoulos(BaseLib::ConfigTree const &config)
std::unique_ptr< SaturationBrooksCorey > createSaturationBrooksCorey(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createVapourDiffusionFEBEX(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterTemperatureIAPWSIF97Region1(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createCapillaryPressureVanGenuchten(BaseLib::ConfigTree const &config)
std::unique_ptr< BishopsSaturationCutoff > createBishopsSaturationCutoff(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createPermeabilityMohrCoulombFailureIndexModel(int const geometry_dimension, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, ParameterLib::CoordinateSystem const *const local_coordinate_system)
std::unique_ptr< Property > createLiquidViscosityVogels(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterVapourLatentHeatWithCriticalTemperature(BaseLib::ConfigTree const &config)
std::unique_ptr< SaturationVanGenuchtenWithVolumetricStrain > createSaturationVanGenuchtenWithVolumetricStrain(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createGasPressureDependentPermeability(int const geometry_dimension, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, ParameterLib::CoordinateSystem const *const local_coordinate_system)
std::unique_ptr< Property > createStrainDependentPermeability(int const geometry_dimension, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, ParameterLib::CoordinateSystem const *const local_coordinate_system)
std::unique_ptr< Property > createWaterSaturationTemperatureIAPWSIF97Region4(BaseLib::ConfigTree const &config)
std::unique_ptr< RelPermUdellNonwettingPhase > createRelPermUdellNonwettingPhase(BaseLib::ConfigTree const &config)
std::unique_ptr< SaturationVanGenuchten > createSaturationVanGenuchten(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createEffectiveThermalConductivityPorosityMixing(int const geometry_dimension, BaseLib::ConfigTree const &config, ParameterLib::CoordinateSystem const *const local_coordinate_system)
std::unique_ptr< Property > createCubicLawPermeability(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< Property > createTemperatureDependentDiffusion(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< RelPermBrooksCorey > createRelPermBrooksCorey(BaseLib::ConfigTree const &config)
std::unique_ptr< SpecificHeatCapacityWithLatentHeat > createSpecificHeatCapacityWithLatentHeat(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createRelPermNonWettingPhaseVanGenuchtenMualem(BaseLib::ConfigTree const &config)
std::unique_ptr< AverageMolarMass > createAverageMolarMass(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterLiquidDensityIAPWSIF97Region4(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createCapillaryPressureRegularizedVanGenuchten(BaseLib::ConfigTree const &config)
std::unique_ptr< RelPermGeneralizedPower > createRelPermGeneralizedPower(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterThermalConductivityIAPWS(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterVapourEnthalpyIAPWSIF97Region4(BaseLib::ConfigTree const &config)
std::unique_ptr< RelPermUdell > createRelPermUdell(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createKozenyCarmanModel(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< VolumeFractionAverage > createVolumeFractionAverage(BaseLib::ConfigTree const &config)
std::unique_ptr< RelPermGeneralizedPowerNonwettingPhase > createRelPermGeneralizedPowerNonwettingPhase(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterVapourDensity(BaseLib::ConfigTree const &config)
std::unique_ptr< IdealGasLaw > createIdealGasLaw(BaseLib::ConfigTree const &config)
std::unique_ptr< RelPermVanGenuchten > createRelPermVanGenuchten(BaseLib::ConfigTree const &config)
std::unique_ptr< Exponential > createExponential(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createWaterVapourDensityIAPWSIF97Region4(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createEmbeddedFracturePermeability(int const geometry_dimension, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< DupuitPermeability > createDupuitPermeability(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< Property > createVapourDiffusionPMQ(BaseLib::ConfigTree const &config)
std::unique_ptr< RelPermLiakopoulos > createRelPermLiakopoulos(BaseLib::ConfigTree const &config)
std::unique_ptr< RelPermBrooksCoreyNonwettingPhase > createRelPermBrooksCoreyNonwettingPhase(BaseLib::ConfigTree const &config)
std::unique_ptr< Linear > createLinear(BaseLib::ConfigTree const &config)
std::unique_ptr< SaturationExponential > createSaturationExponential(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createVapourDiffusionDeVries(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createLinearWaterVapourLatentHeat(BaseLib::ConfigTree const &config)
std::unique_ptr< Property > createVermaPruessModel(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)
std::unique_ptr< MaterialPropertyLib::Property > createSaturationWeightedThermalConductivity(std::string name, ParameterLib::Parameter< double > const &dry_thermal_conductivity, ParameterLib::Parameter< double > const &wet_thermal_conductivity)