OGS
MaterialPropertyLib::WaterEnthalpyIAPWSIF97Region1 Class Referencefinal

Detailed Description

Water enthalpy in IAPWS-IF97 region1 model based on the IAPWS Industrial Formulation 1997 IF97-Rev

Definition at line 24 of file WaterEnthalpyIAPWSIF97Region1.h.

#include <WaterEnthalpyIAPWSIF97Region1.h>

Inheritance diagram for MaterialPropertyLib::WaterEnthalpyIAPWSIF97Region1:
[legend]
Collaboration diagram for MaterialPropertyLib::WaterEnthalpyIAPWSIF97Region1:
[legend]

Public Member Functions

 WaterEnthalpyIAPWSIF97Region1 (std::string name)
 
void checkScale () const override
 
PropertyDataType value (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
 
PropertyDataType dValue (VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
 
- Public Member Functions inherited from MaterialPropertyLib::Property
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 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 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.
 
virtual void setProperties (std::vector< std::unique_ptr< Phase > > const &phases)
 Default implementation:
 
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
 

Additional Inherited Members

- Protected Attributes inherited from MaterialPropertyLib::Property
std::string name_
 
PropertyDataType value_
 The single value of a property.
 
PropertyDataType dvalue_
 
std::variant< Medium *, Phase *, Component * > scale_
 

Constructor & Destructor Documentation

◆ WaterEnthalpyIAPWSIF97Region1()

MaterialPropertyLib::WaterEnthalpyIAPWSIF97Region1::WaterEnthalpyIAPWSIF97Region1 ( std::string name)
inlineexplicit

Member Function Documentation

◆ checkScale()

void MaterialPropertyLib::WaterEnthalpyIAPWSIF97Region1::checkScale ( ) const
inlineoverridevirtual

Reimplemented from MaterialPropertyLib::Property.

Definition at line 31 of file WaterEnthalpyIAPWSIF97Region1.h.

32 {
33 if (!std::holds_alternative<Phase*>(scale_))
34 {
36 "The property 'WaterEnthalpyIAPWSIF97Region1' is "
37 "implemented on the 'Phase' scale only.");
38 }
39 }
#define OGS_FATAL(...)
Definition Error.h:26
std::variant< Medium *, Phase *, Component * > scale_
Definition Property.h:297

References OGS_FATAL, and MaterialPropertyLib::Property::scale_.

◆ dValue()

PropertyDataType MaterialPropertyLib::WaterEnthalpyIAPWSIF97Region1::dValue ( VariableArray const & variable_array,
Variable const variable,
ParameterLib::SpatialPosition const & pos,
double const t,
double const dt ) const
overridevirtual
Returns
The derivative of enthalpy in IAPWS-IF97 region1.

Reimplemented from MaterialPropertyLib::Property.

Definition at line 45 of file WaterEnthalpyIAPWSIF97Region1.cpp.

49{
50 double const p = std::max(0.0, variable_array.liquid_phase_pressure);
51 double const T = variable_array.temperature;
52
53 double const tau = ref_T_ / T;
54 double const pi = p / ref_p_;
55
56 if (variable == Variable::temperature)
57 {
58 return -tau * tau * gibbs_free_energy_.get_dgamma_dtau_dtau(tau, pi) *
60 }
61
63 "WaterEnthalpyIAPWSIF97Region1::dValue is implemented for derivatives "
64 "with respect to temperature only.");
65}
constexpr double WaterVapour
Specific gas constant for water vapour.
static constexpr double ref_p_
reference pressure in Pa.
const MaterialLib::Fluid::DimensionLessGibbsFreeEnergyRegion1 gibbs_free_energy_
static constexpr double ref_T_
reference temperature in K.
static double get_dgamma_dtau_dtau(const double tau, const double pi)

References MaterialLib::Fluid::DimensionLessGibbsFreeEnergyRegion1::get_dgamma_dtau_dtau(), MaterialPropertyLib::gibbs_free_energy_, MaterialPropertyLib::VariableArray::liquid_phase_pressure, OGS_FATAL, MaterialPropertyLib::ref_p_, MaterialPropertyLib::ref_T_, MaterialPropertyLib::temperature, MaterialPropertyLib::VariableArray::temperature, and MaterialLib::PhysicalConstant::SpecificGasConstant::WaterVapour.

◆ value()

PropertyDataType MaterialPropertyLib::WaterEnthalpyIAPWSIF97Region1::value ( VariableArray const & variable_array,
ParameterLib::SpatialPosition const & pos,
double const t,
double const dt ) const
overridevirtual
Returns
The water enthalpy in IAPWS-IF97 region1.

Reimplemented from MaterialPropertyLib::Property.

Definition at line 29 of file WaterEnthalpyIAPWSIF97Region1.cpp.

33{
34 double const p = std::max(0.0, variable_array.liquid_phase_pressure);
35 double const T = variable_array.temperature;
36
37 double const tau = ref_T_ / T;
38 double const pi = p / ref_p_;
39
40 return tau *
43}

References MaterialLib::Fluid::DimensionLessGibbsFreeEnergyRegion1::get_dgamma_dtau(), MaterialPropertyLib::gibbs_free_energy_, MaterialPropertyLib::VariableArray::liquid_phase_pressure, MaterialPropertyLib::ref_p_, MaterialPropertyLib::ref_T_, MaterialPropertyLib::VariableArray::temperature, and MaterialLib::PhysicalConstant::SpecificGasConstant::WaterVapour.


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