OGS
MaterialPropertyLib::Property Class Reference

Detailed Description

This class is the base class for any material property of any scale (i.e. components, phases, media, ...). The single value of that Property can hold scalars, vectors, tensors, strings, etc.

Definition at line 45 of file Property.h.

#include <Property.h>

Inheritance diagram for MaterialPropertyLib::Property:
[legend]

Public Member Functions

virtual ~Property ()
 
virtual PropertyDataType initialValue (ParameterLib::SpatialPosition const &pos, double const t) const
 
virtual PropertyDataType value () const
 
virtual PropertyDataType value (VariableArray const &variable_array, VariableArray const &variable_array_prev, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 
virtual PropertyDataType value (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 
virtual PropertyDataType dValue (VariableArray const &variable_array, VariableArray const &variable_array_prev, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 
virtual PropertyDataType dValue (VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 
virtual PropertyDataType d2Value (VariableArray const &variable_array, Variable const variable1, Variable const variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 Default implementation: 2nd derivative of any constant property is zero. More...
 
void setScale (std::variant< Medium *, Phase *, Component * > scale)
 
template<typename T >
initialValue (ParameterLib::SpatialPosition const &pos, double const t) const
 
template<typename T >
value () const
 
template<typename T >
value (VariableArray const &variable_array, VariableArray const &variable_array_prev, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 
template<typename T >
value (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 
template<typename T >
dValue (VariableArray const &variable_array, VariableArray const &variable_array_prev, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 
template<typename T >
dValue (VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 
template<typename T >
d2Value (VariableArray const &variable_array, Variable const &variable1, Variable const &variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
 

Protected Attributes

std::string name_
 
PropertyDataType value_
 The single value of a property. More...
 
PropertyDataType dvalue_
 
std::variant< Medium *, Phase *, Component * > scale_
 

Private Member Functions

virtual void checkScale () const
 
std::string description () const
 

Private Attributes

bool property_used = false
 

Static Private Attributes

static constexpr std::array property_data_type_names_
 Corresponds to the PropertyDataType. More...
 

Constructor & Destructor Documentation

◆ ~Property()

virtual MaterialPropertyLib::Property::~Property ( )
inlinevirtual

Definition at line 49 of file Property.h.

50  {
51  if(property_used)
52  {
53  DBUG("Property is used: '{:s}'", description());
54  }
55  else
56  {
57  WARN("Property is not used: '{:s}'", description());
58  }
59  }
void DBUG(char const *fmt, Args const &... args)
Definition: Logging.h:27
void WARN(char const *fmt, Args const &... args)
Definition: Logging.h:37
std::string description() const
Definition: Property.cpp:140

References DBUG(), description(), property_used, and WARN().

Member Function Documentation

◆ checkScale()

virtual void MaterialPropertyLib::Property::checkScale ( ) const
inlineprivatevirtual

Reimplemented in MaterialPropertyLib::VapourDiffusionPMQ, MaterialPropertyLib::VapourDiffusionFEBEX, MaterialPropertyLib::TransportPorosityFromMassBalance, MaterialPropertyLib::SoilThermalConductivitySomerton< GlobalDimension >, MaterialPropertyLib::TemperatureDependentDiffusion, MaterialPropertyLib::LinearSaturationSwellingStress, MaterialPropertyLib::StrainDependentPermeability< DisplacementDim >, MaterialPropertyLib::SaturationDependentThermalConductivity, MaterialPropertyLib::SaturationDependentSwelling, MaterialPropertyLib::RelPermVanGenuchten, MaterialPropertyLib::RelPermUdellNonwettingPhase, MaterialPropertyLib::RelPermUdell, MaterialPropertyLib::RelPermNonWettingPhaseVanGenuchtenMualem, MaterialPropertyLib::RelPermLiakopoulos, MaterialPropertyLib::RelPermBrooksCoreyNonwettingPhase, MaterialPropertyLib::RelPermBrooksCorey, MaterialPropertyLib::PorosityFromMassBalance, MaterialPropertyLib::PermeabilityOrthotropicPowerLaw< DisplacementDim >, MaterialPropertyLib::PermeabilityMohrCoulombFailureIndexModel< DisplacementDim >, MaterialPropertyLib::OrthotropicEmbeddedFracturePermeability< DisplacementDim >, MaterialPropertyLib::IdealGasLaw, MaterialPropertyLib::GasPressureDependentPermeability< DisplacementDim >, MaterialPropertyLib::WaterVapourLatentHeatWithCriticalTemperature, MaterialPropertyLib::LinearWaterVapourLatentHeat, MaterialPropertyLib::EmbeddedFracturePermeability< DisplacementDim >, MaterialPropertyLib::EffectiveThermalConductivityPorosityMixing< GlobalDim >, MaterialPropertyLib::WaterVapourDensity, MaterialPropertyLib::ClausiusClapeyron, MaterialPropertyLib::SaturationVanGenuchten, MaterialPropertyLib::SaturationLiakopoulos, MaterialPropertyLib::SaturationExponential, MaterialPropertyLib::SaturationBrooksCorey, MaterialPropertyLib::CapillaryPressureVanGenuchten, MaterialPropertyLib::CapillaryPressureRegularizedVanGenuchten, MaterialPropertyLib::BishopsSaturationCutoff, MaterialPropertyLib::BishopsPowerLaw, MaterialPropertyLib::AverageMolarMass, and MaterialPropertyLib::EffectiveThermalConductivityPorosityMixing< GlobalDim >.

Definition at line 290 of file Property.h.

291  {
292  // Empty check for properties which can be defined on every scale,
293  // medium, phase or component
294  }

Referenced by setScale().

◆ d2Value() [1/2]

template<typename T >
T MaterialPropertyLib::Property::d2Value ( VariableArray const &  variable_array,
Variable const &  variable1,
Variable const &  variable2,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
inline

Definition at line 253 of file Property.h.

257  {
258  try
259  {
260 #ifndef NDEBUG
261  property_used = true;
262 #endif
263  return std::get<T>(
264  d2Value(variable_array, variable1, variable2, pos, t, dt));
265  }
266  catch (std::bad_variant_access const&)
267  {
268  OGS_FATAL(
269  "The second derivative value of {:s} is not of the requested "
270  "type '{:s}' but a {:s}.",
271  description(),
272  typeid(T).name(),
273  property_data_type_names_[d2Value(variable_array, variable1,
274  variable2, pos, t, dt)
275  .index()]);
276  }
277  }
#define OGS_FATAL(...)
Definition: Error.h:26
virtual PropertyDataType d2Value(VariableArray const &variable_array, Variable const variable1, Variable const variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
Default implementation: 2nd derivative of any constant property is zero.
Definition: Property.cpp:127
static constexpr std::array property_data_type_names_
Corresponds to the PropertyDataType.
Definition: Property.h:302

References d2Value(), description(), MaterialPropertyLib::name, OGS_FATAL, property_data_type_names_, and property_used.

◆ d2Value() [2/2]

PropertyDataType MaterialPropertyLib::Property::d2Value ( VariableArray const &  variable_array,
Variable const  variable1,
Variable const  variable2,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
virtual

Default implementation: 2nd derivative of any constant property is zero.

This virtual method will compute the second derivative of a property with respect to the given variables pv1 and pv2.

Reimplemented in MaterialPropertyLib::SaturationExponential, MaterialPropertyLib::AverageMolarMass, MaterialPropertyLib::IdealGasLaw, MaterialPropertyLib::SaturationVanGenuchten, MaterialPropertyLib::SaturationLiakopoulos, MaterialPropertyLib::SaturationBrooksCorey, MaterialPropertyLib::Parameter, MaterialPropertyLib::Linear, MaterialPropertyLib::Exponential, and MaterialPropertyLib::ClausiusClapeyron.

Definition at line 127 of file Property.cpp.

133 {
134 #ifndef NDEBUG
135  property_used = true;
136 #endif
137  return 0.0;
138 }

References property_used.

Referenced by d2Value().

◆ description()

std::string MaterialPropertyLib::Property::description ( ) const
private

Definition at line 140 of file Property.cpp.

141 {
142  return "property '" + name_ + "' defined for " +
143  std::visit([](auto&& scale) -> std::string
144  { return scale->description(); },
145  scale_);
146 }
std::variant< Medium *, Phase *, Component * > scale_
Definition: Property.h:287
void scale(PETScVector &x, double const a)
Definition: LinAlg.cpp:44

References name_, MathLib::LinAlg::scale(), and scale_.

Referenced by ~Property(), d2Value(), dValue(), initialValue(), and value().

◆ dValue() [1/4]

PropertyDataType MaterialPropertyLib::Property::dValue ( VariableArray const &  variable_array,
Variable const  variable,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
virtual

This virtual method will compute the property derivative value based on the variables that are passed as arguments with the default implementation using empty variables array for the previous time step.

The default implementation of this method only returns the property value derivative without altering it.

Reimplemented in MaterialPropertyLib::SoilThermalConductivitySomerton< GlobalDimension >, MaterialPropertyLib::VapourDiffusionPMQ, MaterialPropertyLib::VapourDiffusionFEBEX, MaterialPropertyLib::TransportPorosityFromMassBalance, MaterialPropertyLib::SoilThermalConductivitySomerton< GlobalDimension >, MaterialPropertyLib::LinearSaturationSwellingStress, MaterialPropertyLib::StrainDependentPermeability< DisplacementDim >, MaterialPropertyLib::RelPermVanGenuchten, MaterialPropertyLib::RelPermUdell, MaterialPropertyLib::RelPermNonWettingPhaseVanGenuchtenMualem, MaterialPropertyLib::RelPermLiakopoulos, MaterialPropertyLib::RelPermBrooksCoreyNonwettingPhase, MaterialPropertyLib::RelPermBrooksCorey, MaterialPropertyLib::PorosityFromMassBalance, MaterialPropertyLib::PermeabilityOrthotropicPowerLaw< DisplacementDim >, MaterialPropertyLib::PermeabilityMohrCoulombFailureIndexModel< DisplacementDim >, MaterialPropertyLib::GasPressureDependentPermeability< DisplacementDim >, MaterialPropertyLib::CapillaryPressureVanGenuchten, MaterialPropertyLib::CapillaryPressureRegularizedVanGenuchten, MaterialPropertyLib::SaturationDependentThermalConductivity, MaterialPropertyLib::IdealGasLaw, MaterialPropertyLib::EffectiveThermalConductivityPorosityMixing< GlobalDim >, MaterialPropertyLib::SaturationVanGenuchten, MaterialPropertyLib::SaturationLiakopoulos, MaterialPropertyLib::SaturationBrooksCorey, MaterialPropertyLib::BishopsSaturationCutoff, MaterialPropertyLib::BishopsPowerLaw, MaterialPropertyLib::RelPermUdellNonwettingPhase, MaterialPropertyLib::OrthotropicEmbeddedFracturePermeability< DisplacementDim >, MaterialPropertyLib::Function, MaterialPropertyLib::WaterVapourLatentHeatWithCriticalTemperature, MaterialPropertyLib::LinearWaterVapourLatentHeat, MaterialPropertyLib::EmbeddedFracturePermeability< DisplacementDim >, MaterialPropertyLib::WaterVapourDensity, MaterialPropertyLib::ClausiusClapeyron, MaterialPropertyLib::Parameter, MaterialPropertyLib::Linear, MaterialPropertyLib::Exponential, MaterialPropertyLib::Curve, MaterialPropertyLib::SaturationExponential, MaterialPropertyLib::AverageMolarMass, and MaterialPropertyLib::EffectiveThermalConductivityPorosityMixing< GlobalDim >.

Definition at line 115 of file Property.cpp.

119 {
120 #ifndef NDEBUG
121  property_used = true;
122 #endif
123  return dValue(variable_array, VariableArray{}, variable, pos, t, dt);
124 }
virtual PropertyDataType dValue(VariableArray const &variable_array, VariableArray const &variable_array_prev, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
Definition: Property.cpp:101
std::array< VariableType, static_cast< int >(Variable::number_of_variables)> VariableArray
Definition: VariableType.h:108

References dValue(), and property_used.

◆ dValue() [2/4]

template<typename T >
T MaterialPropertyLib::Property::dValue ( VariableArray const &  variable_array,
Variable const  variable,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
inline

Definition at line 230 of file Property.h.

233  {
234  try
235  {
236 #ifndef NDEBUG
237  property_used = true;
238 #endif
239  return std::get<T>(dValue(variable_array, variable, pos, t, dt));
240  }
241  catch (std::bad_variant_access const&)
242  {
243  OGS_FATAL(
244  "The first derivative value of {:s} is not of the requested "
245  "type '{:s}' but a {:s}.",
246  description(),
247  typeid(T).name(),
249  [dValue(variable_array, variable, pos, t, dt).index()]);
250  }
251  }

References description(), dValue(), MaterialPropertyLib::name, OGS_FATAL, property_data_type_names_, and property_used.

◆ dValue() [3/4]

PropertyDataType MaterialPropertyLib::Property::dValue ( VariableArray const &  variable_array,
VariableArray const &  variable_array_prev,
Variable const  variable,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
virtual

This virtual method will compute the property derivative value based on the variables that are passed as arguments and the variables from the previous time step.

Reimplemented in MaterialPropertyLib::SaturationDependentSwelling.

Definition at line 101 of file Property.cpp.

106 {
107 #ifndef NDEBUG
108  property_used = true;
109 #endif
110  return dvalue_;
111 }
PropertyDataType dvalue_
Definition: Property.h:283

References dvalue_, and property_used.

Referenced by dValue().

◆ dValue() [4/4]

template<typename T >
T MaterialPropertyLib::Property::dValue ( VariableArray const &  variable_array,
VariableArray const &  variable_array_prev,
Variable const  variable,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
inline

Definition at line 205 of file Property.h.

209  {
210  try
211  {
212 #ifndef NDEBUG
213  property_used = true;
214 #endif
215  return std::get<T>(dValue(variable_array, variable_array_prev,
216  variable, pos, t, dt));
217  }
218  catch (std::bad_variant_access const&)
219  {
220  OGS_FATAL(
221  "The first derivative value of {:s} is not of the requested "
222  "type '{:s}' but a {:s}.",
223  description(),
224  typeid(T).name(),
226  [dValue(variable_array, variable, pos, t, dt).index()]);
227  }
228  }

References description(), dValue(), MaterialPropertyLib::name, OGS_FATAL, property_data_type_names_, and property_used.

◆ initialValue() [1/2]

PropertyDataType MaterialPropertyLib::Property::initialValue ( ParameterLib::SpatialPosition const &  pos,
double const  t 
) const
virtual

Returns the initial (or reference) value of the property. The default implementation forwards to the value function.

Reimplemented in MaterialPropertyLib::TransportPorosityFromMassBalance, and MaterialPropertyLib::PorosityFromMassBalance.

Definition at line 65 of file Property.cpp.

67 {
68  return value(VariableArray{}, pos, t,
69  std::numeric_limits<double>::quiet_NaN());
70 }
virtual PropertyDataType value() const
Definition: Property.cpp:72

References value().

Referenced by initialValue().

◆ initialValue() [2/2]

template<typename T >
T MaterialPropertyLib::Property::initialValue ( ParameterLib::SpatialPosition const &  pos,
double const  t 
) const
inline

Definition at line 115 of file Property.h.

117  {
118  try
119  {
120  return std::get<T>(initialValue(pos, t));
121  }
122  catch (std::bad_variant_access const&)
123  {
124  OGS_FATAL(
125  "The initial value of {:s} does not hold requested type '{:s}' "
126  "but a {:s}.",
127  description(),
128  typeid(T).name(),
129  property_data_type_names_[initialValue(pos, t).index()]);
130  }
131  }
virtual PropertyDataType initialValue(ParameterLib::SpatialPosition const &pos, double const t) const
Definition: Property.cpp:65

References description(), initialValue(), MaterialPropertyLib::name, OGS_FATAL, and property_data_type_names_.

◆ setScale()

void MaterialPropertyLib::Property::setScale ( std::variant< Medium *, Phase *, Component * >  scale)
inline

Definition at line 108 of file Property.h.

109  {
110  scale_ = scale;
111  checkScale();
112  };
virtual void checkScale() const
Definition: Property.h:290

References checkScale(), MathLib::LinAlg::scale(), and scale_.

◆ value() [1/6]

PropertyDataType MaterialPropertyLib::Property::value ( ) const
virtual

This virtual method simply returns the private value_ attribute without changing it.

Definition at line 72 of file Property.cpp.

73 {
74 #ifndef NDEBUG
75  property_used = true;
76 #endif
77  return value_;
78 }
PropertyDataType value_
The single value of a property.
Definition: Property.h:282

References property_used, and value_.

Referenced by MaterialPropertyLib::ClausiusClapeyron::dValue(), initialValue(), and value().

◆ value() [2/6]

template<typename T >
T MaterialPropertyLib::Property::value ( ) const
inline

Definition at line 134 of file Property.h.

135  {
136  try
137  {
138 #ifndef NDEBUG
139  property_used = true;
140 #endif
141  return std::get<T>(value());
142  }
143  catch (std::bad_variant_access const&)
144  {
145  OGS_FATAL(
146  "The value of {:s} does not hold requested type '{:s}' but a "
147  "{:s}.",
148  description(),
149  typeid(T).name(),
150  property_data_type_names_[value().index()]);
151  }
152  }

References description(), MaterialPropertyLib::name, OGS_FATAL, property_data_type_names_, property_used, and value().

◆ value() [3/6]

PropertyDataType MaterialPropertyLib::Property::value ( VariableArray const &  variable_array,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
virtual

This virtual method will compute the property value based on the variables that are passed as arguments with the default implementation using empty variables array for the previous time step.

Reimplemented in MaterialPropertyLib::TemperatureDependentDiffusion, MaterialPropertyLib::SoilThermalConductivitySomerton< GlobalDimension >, MaterialPropertyLib::VapourDiffusionPMQ, MaterialPropertyLib::VapourDiffusionFEBEX, MaterialPropertyLib::TransportPorosityFromMassBalance, MaterialPropertyLib::SoilThermalConductivitySomerton< GlobalDimension >, MaterialPropertyLib::LinearSaturationSwellingStress, MaterialPropertyLib::StrainDependentPermeability< DisplacementDim >, MaterialPropertyLib::RelPermVanGenuchten, MaterialPropertyLib::RelPermUdellNonwettingPhase, MaterialPropertyLib::RelPermUdell, MaterialPropertyLib::RelPermNonWettingPhaseVanGenuchtenMualem, MaterialPropertyLib::RelPermLiakopoulos, MaterialPropertyLib::RelPermBrooksCoreyNonwettingPhase, MaterialPropertyLib::RelPermBrooksCorey, MaterialPropertyLib::PorosityFromMassBalance, MaterialPropertyLib::PermeabilityOrthotropicPowerLaw< DisplacementDim >, MaterialPropertyLib::PermeabilityMohrCoulombFailureIndexModel< DisplacementDim >, MaterialPropertyLib::Parameter, MaterialPropertyLib::OrthotropicEmbeddedFracturePermeability< DisplacementDim >, MaterialPropertyLib::GasPressureDependentPermeability< DisplacementDim >, MaterialPropertyLib::Function, MaterialPropertyLib::Exponential, MaterialPropertyLib::WaterVapourLatentHeatWithCriticalTemperature, MaterialPropertyLib::LinearWaterVapourLatentHeat, MaterialPropertyLib::EmbeddedFracturePermeability< DisplacementDim >, MaterialPropertyLib::EffectiveThermalConductivityPorosityMixing< GlobalDim >, MaterialPropertyLib::WaterVapourDensity, MaterialPropertyLib::Curve, MaterialPropertyLib::ClausiusClapeyron, MaterialPropertyLib::CapillaryPressureVanGenuchten, MaterialPropertyLib::CapillaryPressureRegularizedVanGenuchten, MaterialPropertyLib::EffectiveThermalConductivityPorosityMixing< GlobalDim >, MaterialPropertyLib::SaturationDependentThermalConductivity, MaterialPropertyLib::Linear, MaterialPropertyLib::IdealGasLaw, MaterialPropertyLib::SaturationVanGenuchten, MaterialPropertyLib::SaturationLiakopoulos, MaterialPropertyLib::SaturationExponential, MaterialPropertyLib::SaturationBrooksCorey, MaterialPropertyLib::BishopsSaturationCutoff, MaterialPropertyLib::BishopsPowerLaw, MaterialPropertyLib::AverageMolarMass, MaterialPropertyLib::KozenyCarmanModel, and MaterialPropertyLib::DupuitPermeability.

Definition at line 91 of file Property.cpp.

94 {
95 #ifndef NDEBUG
96  property_used = true;
97 #endif
98  return value(variable_array, VariableArray{}, pos, t, dt);
99 }

References property_used, and value().

◆ value() [4/6]

template<typename T >
T MaterialPropertyLib::Property::value ( VariableArray const &  variable_array,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
inline

Definition at line 181 of file Property.h.

184  {
185  try
186  {
187 #ifndef NDEBUG
188  property_used = true;
189 #endif
190  return std::get<T>(value(variable_array, pos, t, dt));
191  }
192  catch (std::bad_variant_access const&)
193  {
194  OGS_FATAL(
195  "The value of {:s} is not of the requested type '{:s}' but a "
196  "{:s}.",
197  description(),
198  typeid(T).name(),
199  property_data_type_names_[value(variable_array, pos, t, dt)
200  .index()]);
201  }
202  }

References description(), MaterialPropertyLib::name, OGS_FATAL, property_data_type_names_, property_used, and value().

◆ value() [5/6]

PropertyDataType MaterialPropertyLib::Property::value ( VariableArray const &  variable_array,
VariableArray const &  variable_array_prev,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
virtual

This virtual method will compute the property value based on the variables that are passed as arguments and the variables from the previous time step.

Reimplemented in MaterialPropertyLib::TransportPorosityFromMassBalance, MaterialPropertyLib::LinearSaturationSwellingStress, MaterialPropertyLib::SaturationDependentSwelling, MaterialPropertyLib::PorosityFromMassBalance, and MaterialPropertyLib::Parameter.

Definition at line 80 of file Property.cpp.

84 {
85 #ifndef NDEBUG
86  property_used = true;
87 #endif
88  return value_;
89 }

References property_used, and value_.

◆ value() [6/6]

template<typename T >
T MaterialPropertyLib::Property::value ( VariableArray const &  variable_array,
VariableArray const &  variable_array_prev,
ParameterLib::SpatialPosition const &  pos,
double const  t,
double const  dt 
) const
inline

Definition at line 155 of file Property.h.

159  {
160  try
161  {
162 #ifndef NDEBUG
163  property_used = true;
164 #endif
165  return std::get<T>(
166  value(variable_array, variable_array_prev, pos, t, dt));
167  }
168  catch (std::bad_variant_access const&)
169  {
170  OGS_FATAL(
171  "The value of {:s} is not of the requested type '{:s}' but a "
172  "{:s}.",
173  description(),
174  typeid(T).name(),
175  property_data_type_names_[value(variable_array,
176  variable_array_prev, pos, t, dt)
177  .index()]);
178  }
179  }

References description(), MaterialPropertyLib::name, OGS_FATAL, property_data_type_names_, property_used, and value().

Member Data Documentation

◆ dvalue_

PropertyDataType MaterialPropertyLib::Property::dvalue_
protected

Definition at line 283 of file Property.h.

Referenced by MaterialPropertyLib::Constant::Constant(), and dValue().

◆ name_

std::string MaterialPropertyLib::Property::name_
protected

Definition at line 280 of file Property.h.

Referenced by MaterialPropertyLib::AverageMolarMass::AverageMolarMass(), MaterialPropertyLib::BishopsPowerLaw::BishopsPowerLaw(), MaterialPropertyLib::BishopsSaturationCutoff::BishopsSaturationCutoff(), MaterialPropertyLib::CapillaryPressureVanGenuchten::CapillaryPressureVanGenuchten(), MaterialPropertyLib::ClausiusClapeyron::ClausiusClapeyron(), MaterialPropertyLib::Constant::Constant(), MaterialPropertyLib::Curve::Curve(), MaterialPropertyLib::DupuitPermeability::DupuitPermeability(), MaterialPropertyLib::EffectiveThermalConductivityPorosityMixing< GlobalDim >::EffectiveThermalConductivityPorosityMixing(), MaterialPropertyLib::EmbeddedFracturePermeability< DisplacementDim >::EmbeddedFracturePermeability(), MaterialPropertyLib::Exponential::Exponential(), MaterialPropertyLib::Function::Function(), MaterialPropertyLib::GasPressureDependentPermeability< DisplacementDim >::GasPressureDependentPermeability(), MaterialPropertyLib::IdealGasLaw::IdealGasLaw(), MaterialPropertyLib::Linear::Linear(), MaterialPropertyLib::LinearSaturationSwellingStress::LinearSaturationSwellingStress(), MaterialPropertyLib::LinearWaterVapourLatentHeat::LinearWaterVapourLatentHeat(), MaterialPropertyLib::OrthotropicEmbeddedFracturePermeability< DisplacementDim >::OrthotropicEmbeddedFracturePermeability(), MaterialPropertyLib::Parameter::Parameter(), MaterialPropertyLib::PermeabilityMohrCoulombFailureIndexModel< DisplacementDim >::PermeabilityMohrCoulombFailureIndexModel(), MaterialPropertyLib::PermeabilityOrthotropicPowerLaw< DisplacementDim >::PermeabilityOrthotropicPowerLaw(), MaterialPropertyLib::PorosityFromMassBalance::PorosityFromMassBalance(), MaterialPropertyLib::RelPermBrooksCorey::RelPermBrooksCorey(), MaterialPropertyLib::RelPermBrooksCoreyNonwettingPhase::RelPermBrooksCoreyNonwettingPhase(), MaterialPropertyLib::RelPermLiakopoulos::RelPermLiakopoulos(), MaterialPropertyLib::RelPermNonWettingPhaseVanGenuchtenMualem::RelPermNonWettingPhaseVanGenuchtenMualem(), MaterialPropertyLib::RelPermUdell::RelPermUdell(), MaterialPropertyLib::RelPermUdellNonwettingPhase::RelPermUdellNonwettingPhase(), MaterialPropertyLib::RelPermVanGenuchten::RelPermVanGenuchten(), MaterialPropertyLib::SaturationBrooksCorey::SaturationBrooksCorey(), MaterialPropertyLib::SaturationDependentSwelling::SaturationDependentSwelling(), MaterialPropertyLib::SaturationDependentThermalConductivity::SaturationDependentThermalConductivity(), MaterialPropertyLib::SaturationExponential::SaturationExponential(), MaterialPropertyLib::SaturationLiakopoulos::SaturationLiakopoulos(), MaterialPropertyLib::SaturationVanGenuchten::SaturationVanGenuchten(), MaterialPropertyLib::SoilThermalConductivitySomerton< GlobalDimension >::SoilThermalConductivitySomerton(), MaterialPropertyLib::StrainDependentPermeability< DisplacementDim >::StrainDependentPermeability(), MaterialPropertyLib::TransportPorosityFromMassBalance::TransportPorosityFromMassBalance(), MaterialPropertyLib::VapourDiffusionFEBEX::VapourDiffusionFEBEX(), MaterialPropertyLib::VapourDiffusionPMQ::VapourDiffusionPMQ(), MaterialPropertyLib::WaterVapourDensity::WaterVapourDensity(), MaterialPropertyLib::WaterVapourLatentHeatWithCriticalTemperature::WaterVapourLatentHeatWithCriticalTemperature(), description(), and MaterialPropertyLib::Function::dValue().

◆ property_data_type_names_

constexpr std::array MaterialPropertyLib::Property::property_data_type_names_
staticconstexprprivate
Initial value:
= {
"scalar", "2-vector", "3-vector", "2x2-matrix",
"3x3-matrix", "2D-Kelvin vector", "3D-Kelvin vector"}

Corresponds to the PropertyDataType.

Definition at line 302 of file Property.h.

Referenced by d2Value(), dValue(), initialValue(), and value().

◆ property_used

bool MaterialPropertyLib::Property::property_used = false
mutableprivate

Definition at line 297 of file Property.h.

Referenced by ~Property(), d2Value(), dValue(), and value().

◆ scale_

std::variant<Medium*, Phase*, Component*> MaterialPropertyLib::Property::scale_
protected

Definition scale of the property. Can be one of medium, phase, or component in general. Set through setScale method which takes care of the correctness in special cases.

Definition at line 287 of file Property.h.

Referenced by MaterialPropertyLib::AverageMolarMass::checkScale(), MaterialPropertyLib::BishopsPowerLaw::checkScale(), MaterialPropertyLib::BishopsSaturationCutoff::checkScale(), MaterialPropertyLib::CapillaryPressureRegularizedVanGenuchten::checkScale(), MaterialPropertyLib::CapillaryPressureVanGenuchten::checkScale(), MaterialPropertyLib::SaturationBrooksCorey::checkScale(), MaterialPropertyLib::SaturationExponential::checkScale(), MaterialPropertyLib::SaturationLiakopoulos::checkScale(), MaterialPropertyLib::SaturationVanGenuchten::checkScale(), MaterialPropertyLib::ClausiusClapeyron::checkScale(), MaterialPropertyLib::WaterVapourDensity::checkScale(), MaterialPropertyLib::LinearWaterVapourLatentHeat::checkScale(), MaterialPropertyLib::WaterVapourLatentHeatWithCriticalTemperature::checkScale(), MaterialPropertyLib::IdealGasLaw::checkScale(), MaterialPropertyLib::PorosityFromMassBalance::checkScale(), MaterialPropertyLib::RelPermBrooksCorey::checkScale(), MaterialPropertyLib::RelPermBrooksCoreyNonwettingPhase::checkScale(), MaterialPropertyLib::RelPermLiakopoulos::checkScale(), MaterialPropertyLib::RelPermNonWettingPhaseVanGenuchtenMualem::checkScale(), MaterialPropertyLib::RelPermUdell::checkScale(), MaterialPropertyLib::RelPermUdellNonwettingPhase::checkScale(), MaterialPropertyLib::RelPermVanGenuchten::checkScale(), MaterialPropertyLib::SaturationDependentSwelling::checkScale(), MaterialPropertyLib::SaturationDependentThermalConductivity::checkScale(), MaterialPropertyLib::LinearSaturationSwellingStress::checkScale(), MaterialPropertyLib::TemperatureDependentDiffusion::checkScale(), MaterialPropertyLib::SoilThermalConductivitySomerton< GlobalDimension >::checkScale(), MaterialPropertyLib::TransportPorosityFromMassBalance::checkScale(), MaterialPropertyLib::VapourDiffusionFEBEX::checkScale(), MaterialPropertyLib::VapourDiffusionPMQ::checkScale(), description(), MaterialPropertyLib::AverageMolarMass::dValue(), MaterialPropertyLib::ClausiusClapeyron::dValue(), MaterialPropertyLib::RelPermBrooksCorey::dValue(), MaterialPropertyLib::RelPermBrooksCoreyNonwettingPhase::dValue(), MaterialPropertyLib::RelPermLiakopoulos::dValue(), setScale(), MaterialPropertyLib::AverageMolarMass::value(), MaterialPropertyLib::ClausiusClapeyron::value(), MaterialPropertyLib::RelPermBrooksCorey::value(), MaterialPropertyLib::RelPermBrooksCoreyNonwettingPhase::value(), MaterialPropertyLib::RelPermLiakopoulos::value(), MaterialPropertyLib::PorosityFromMassBalance::value(), and MaterialPropertyLib::TransportPorosityFromMassBalance::value().

◆ value_


The documentation for this class was generated from the following files: