OGS
anonymous_namespace{CreateProperty.cpp} Namespace Reference

Functions

std::unique_ptr< MaterialPropertyLib::PropertycreateProperty (int const geometry_dimension, BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > &parameters, ParameterLib::CoordinateSystem const *const local_coordinate_system, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)

Function Documentation

◆ createProperty()

std::unique_ptr< MaterialPropertyLib::Property > anonymous_namespace{CreateProperty.cpp}::createProperty ( int const geometry_dimension,
BaseLib::ConfigTree const & config,
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > & parameters,
ParameterLib::CoordinateSystem const *const local_coordinate_system,
std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const & curves )
Input File Parameter
properties__property__type

Definition at line 19 of file CreateProperty.cpp.

27{
28 using namespace MaterialPropertyLib;
29 // Parsing the property type:
31 auto const property_type = config.peekConfigParameter<std::string>("type");
32
33 if (property_type == "Constant")
34 {
35 return createConstant(config);
36 }
37 if (property_type == "Curve")
38 {
39 return createCurve(config, curves);
40 }
41 if (property_type == "Linear")
42 {
43 return createLinear(config);
44 }
45
46 if (property_type == "Exponential")
47 {
48 return createExponential(config);
49 }
50 if (property_type == "Function")
51 {
52 return createFunction(config, curves);
53 }
54
55 if (property_type == "Parameter")
56 {
57 return createParameterProperty(config, parameters);
58 }
59
60 if (boost::iequals(property_type, "AverageMolarMass"))
61 {
62 return createAverageMolarMass(config);
63 }
64
65 if (boost::iequals(property_type, "ClausiusClapeyron"))
66 {
67 return createClausiusClapeyron(config);
68 }
69
70 if (boost::iequals(property_type, "CubicLawPermeability"))
71 {
72 return createCubicLawPermeability(config, parameters);
73 }
74
75 if (boost::iequals(property_type, "Dupuit"))
76 {
77 return createDupuitPermeability(config, parameters);
78 }
79
80 if (boost::iequals(property_type,
81 "EffectiveThermalConductivityPorosityMixing"))
82 {
84 geometry_dimension, config, local_coordinate_system);
85 }
86
87 if (boost::iequals(property_type, "IdealGasLaw"))
88 {
89 return createIdealGasLaw(config);
90 }
91
92 if (boost::iequals(property_type, "PengRobinson"))
93 {
94 return createPengRobinson(config);
95 }
96
97 if (boost::iequals(property_type, "IdealGasLawBinaryMixture"))
98 {
99 return createIdealGasLawBinaryMixture(config);
100 }
101
102 if (boost::iequals(property_type, "StrainDependentPermeability"))
103 {
105 geometry_dimension, config, parameters, local_coordinate_system);
106 }
107
108 if (boost::iequals(property_type, "GasPressureDependentPermeability"))
109 {
111 geometry_dimension, config, parameters, local_coordinate_system);
112 }
113
114 if (boost::iequals(property_type, "EmbeddedFracturePermeability"))
115 {
116 return createEmbeddedFracturePermeability(geometry_dimension, config,
117 parameters);
118 }
119
120 if (boost::iequals(property_type,
121 "OrthotropicEmbeddedFracturePermeability"))
122 {
124 geometry_dimension, config, parameters);
125 }
126
127 if (boost::iequals(property_type,
128 "PermeabilityMohrCoulombFailureIndexModel"))
129 {
131 geometry_dimension, config, parameters, local_coordinate_system);
132 }
133
134 if (boost::iequals(property_type, "KozenyCarman"))
135 {
136 return createKozenyCarmanModel(config, parameters);
137 }
138
139 if (boost::iequals(property_type, "VermaPruess"))
140 {
141 return createVermaPruessModel(config, parameters);
142 }
143
144 if (boost::iequals(property_type, "PermeabilityOrthotropicPowerLaw"))
145 {
147 local_coordinate_system);
148 }
149
150 if (boost::iequals(property_type, "PorosityFromMassBalance"))
151 {
152 return createPorosityFromMassBalance(config, parameters);
153 }
154
155 if (boost::iequals(property_type, "TransportPorosityFromMassBalance"))
156 {
157 return createTransportPorosityFromMassBalance(config, parameters);
158 }
159
160 if (boost::iequals(property_type, "SaturationBrooksCorey"))
161 {
162 return createSaturationBrooksCorey(config);
163 }
164
165 if (boost::iequals(property_type, "RelPermBrooksCorey"))
166 {
167 return createRelPermBrooksCorey(config);
168 }
169
170 if (boost::iequals(property_type, "RelPermBrooksCoreyNonwettingPhase"))
171 {
173 }
174
175 if (boost::iequals(property_type, "SaturationLiakopoulos"))
176 {
177 return createSaturationLiakopoulos(config);
178 }
179
180 if (boost::iequals(property_type, "RelPermLiakopoulos"))
181 {
182 return createRelPermLiakopoulos(config);
183 }
184
185 if (boost::iequals(property_type, "SaturationExponential"))
186 {
187 return createSaturationExponential(config);
188 }
189 if (boost::iequals(property_type, "SaturationVanGenuchten"))
190 {
191 return createSaturationVanGenuchten(config);
192 }
193 if (boost::iequals(property_type, "SaturationLuMcCartney"))
194 {
195 return createSaturationLuMcCartney(config);
196 }
197
198 if (boost::iequals(property_type,
199 "SaturationVanGenuchtenWithVolumetricStrain"))
200 {
202 }
203
204 if (boost::iequals(property_type, "CapillaryPressureVanGenuchten"))
205 {
207 }
208
209 if (boost::iequals(property_type,
210 "CapillaryPressureRegularizedVanGenuchten"))
211 {
213 }
214
215 if (boost::iequals(property_type, "RelativePermeabilityVanGenuchten"))
216 {
217 return createRelPermVanGenuchten(config);
218 }
219
220 if (boost::iequals(property_type,
221 "RelativePermeabilityNonWettingPhaseVanGenuchtenMualem"))
222 {
224 }
225
226 if (boost::iequals(property_type, "RelativePermeabilityUdell"))
227 {
228 return createRelPermUdell(config);
229 }
230
231 if (boost::iequals(property_type,
232 "RelativePermeabilityUdellNonwettingPhase"))
233 {
235 }
236
237 if (boost::iequals(property_type,
238 "RelativePermeabilityGeneralizedPowerNonwettingPhase"))
239 {
241 }
242
243 if (boost::iequals(property_type, "RelativePermeabilityGeneralizedPower"))
244 {
245 return createRelPermGeneralizedPower(config);
246 }
247
248 if (boost::iequals(property_type, "SaturationDependentSwelling"))
249 {
251 local_coordinate_system);
252 }
253
254 if (boost::iequals(property_type, "TemperatureDependentFraction"))
255 {
257 }
258
259 if (boost::iequals(property_type, "SpecificHeatCapacityWithLatentHeat"))
260 {
262 }
263
264 if (boost::iequals(property_type, "BishopsPowerLaw"))
265 {
266 return createBishopsPowerLaw(config);
267 }
268
269 if (boost::iequals(property_type, "BishopsSaturationCutoff"))
270 {
271 return createBishopsSaturationCutoff(config);
272 }
273
274 if (boost::iequals(property_type, "LinearSaturationSwellingStress"))
275 {
277 }
278
279 if (boost::iequals(property_type, "SaturationWeightedThermalConductivity"))
280 {
281 return createSaturationWeightedThermalConductivity(geometry_dimension,
282 config, parameters);
283 }
284
285 if (boost::iequals(property_type, "WaterDensityIAPWSIF97Region1"))
286 {
288 }
289
290 if (boost::iequals(property_type,
291 "WaterSaturationTemperatureIAPWSIF97Region4"))
292 {
294 }
295
296 if (boost::iequals(property_type, "WaterEnthalpyIAPWSIF97Region1"))
297 {
299 }
300
301 if (boost::iequals(property_type, "WaterLiquidDensityIAPWSIF97Region4"))
302 {
304 }
305
306 if (boost::iequals(property_type, "WaterVapourDensityIAPWSIF97Region4"))
307 {
309 }
310
311 if (boost::iequals(property_type, "WaterLiquidEnthalpyIAPWSIF97Region4"))
312 {
314 }
315
316 if (boost::iequals(property_type, "WaterVapourEnthalpyIAPWSIF97Region4"))
317 {
319 }
320
321 if (boost::iequals(property_type, "WaterTemperatureIAPWSIF97Region1"))
322 {
324 }
325
326 if (boost::iequals(property_type, "WaterVapourDensity"))
327 {
328 return createWaterVapourDensity(config);
329 }
330
331 if (boost::iequals(property_type, "VapourDiffusionFEBEX"))
332 {
333 return createVapourDiffusionFEBEX(config);
334 }
335
336 if (boost::iequals(property_type, "VapourDiffusionDeVries"))
337 {
338 return createVapourDiffusionDeVries(config);
339 }
340
341 if (boost::iequals(property_type, "VapourDiffusionPMQ"))
342 {
343 return createVapourDiffusionPMQ(config);
344 }
345
346 if (boost::iequals(property_type, "LinearWaterVapourLatentHeat"))
347 {
349 }
350
351 if (boost::iequals(property_type,
352 "WaterVapourLatentHeatWithCriticalTemperature"))
353 {
355 }
356
357 if (boost::iequals(property_type, "TemperatureDependentDiffusion"))
358 {
359 return createTemperatureDependentDiffusion(config, parameters);
360 }
361
362 if (boost::iequals(property_type, "VolumeFractionAverage"))
363 {
364 return createVolumeFractionAverage(config);
365 }
366
367 if (boost::iequals(property_type, "WaterViscosityIAPWS"))
368 {
369 return createWaterViscosityIAPWS(config);
370 }
371
372 if (boost::iequals(property_type, "LiquidViscosityVogels"))
373 {
374 return createLiquidViscosityVogels(config);
375 }
376
377 if (boost::iequals(property_type, "WaterThermalConductivityIAPWS"))
378 {
380 }
381
382 // If none of the above property types are found, OGS throws an error.
383 OGS_FATAL("The specified component property type '{:s}' was not recognized",
384 property_type);
385}
#define OGS_FATAL(...)
Definition Error.h:19
std::unique_ptr< Property > createWaterEnthalpyIAPWSIF97Region1(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 &parameters)
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< SaturationLuMcCartney > createSaturationLuMcCartney(BaseLib::ConfigTree const &config)
std::unique_ptr< TransportPorosityFromMassBalance > createTransportPorosityFromMassBalance(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters)
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 &parameters)
std::unique_ptr< Parameter > createParameterProperty(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters)
std::unique_ptr< Function > createFunction(BaseLib::ConfigTree const &config, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
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 &parameters, 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 &parameters, 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 &parameters, 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< Curve > createCurve(BaseLib::ConfigTree const &config, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
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 &parameters)
std::unique_ptr< Property > createTemperatureDependentDiffusion(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters)
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 &parameters)
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< Constant > createConstant(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 &parameters)
std::unique_ptr< DupuitPermeability > createDupuitPermeability(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters)
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 &parameters)
std::unique_ptr< MaterialPropertyLib::Property > createSaturationWeightedThermalConductivity(std::string name, ParameterLib::Parameter< double > const &dry_thermal_conductivity, ParameterLib::Parameter< double > const &wet_thermal_conductivity)

References MaterialPropertyLib::createAverageMolarMass(), MaterialPropertyLib::createBishopsPowerLaw(), MaterialPropertyLib::createBishopsSaturationCutoff(), MaterialPropertyLib::createCapillaryPressureRegularizedVanGenuchten(), MaterialPropertyLib::createCapillaryPressureVanGenuchten(), MaterialPropertyLib::createClausiusClapeyron(), MaterialPropertyLib::createConstant(), MaterialPropertyLib::createCubicLawPermeability(), MaterialPropertyLib::createCurve(), MaterialPropertyLib::createDupuitPermeability(), MaterialPropertyLib::createEffectiveThermalConductivityPorosityMixing(), MaterialPropertyLib::createEmbeddedFracturePermeability(), MaterialPropertyLib::createExponential(), MaterialPropertyLib::createFunction(), MaterialPropertyLib::createGasPressureDependentPermeability(), MaterialPropertyLib::createIdealGasLaw(), MaterialPropertyLib::createIdealGasLawBinaryMixture(), MaterialPropertyLib::createKozenyCarmanModel(), MaterialPropertyLib::createLinear(), MaterialPropertyLib::createLinearSaturationSwellingStress(), MaterialPropertyLib::createLinearWaterVapourLatentHeat(), MaterialPropertyLib::createLiquidViscosityVogels(), MaterialPropertyLib::createOrthotropicEmbeddedFracturePermeability(), MaterialPropertyLib::createParameterProperty(), MaterialPropertyLib::createPengRobinson(), MaterialPropertyLib::createPermeabilityMohrCoulombFailureIndexModel(), MaterialPropertyLib::createPermeabilityOrthotropicPowerLaw(), MaterialPropertyLib::createPorosityFromMassBalance(), MaterialPropertyLib::createRelPermBrooksCorey(), MaterialPropertyLib::createRelPermBrooksCoreyNonwettingPhase(), MaterialPropertyLib::createRelPermGeneralizedPower(), MaterialPropertyLib::createRelPermGeneralizedPowerNonwettingPhase(), MaterialPropertyLib::createRelPermLiakopoulos(), MaterialPropertyLib::createRelPermNonWettingPhaseVanGenuchtenMualem(), MaterialPropertyLib::createRelPermUdell(), MaterialPropertyLib::createRelPermUdellNonwettingPhase(), MaterialPropertyLib::createRelPermVanGenuchten(), MaterialPropertyLib::createSaturationBrooksCorey(), MaterialPropertyLib::createSaturationDependentSwelling(), MaterialPropertyLib::createSaturationExponential(), MaterialPropertyLib::createSaturationLiakopoulos(), MaterialPropertyLib::createSaturationLuMcCartney(), MaterialPropertyLib::createSaturationVanGenuchten(), MaterialPropertyLib::createSaturationVanGenuchtenWithVolumetricStrain(), MaterialPropertyLib::createSaturationWeightedThermalConductivity(), MaterialPropertyLib::createSpecificHeatCapacityWithLatentHeat(), MaterialPropertyLib::createStrainDependentPermeability(), MaterialPropertyLib::createTemperatureDependentDiffusion(), MaterialPropertyLib::createTemperatureDependentFraction(), MaterialPropertyLib::createTransportPorosityFromMassBalance(), MaterialPropertyLib::createVapourDiffusionDeVries(), MaterialPropertyLib::createVapourDiffusionFEBEX(), MaterialPropertyLib::createVapourDiffusionPMQ(), MaterialPropertyLib::createVermaPruessModel(), MaterialPropertyLib::createVolumeFractionAverage(), MaterialPropertyLib::createWaterDensityIAPWSIF97Region1(), MaterialPropertyLib::createWaterEnthalpyIAPWSIF97Region1(), MaterialPropertyLib::createWaterLiquidDensityIAPWSIF97Region4(), MaterialPropertyLib::createWaterLiquidEnthalpyIAPWSIF97Region4(), MaterialPropertyLib::createWaterSaturationTemperatureIAPWSIF97Region4(), MaterialPropertyLib::createWaterTemperatureIAPWSIF97Region1(), MaterialPropertyLib::createWaterThermalConductivityIAPWS(), MaterialPropertyLib::createWaterVapourDensity(), MaterialPropertyLib::createWaterVapourDensityIAPWSIF97Region4(), MaterialPropertyLib::createWaterVapourEnthalpyIAPWSIF97Region4(), MaterialPropertyLib::createWaterVapourLatentHeatWithCriticalTemperature(), MaterialPropertyLib::createWaterViscosityIAPWS(), OGS_FATAL, and BaseLib::ConfigTree::peekConfigParameter().