https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
Water97FluidProperties Class Reference

Water (H2O) fluid properties as a function of pressure (Pa) and temperature (K) from IAPWS-IF97: Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam. More...

#include <Water97FluidProperties.h>

Inheritance diagram for Water97FluidProperties:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 Water97FluidProperties (const InputParameters &parameters)
 
virtual ~Water97FluidProperties ()
 
virtual std::string fluidName () const override
 Fluid name. More...
 
virtual Real molarMass () const override
 Molar mass [kg/mol]. More...
 
virtual Real criticalPressure () const override
 Critical pressure. More...
 
virtual Real criticalTemperature () const override
 Critical temperature. More...
 
virtual Real criticalDensity () const override
 Critical density. More...
 
virtual Real triplePointPressure () const override
 Triple point pressure. More...
 
virtual Real triplePointTemperature () const override
 Triple point temperature. More...
 
virtual Real rho_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal rho_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
virtual Real v_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal v_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
template<typename T >
T v_from_p_T_template (const T &pressure, const T &temperature) const
 
virtual void v_from_p_T (Real pressure, Real temperature, Real &v, Real &dv_dp, Real &dv_dT) const override
 
virtual void v_from_p_T (const ADReal &pressure, const ADReal &temperature, ADReal &v, ADReal &dv_dp, ADReal &dv_dT) const override
 
template<typename T >
void v_from_p_T_template (const T &pressure, const T &temperature, T &v, T &dv_dp, T &dv_dt) const
 
template<typename T >
T rho_from_p_T_template (const T &pressure, const T &temperature) const
 
template<typename T >
void rho_from_p_T_template (const T &pressure, const T &temperature, T &rho, T &drho_dp, T &drho_dt) const
 
virtual void rho_from_p_T (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT) const override
 
virtual void rho_from_p_T (const ADReal &pressure, const ADReal &temperature, ADReal &rho, ADReal &drho_dp, ADReal &drho_dT) const override
 
Real p_from_v_e (Real v, Real e) const override
 
ADReal p_from_v_e (const ADReal &v, const ADReal &e) const override
 
template<typename T >
T p_from_v_e_template (const T &v, const T &e) const
 
virtual Real e_from_p_rho (Real p, Real rho) const override
 
virtual ADReal e_from_p_rho (const ADReal &p, const ADReal &rho) const override
 
template<typename T >
T e_from_p_rho_template (const T &p, const T &rho) const
 
void e_from_p_rho (Real p, Real rho, Real &e, Real &de_dp, Real &de_drho) const override
 
void e_from_p_rho (const ADReal &p, const ADReal &rho, ADReal &e, ADReal &de_dp, ADReal &de_drho) const override
 
template<typename T >
void e_from_p_rho_template (const T &p, const T &rho, T &e, T &de_dp, T &de_drho) const
 
virtual Real e_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal e_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
template<typename T >
T e_from_p_T_template (const T &pressure, const T &temperature) const
 
virtual void e_from_p_T (Real pressure, Real temperature, Real &e, Real &de_dp, Real &de_dT) const override
 
virtual void e_from_p_T (const ADReal &pressure, const ADReal &temperature, ADReal &e, ADReal &de_dp, ADReal &de_dT) const override
 
template<typename T >
void e_from_p_T_template (const T &pressure, const T &temperature, T &e, T &de_dp, T &de_dT) const
 
ADReal e_from_v_h (const ADReal &v, const ADReal &h) const override
 
Real T_from_v_e (Real v, Real e) const override
 
ADReal T_from_v_e (const ADReal &v, const ADReal &e) const override
 
virtual Real c_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal c_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
template<typename T >
T c_from_p_T_template (const T &pressure, const T &temperature) const
 
virtual ADReal c_from_v_e (const ADReal &v, const ADReal &e) const override
 
virtual Real cp_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal cp_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
template<typename T >
T cp_from_p_T_template (const T &pressure, const T &temperature) const
 
virtual ADReal cp_from_v_e (const ADReal &v, const ADReal &e) const override
 
virtual Real cv_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal cv_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
template<typename T >
T cv_from_p_T_template (const T &pressure, const T &temperature) const
 
virtual ADReal cv_from_v_e (const ADReal &v, const ADReal &e) const override
 
virtual Real mu_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal mu_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
template<typename T >
T mu_from_p_T_template (const T &pressure, const T &temperature) const
 
virtual void mu_from_p_T (Real pressure, Real temperature, Real &mu, Real &dmu_dp, Real &dmu_dT) const override
 
virtual Real mu_from_rho_T (Real density, Real temperature) const override
 
template<typename T >
T mu_from_rho_T_template (const T &density, const T &temperature) const
 
void mu_from_rho_T (Real rho, Real temperature, Real drho_dT, Real &mu, Real &dmu_drho, Real &dmu_dT) const
 
ADReal mu_from_v_e (const ADReal &v, const ADReal &e) const override
 
virtual void rho_mu_from_p_T (Real pressure, Real temperature, Real &rho, Real &mu) const override
 Combined methods. More...
 
virtual void rho_mu_from_p_T (Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT, Real &mu, Real &dmu_dp, Real &dmu_dT) const override
 
virtual Real k_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal k_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
template<typename T >
T k_from_p_T_template (const T &pressure, const T &temperature) const
 
virtual void k_from_p_T (Real pressure, Real temperature, Real &k, Real &dk_dp, Real &dk_dT) const override
 
virtual Real k_from_rho_T (Real density, Real temperature) const override
 
template<typename T >
T k_from_rho_T_template (const T &density, const T &temperature) const
 
Real k_from_v_e (Real v, Real e) const override
 
ADReal k_from_v_e (const ADReal &v, const ADReal &e) const override
 
template<typename T >
T k_from_v_e_template (const T &v, const T &e) const
 
 propfuncWithDefinitionOverride (s, p, T)
 
virtual Real h_from_p_T (Real pressure, Real temperature) const override
 
virtual ADReal h_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
template<typename T >
T h_from_p_T_template (const T &pressure, const T &temperature) const
 
virtual void h_from_p_T (Real pressure, Real temperature, Real &h, Real &dh_dp, Real &dh_dT) const override
 
virtual void h_from_p_T (const ADReal &pressure, const ADReal &temperature, ADReal &h, ADReal &dh_dp, ADReal &dh_dT) const override
 
template<typename T >
void h_from_p_T_template (const T &pressure, const T &temperature, T &h, T &dh_dp, T &dh_dT) const
 
virtual Real s_from_h_p (Real enthalpy, Real pressure) const override
 
virtual ADReal s_from_h_p (const ADReal &enthalpy, const ADReal &pressure) const override
 
virtual void s_from_h_p (Real enthalpy, Real pressure, Real &s, Real &ds_dh, Real &ds_dp) const override
 
virtual Real vaporPressure (Real temperature) const override
 Vapor pressure. More...
 
virtual void vaporPressure (Real temperature, Real &psat, Real &dpsat_dT) const override
 
template<typename T >
void vaporPressureTemplate (const T &temperature, T &psat, T &dpsat_dT) const
 
Real vaporTemperature (Real pressure) const override
 Saturation temperature as a function of pressure. More...
 
virtual void vaporTemperature (Real pressure, Real &Tsat, Real &dTsat_dp) const override
 
Real b23p (Real temperature) const
 Auxillary equation for the boundary between regions 2 and 3. More...
 
Real b23T (Real pressure) const
 Auxillary equation for the boundary between regions 2 and 3. More...
 
unsigned int inRegion (Real pressure, Real temperature) const
 Determines the phase region that the given pressure and temperature values lie in. More...
 
unsigned int subregion3 (Real pressure, Real temperature) const
 Provides the correct subregion index for a (P,T) point in region 3. More...
 
template<typename T >
T subregionVolume (const T &pi, const T &theta, Real a, Real b, Real c, Real d, Real e, unsigned int sid) const
 Specific volume in all subregions of region 3 EXCEPT subregion n (13). More...
 
template<typename T >
T densityRegion3 (const T &pressure, const T &temperature) const
 Density function for Region 3 - supercritical water and steam. More...
 
virtual Real T_from_p_h (Real pressure, Real enthalpy) const override
 Backwards equation T(p, h) From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam. More...
 
virtual void T_from_p_h (Real p, Real h, Real &T, Real &dT_dp, Real &dT_dh) const override
 
virtual ADReal T_from_p_h (const ADReal &pressure, const ADReal &enthalpy) const override
 
Real b2bc (Real pressure) const
 Boundary between subregions b and c in region 2. More...
 
Real b3ab (Real pressure) const
 Boundary between subregions a and b in region 3. More...
 
Real henryConstant (Real temperature, const std::vector< Real > &coeffs) const
 IAPWS formulation of Henry's law constant for dissolution in water From Guidelines on the Henry's constant and vapour liquid distribution constant for gases in H20 and D20 at high temperatures, IAPWS (2004) More...
 
void henryConstant (Real temperature, const std::vector< Real > &coeffs, Real &Kh, Real &dKh_dT) const
 
ADReal henryConstant (const ADReal &temperature, const std::vector< Real > &coeffs) const
 
template<typename T >
std::pair< T, Tp_T_from_v_e (const T &v, const T &e) const
 Computes the pressure (first member of the pair) and temperature (second member of the pair) as functions of specific volume and specific internal energy. More...
 
template<typename T >
std::pair< T, Trho_T_from_v_e (const T &v, const T &e) const
 Computes the density (first member of the pair) and temperature (second member of the pair) as functions of specific volume and specific internal energy. More...
 
template<typename T >
std::pair< T, Tp_T_from_v_h (const T &v, const T &h) const
 Computes the pressure (first member of the pair) and temperature (second member of the pair) as functions of specific volume and specific enthalpy. More...
 
template<typename T >
void p_T_from_v_h (const T &v, const T &h, Real p0, Real T0, T &pressure, T &temperature, bool &conversion_succeeded) const
 Determines (p,T) from (v,h) using Newton Solve in 2D Useful for conversion between different sets of state variables. More...
 
virtual Real criticalInternalEnergy () const
 Critical specific internal energy. More...
 
virtual Real e_spndl_from_v (Real v) const
 Specific internal energy from temperature and specific volume. More...
 
virtual void v_e_spndl_from_T (Real T, Real &v, Real &e) const
 Specific internal energy from temperature and specific volume. More...
 
virtual ADReal vaporPressure (const ADReal &T) const
 
virtual ADReal vaporTemperature (const ADReal &p) const
 
virtual std::vector< RealhenryCoefficients () const
 Henry's law coefficients for dissolution in water. More...
 
template<typename CppType >
void v_e_from_p_T (const CppType &p, const CppType &T, CppType &v, CppType &e) const
 
template<typename CppType >
void v_e_from_p_T (const CppType &p, const CppType &T, CppType &v, CppType &dv_dp, CppType &dv_dT, CppType &e, CppType &de_dp, CppType &de_dT) const
 
virtual void rho_mu_from_p_T (const ADReal &p, const ADReal &T, ADReal &rho, ADReal &mu) const
 
virtual void rho_e_from_p_T (Real p, Real T, Real &rho, Real &drho_dp, Real &drho_dT, Real &e, Real &de_dp, Real &de_dT) const
 
template<typename CppType >
void p_T_from_v_e (const CppType &v, const CppType &e, Real p0, Real T0, CppType &p, CppType &T, bool &conversion_succeeded) const
 Determines (p,T) from (v,e) using Newton Solve in 2D Useful for conversion between different sets of state variables. More...
 
template<typename T >
void p_T_from_v_h (const T &v, const T &h, Real p0, Real T0, T &pressure, T &temperature, bool &conversion_succeeded) const
 Determines (p,T) from (v,h) using Newton Solve in 2D Useful for conversion between different sets of state variables. More...
 
template<typename T >
void p_T_from_h_s (const T &h, const T &s, Real p0, Real T0, T &pressure, T &temperature, bool &conversion_succeeded) const
 Determines (p,T) from (h,s) using Newton Solve in 2D Useful for conversion between different sets of state variables. More...
 
template<>
std::pair< Real, RealmakeZeroAndOne (const Real &)
 
virtual void execute () final
 
virtual void initialize () final
 
virtual void finalize () final
 
virtual void threadJoin (const UserObject &) final
 
virtual void subdomainSetup () final
 
bool needThreadedCopy () const override final
 
SubProblemgetSubProblem () const
 
bool shouldDuplicateInitialExecution () const
 
virtual Real spatialValue (const Point &) const
 
virtual const std::vector< Point > spatialPoints () const
 
void gatherSum (T &value)
 
void gatherMax (T &value)
 
void gatherMin (T &value)
 
void gatherProxyValueMax (T1 &proxy, T2 &value)
 
void gatherProxyValueMin (T1 &proxy, T2 &value)
 
void setPrimaryThreadCopy (UserObject *primary)
 
UserObjectprimaryThreadCopy ()
 
std::set< UserObjectName > getDependObjects () const
 
const std::set< std::string > & getRequestedItems () override
 
const std::set< std::string > & getSuppliedItems () override
 
unsigned int systemNumber () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject (IsKokkosObjectKey &&) const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
virtual void initialSetup ()
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const TgetUserObject (const std::string &param_name, bool is_dependency=true) const
 
const TgetUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const std::vector< MooseVariableScalar *> & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyByName (const std::string &prop_name_in)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOldByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlderByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialProperty (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOld (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlder (const std::string &name)
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty ()
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialPropertyByName (const std::string &prop_name)
 
const MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
std::set< SubdomainIDgetMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryIDgetMaterialPropertyBoundaryIDs (const std::string &name)
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 
void checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase *> > buildRequiredMaterials (bool allow_stateful=true)
 
void statefulPropertiesAllowed (bool)
 
virtual bool getMaterialPropertyCalled () const
 
virtual const std::unordered_set< unsigned int > & getMatPropDependencies () const
 
virtual void resolveOptionalProperties ()
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
const FunctiongetFunction (const std::string &name) const
 
const FunctiongetFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name) const
 
const VectorPostprocessorName & getVectorPostprocessorName (const std::string &param_name) const
 
TgetSampler (const std::string &name)
 
SamplergetSampler (const std::string &name)
 
TgetSamplerByName (const SamplerName &name)
 
SamplergetSamplerByName (const SamplerName &name)
 
virtual void meshChanged ()
 
virtual void meshDisplaced ()
 
PerfGraphperfGraph ()
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const TgetDistribution (const std::string &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const TgetDistribution (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const TgetDistributionByName (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const TgetDistributionByName (const std::string &name) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node)
 
static void sort (typename std::vector< T > &vector)
 
static void sortDFS (typename std::vector< T > &vector)
 
static void cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const Real _R = 8.3144598
 Universal gas constant (J/mol/K) More...
 
static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 
static constexpr PropertyValue::id_type default_property_id
 
static constexpr PropertyValue::id_type zero_property_id
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Types

enum  subregionEnum {
  AB, CD, GH, IJ,
  JK, MN, OP, QU,
  RX, UV, WX, EF
}
 Enum of subregion ids for region 3. More...
 

Protected Member Functions

template<typename T >
T gamma1 (const T &pi, const T &tau) const
 Gibbs free energy in Region 1 - single phase liquid region. More...
 
template<typename T >
T dgamma1_dpi (const T &pi, const T &tau) const
 Derivative of Gibbs free energy in Region 1 wrt pi. More...
 
template<typename T >
T d2gamma1_dpi2 (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 1 wrt pi. More...
 
template<typename T >
T dgamma1_dtau (const T &pi, const T &tau) const
 Derivative of Gibbs free energy in Region 1 wrt tau. More...
 
template<typename T >
T d2gamma1_dtau2 (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 1 wrt tau. More...
 
template<typename T >
T d2gamma1_dpitau (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 1 wrt pi and tau. More...
 
template<typename T >
T gamma2 (const T &pi, const T &tau) const
 Gibbs free energy in Region 2 - superheated steam. More...
 
template<typename T >
T dgamma2_dpi (const T &pi, const T &tau) const
 Derivative of Gibbs free energy in Region 2 wrt pi. More...
 
template<typename T >
T d2gamma2_dpi2 (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 2 wrt pi. More...
 
template<typename T >
T dgamma2_dtau (const T &pi, const T &tau) const
 Derivative of Gibbs free energy in Region 2 wrt tau. More...
 
template<typename T >
T d2gamma2_dtau2 (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 2 wrt tau. More...
 
template<typename T >
T d2gamma2_dpitau (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 2 wrt pi and tau. More...
 
template<typename T >
T phi3 (const T &delta, const T &tau) const
 Helmholtz free energy in Region 3. More...
 
template<typename T >
T dphi3_ddelta (const T &delta, const T &tau) const
 Derivative of Helmholtz free energy in Region 3 wrt delta. More...
 
template<typename T >
T d2phi3_ddelta2 (const T &delta, const T &tau) const
 Second derivative of Helmholtz free energy in Region 3 wrt delta. More...
 
template<typename T >
T dphi3_dtau (const T &delta, const T &tau) const
 Derivative of Helmholtz free energy in Region 3 wrt tau. More...
 
template<typename T >
T d2phi3_dtau2 (const T &delta, const T &tau) const
 Second derivative of Helmholtz free energy in Region 3 wrt tau. More...
 
template<typename T >
T d2phi3_ddeltatau (const T &delta, const T &tau) const
 Second derivative of Helmholtz free energy in Region 3 wrt delta and tau. More...
 
template<typename T >
T gamma5 (const T &pi, const T &tau) const
 Gibbs free energy in Region 5. More...
 
template<typename T >
T dgamma5_dpi (const T &pi, const T &tau) const
 Derivative of Gibbs free energy in Region 5 wrt pi. More...
 
template<typename T >
T d2gamma5_dpi2 (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 5 wrt pi. More...
 
template<typename T >
T dgamma5_dtau (const T &pi, const T &tau) const
 Derivative of Gibbs free energy in Region 5 wrt tau. More...
 
template<typename T >
T d2gamma5_dtau2 (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 5 wrt tau. More...
 
template<typename T >
T d2gamma5_dpitau (const T &pi, const T &tau) const
 Second derivative of Gibbs free energy in Region 5 wrt pi and tau. More...
 
template<typename T >
T tempXY (const T &pressure, subregionEnum xy) const
 Boundaries between subregions in region 3. More...
 
unsigned int inRegionPH (Real pressure, Real enthalpy) const
 Determines the phase region that the given pressure and enthaply values lie in. More...
 
unsigned int subregion2ph (Real pressure, Real enthalpy) const
 Provides the correct subregion index for a (P,h) point in region 2. More...
 
unsigned int subregion3ph (Real pressure, Real enthalpy) const
 Provides the correct subregion index for a (P,h) point in region 3. More...
 
ADReal T_from_p_h_ad (const ADReal &pressure, const ADReal &enthalpy) const
 AD version of backwards equation T(p, h) (used internally) From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam. More...
 
ADReal temperature_from_ph1 (const ADReal &pressure, const ADReal &enthalpy) const
 Backwards equation T(p, h) in Region 1 Eq. More...
 
ADReal temperature_from_ph2a (const ADReal &pressure, const ADReal &enthalpy) const
 Backwards equation T(p, h) in Region 2a Eq. More...
 
ADReal temperature_from_ph2b (const ADReal &pressure, const ADReal &enthalpy) const
 Backwards equation T(p, h) in Region 2b Eq. More...
 
ADReal temperature_from_ph2c (const ADReal &pressure, const ADReal &enthalpy) const
 Backwards equation T(p, h) in Region 2c Eq. More...
 
ADReal temperature_from_ph3a (const ADReal &pressure, const ADReal &enthalpy) const
 Backwards equation T(p, h) in Region 3a Eq. More...
 
ADReal temperature_from_ph3b (const ADReal &pressure, const ADReal &enthalpy) const
 Backwards equation T(p, h) in Region 3b Eq. More...
 
ADReal vaporTemperature_ad (const ADReal &pressure) const
 AD version of saturation temperature as a function of pressure (used internally) More...
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &name) const override
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override
 
virtual void addUserObjectDependencyHelper (const UserObject &uo) const override
 
void addReporterDependencyHelper (const ReporterName &reporter_name) override
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
const ReporterContextBasegetReporterContextBaseByName (const ReporterName &reporter_name) const
 
const ReporterNamegetReporterName (const std::string &param_name) const
 
TdeclareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< TdeclareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const TgetRestartableData (const std::string &data_name) const
 
TdeclareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
TdeclareRecoverableData (const std::string &data_name, Args &&... args)
 
TdeclareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
TdeclareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
const TgetMeshProperty (const std::string &data_name, const std::string &prefix)
 
const TgetMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
bool isCoupledScalar (const std::string &var_name, unsigned int i=0) const
 
unsigned int coupledScalarComponents (const std::string &var_name) const
 
unsigned int coupledScalar (const std::string &var_name, unsigned int comp=0) const
 
libMesh::Order coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< is_ad > & coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const VariableValuecoupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalargetScalarVar (const std::string &var_name, unsigned int comp) const
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state)
 
virtual void getKokkosMaterialPropertyHook (const std::string &, const unsigned int)
 
void markMatPropRequested (const std::string &)
 
MaterialPropertyName getMaterialPropertyName (const std::string &name) const
 
void checkExecutionStage ()
 
const TgetReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 

Static Protected Member Functions

template<typename T , typename Functor >
static void xyDerivatives (const T x, const T &y, T &z, T &dz_dx, T &dz_dy, const Functor &z_from_x_y)
 Computes the dependent variable z and its derivatives with respect to the independent variables x and y using the simple two parameter z_from_x_y functor. More...
 
template<typename T >
static std::pair< T, TmakeZeroAndOne (const T &)
 Given a type example, this method returns zero and unity representations of that type (first and second members of returned pair respectively) More...
 
static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

const Real _Mh2o
 Water molar mass (kg/mol) More...
 
const Real _Rw
 Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) More...
 
const Real _p_critical
 Critical pressure (Pa) More...
 
const Real _T_critical
 Critical temperature (K) More...
 
const Real _rho_critical
 Critical density (kg/m^3) More...
 
const Real _p_triple
 Triple point pressure (Pa) More...
 
const Real _T_triple
 Triple point temperature (K) More...
 
const std::array< Real, 34 > _n1
 Reference constants used in to calculate thermophysical properties of water. More...
 
const std::array< int, 34 > _I1
 
const std::array< int, 34 > _J1
 
const std::array< Real, 20 > _nph1
 
const std::array< int, 20 > _Iph1 {{0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 6}}
 
const std::array< int, 20 > _Jph1
 
const std::array< Real, 9 > _n02
 Constants for region 2. More...
 
const std::array< Real, 43 > _n2
 
const std::array< int, 9 > _J02 {{0, 1, -5, -4, -3, -2, -1, 2, 3}}
 
const std::array< int, 43 > _I2
 
const std::array< int, 43 > _J2
 
const std::array< Real, 36 > _nph2a
 
const std::array< int, 36 > _Iph2a
 
const std::array< int, 36 > _Jph2a
 
const std::array< Real, 38 > _nph2b
 
const std::array< int, 38 > _Iph2b
 
const std::array< int, 38 > _Jph2b
 
const std::array< Real, 23 > _nph2c
 
const std::array< int, 23 > _Iph2c
 
const std::array< int, 23 > _Jph2c
 
const std::array< Real, 5 > _n23
 Constants for the boundary between regions 2 and 3. More...
 
const std::array< Real, 40 > _n3
 Constants for region 3. More...
 
const std::array< int, 40 > _I3
 
const std::array< int, 40 > _J3
 
const std::array< std::array< Real, 8 >, 26 > _par3
 
const std::array< unsigned int, 26 > _par3N
 
const std::vector< std::vector< Real > > _n3s
 Constants for all 26 subregions in region 3. More...
 
const std::vector< std::vector< int > > _I3s
 
const std::vector< std::vector< int > > _J3s
 
const std::array< Real, 31 > _nph3a
 
const std::array< int, 31 > _Iph3a
 
const std::array< int, 31 > _Jph3a
 
const std::array< Real, 33 > _nph3b
 
const std::array< int, 33 > _Iph3b
 
const std::array< int, 33 > _Jph3b
 
const std::array< Real, 10 > _n4
 Constants for region 4 (the saturation curve up to the critical point) More...
 
const std::array< int, 6 > _J05 {{0, 1, -3, -2, -1, 2}}
 Constants for region 5. More...
 
const std::array< Real, 6 > _n05
 
const std::array< int, 6 > _I5 {{1, 1, 1, 2, 2, 3}}
 
const std::array< int, 6 > _J5 {{1, 2, 3, 3, 9, 7}}
 
const std::array< Real, 6 > _n5
 
const std::vector< std::vector< int > > _tempXY_I
 Constnats for the tempXY() method. More...
 
const std::vector< std::vector< Real > > _tempXY_n
 
const std::array< Real, 4 > _mu_H0 {{1.67752, 2.20462, 0.6366564, -0.241605}}
 Constants from Release on the IAPWS Formulation 2008 for the Viscosity of Ordinary Water Substance. More...
 
const std::array< std::array< Real, 7 >, 6 > _mu_Hij
 
std::array< Real, 4 > _k_a {{0.0102811, 0.0299621, 0.0156146, -0.00422464}}
 Constants for thermal conductivity. More...
 
const std::array< Real, 5 > _T_star {{1386.0, 540.0, _T_critical, 1.0, 1000.0}}
 Temperature scale for each region. More...
 
const std::array< Real, 5 > _p_star {{16.53e6, 1.0e6, 1.0e6, 1.0e6, 1.0e6}}
 Pressure scale for each region. More...
 
const Real _tolerance
 Newton's method may be used to convert between variable sets. More...
 
const Real _T_initial_guess
 Initial guess for temperature (or temperature used to compute the initial guess) More...
 
const Real _p_initial_guess
 Initial guess for pressure (or pressure used to compute the initial guess) More...
 
const unsigned int _max_newton_its
 Maximum number of iterations for the variable conversion newton solves. More...
 
const Real _T_c2k
 Conversion of temperature from Celsius to Kelvin. More...
 
const bool _allow_imperfect_jacobians
 Flag to set unimplemented Jacobian entries to zero. More...
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
SystemBase_sys
 
const THREAD_ID _tid
 
Assembly_assembly
 
const Moose::CoordinateSystemType_coord_sys
 
const bool _duplicate_initial_execution
 
std::set< std::string > _depend_uo
 
const bool & _enabled
 
MooseApp_app
 
Factory_factory
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
FEProblemBase_mdi_feproblem
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
FEProblemBase_sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real_real_zero
 
const VariableValue_scalar_zero
 
const Point & _point_zero
 
const InputParameters_mi_params
 
const std::string _mi_name
 
const MooseObjectName _mi_moose_object_name
 
FEProblemBase_mi_feproblem
 
SubProblem_mi_subproblem
 
const THREAD_ID _mi_tid
 
const bool _is_kokkos_object
 
const Moose::MaterialDataType _material_data_type
 
MaterialData_material_data
 
bool _stateful_allowed
 
bool _get_material_property_called
 
std::vector< std::unique_ptr< PropertyValue > > _default_properties
 
std::unordered_set< unsigned int_material_property_dependencies
 
const MaterialPropertyName _get_suffix
 
const bool _use_interpolated_state
 
const InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 
Real_t
 
const Real_t_old
 
int_t_step
 
Real_dt
 
Real_dt_old
 
bool _is_transient
 
const Parallel::Communicator & _communicator
 

Static Protected Attributes

static const std::string _interpolated_old
 
static const std::string _interpolated_older
 

Private Member Functions

template<typename T >
std::pair< T, TT_drhodT_from_p_rho (const T &p, const T &rho) const
 Computes the temperature (first member of the pair) and the derivative of density (second member of the pair) with respect to temperature as a function of pressure and density. More...
 
 propfunc (p, v, e) propfunc(T
 Compute a fluid property given for the state defined by two given properties. More...
 
propfunc (c, v, e) propfunc(cp
 
e e propfunc (cv, v, e) propfunc(mu
 
e e e propfunc (k, v, e) propfuncWithDefault(s
 
e e e e propfunc (s, h, p) propfunc(rho
 
e e e e s propfunc (e, v, h) propfuncWithDefault(s
 
e e e e s T propfunc (pp_sat, p, T) propfunc(mu
 
e e e e s T T propfunc (k, rho, T) propfuncWithDefault(c
 
e e e e s T T T T T propfunc (rho, p, T) propfunc(e
 
e e e e s T T T T T rho propfunc (e, T, v) propfunc(p
 
e e e e s T T T T T rho v propfunc (h, T, v) propfunc(s
 
e e e e s T T T T T rho v v propfunc (cv, T, v) propfunc(h
 
e e e e s T T T propfuncWithDefault (cp, p, T) propfuncWithDefault(cv
 
e e e e s T T T T propfuncWithDefault (mu, p, T) propfuncWithDefault(k
 
e e e e s T T T T T rho v v T propfuncWithDefault (h, v, e) propfunc(g
 
e e e e s T T T T T rho v v TpropfuncWithDefault (p, h, s) propfunc(T
 
e e e e s T T T T T rho v v T e p propfuncWithDefault (T, p, h) propfuncWithDefault(beta
 
e e e e s T T T T T rho v v T e p T propfuncWithDefault (v, p, T) propfuncWithDefault(e
 
e e e e s T T T T T rho v v T e p T T propfuncWithDefault (gamma, v, e) propfuncWithDefault(gamma
 
 v
 
v
 
e e v
 
e e e v
 
e e e e s T T T T T rho v v T v
 
e e e e p
 
e e e e s p
 
e e e e s T T p
 
e e e e s T T T p
 
e e e e s T T T T p
 
e e e e s T T T T T p
 
e e e e s T T T T T rho v v p
 
e e e e s T T T T T rho v v T e p p
 
e e e e s T T T T T rho v v T e p T p
 
e e e e s T T T T T rho v v T e p T T p
 
e e e e s T rho
 
e e e e s T T T T T rho T
 
e e e e s T T T T T rho v T
 
e e e e s T T T T T rho v v Th
 

Detailed Description

Water (H2O) fluid properties as a function of pressure (Pa) and temperature (K) from IAPWS-IF97: Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam.

To avoid iteration in Region 3, the backwards equations from: Revised Supplementary Release on Backward Equations for Specific Volume as a Function of Pressure and Temperature v(p,T) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam are implemented.

Water viscosity as a function of density (kg/m^3) and temperature (K) from: Release on the IAPWS Formulation 2008 for the Viscosity of Ordinary Water Substance.

Thermal conductivity as a function of density (kg/m^3) and temperature (K) from: Revised Release on the IAPS Formulation 1985 for the Thermal Conductivity of Ordinary Water Substance

Definition at line 38 of file Water97FluidProperties.h.

Member Enumeration Documentation

◆ subregionEnum

Constructor & Destructor Documentation

◆ Water97FluidProperties()

Water97FluidProperties::Water97FluidProperties ( const InputParameters parameters)

Definition at line 24 of file Water97FluidProperties.C.

26  _Mh2o(18.015e-3),
27  _Rw(461.526),
28  _p_critical(22.064e6),
29  _T_critical(647.096),
30  _rho_critical(322.0),
31  _p_triple(611.657),
32  _T_triple(273.16)
33 {
34 }
const Real _T_critical
Critical temperature (K)
const Real _p_critical
Critical pressure (Pa)
const InputParameters & parameters() const
SinglePhaseFluidProperties(const InputParameters &parameters)
const Real _T_triple
Triple point temperature (K)
const Real _rho_critical
Critical density (kg/m^3)
const Real _Rw
Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) ...
const Real _p_triple
Triple point pressure (Pa)
const Real _Mh2o
Water molar mass (kg/mol)

◆ ~Water97FluidProperties()

Water97FluidProperties::~Water97FluidProperties ( )
virtual

Definition at line 36 of file Water97FluidProperties.C.

36 {}

Member Function Documentation

◆ b23p()

Real Water97FluidProperties::b23p ( Real  temperature) const

Auxillary equation for the boundary between regions 2 and 3.

Eq. (5) from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
temperaturewater temperature (K)
Returns
pressure (Pa) on the boundary between region 2 and 3

Definition at line 585 of file Water97FluidProperties.C.

Referenced by b3ab(), and inRegion().

586 {
587  // Check whether the input temperature is within the region of validity of this equation.
588  // Valid for 623.15 K <= t <= 863.15 K
589  if (temperature < 623.15 || temperature > 863.15)
590  mooseException(name(),
591  ": b23p(): Temperature ",
592  temperature,
593  " is outside range of 623.15 K <= T <= 863.15 K");
594 
595  return (_n23[0] + _n23[1] * temperature + _n23[2] * temperature * temperature) * 1.e6;
596 }
const std::array< Real, 5 > _n23
Constants for the boundary between regions 2 and 3.
static const std::string temperature
Definition: NS.h:59
const std::string & name() const

◆ b23T()

Real Water97FluidProperties::b23T ( Real  pressure) const

Auxillary equation for the boundary between regions 2 and 3.

Eq. (6) from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
Returns
temperature (K) on the boundary between regions 2 and 3

Definition at line 599 of file Water97FluidProperties.C.

Referenced by inRegionPH().

600 {
601  // Check whether the input pressure is within the region of validity of this equation.
602  // Valid for 16.529 MPa <= p <= 100 MPa
603  if (pressure < 16.529e6 || pressure > 100.0e6)
604  mooseException(
605  name(), ": b23T(): Pressure ", pressure, "is outside range 16.529 MPa <= p <= 100 MPa");
606 
607  return _n23[3] + std::sqrt((pressure / 1.e6 - _n23[4]) / _n23[2]);
608 }
const std::array< Real, 5 > _n23
Constants for the boundary between regions 2 and 3.
const std::string & name() const
static const std::string pressure
Definition: NS.h:56

◆ b2bc()

Real Water97FluidProperties::b2bc ( Real  pressure) const

Boundary between subregions b and c in region 2.

Equation 21 from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam.

Parameters
pressurewater pressure (Pa)
Returns
enthalpy at boundary (J/kg)

Definition at line 700 of file Water97FluidProperties.C.

Referenced by subregion2ph().

701 {
702  // Check whether the input pressure is within the region of validity of this equation.
703  if (pressure < 6.5467e6 || pressure > 100.0e6)
704  mooseException(
705  name(), ": b2bc(): Pressure ", pressure, " is outside range of 6.5467 MPa <= p <= 100 MPa");
706 
707  Real pi = pressure / 1.0e6;
708 
709  return (0.26526571908428e4 + std::sqrt((pi - 0.45257578905948e1) / 0.12809002730136e-3)) * 1.0e3;
710 }
const std::string & name() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
const Real pi

◆ b3ab()

Real Water97FluidProperties::b3ab ( Real  pressure) const

Boundary between subregions a and b in region 3.

Equation 1 from Revised Supplementary Release on Backward Equations for the Functions T(p,h), v(p,h) and T(p,s), v(p,s) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
Returns
enthalpy at boundary (J/kg)

Definition at line 871 of file Water97FluidProperties.C.

Referenced by subregion3ph().

872 {
873  // Check whether the input pressure is within the region of validity of this equation.
874  if (pressure < b23p(623.15) || pressure > 100.0e6)
875  mooseException(
876  name(), ": b3ab(): Pressure ", pressure, "is outside range of 16.529 MPa <= p <= 100 MPa");
877 
878  Real pi = pressure / 1.0e6;
879  Real eta = 0.201464004206875e4 + 0.374696550136983e1 * pi - 0.219921901054187e-1 * pi * pi +
880  0.87513168600995e-4 * pi * pi * pi;
881 
882  return eta * 1.0e3;
883 }
const std::string & name() const
Real b23p(Real temperature) const
Auxillary equation for the boundary between regions 2 and 3.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
const Real pi

◆ c_from_p_T() [1/2]

Real Water97FluidProperties::c_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 232 of file Water97FluidProperties.C.

Referenced by c_from_v_e().

233 {
234  return c_from_p_T_template(p, T);
235 }
T c_from_p_T_template(const T &pressure, const T &temperature) const

◆ c_from_p_T() [2/2]

ADReal Water97FluidProperties::c_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 238 of file Water97FluidProperties.C.

239 {
240  return c_from_p_T_template(p, T);
241 }
T c_from_p_T_template(const T &pressure, const T &temperature) const

◆ c_from_p_T_template()

template<typename T >
T Water97FluidProperties::c_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2222 of file Water97FluidProperties.h.

Referenced by c_from_p_T().

2223 {
2224  T speed2, pi, tau, delta;
2225 
2226  // Determine which region the point is in
2227  unsigned int region =
2229  switch (region)
2230  {
2231  case 1:
2232  pi = pressure / _p_star[0];
2233  tau = _T_star[0] / temperature;
2234  speed2 = _Rw * temperature * Utility::pow<2>(dgamma1_dpi(pi, tau)) /
2235  (Utility::pow<2>(dgamma1_dpi(pi, tau) - tau * d2gamma1_dpitau(pi, tau)) /
2236  (tau * tau * d2gamma1_dtau2(pi, tau)) -
2237  d2gamma1_dpi2(pi, tau));
2238  break;
2239 
2240  case 2:
2241  pi = pressure / _p_star[1];
2242  tau = _T_star[1] / temperature;
2243  speed2 = _Rw * temperature * Utility::pow<2>(pi * dgamma2_dpi(pi, tau)) /
2244  ((-pi * pi * d2gamma2_dpi2(pi, tau)) +
2245  Utility::pow<2>(pi * dgamma2_dpi(pi, tau) - tau * pi * d2gamma2_dpitau(pi, tau)) /
2246  (tau * tau * d2gamma2_dtau2(pi, tau)));
2247  break;
2248 
2249  case 3:
2250  {
2251  // Calculate density first, then use that in Helmholtz free energy
2252  T density3 = densityRegion3(pressure, temperature);
2253  delta = density3 / _rho_critical;
2254  tau = _T_star[2] / temperature;
2255  speed2 =
2256  _Rw * temperature *
2257  (2.0 * delta * dphi3_ddelta(delta, tau) + delta * delta * d2phi3_ddelta2(delta, tau) -
2258  Utility::pow<2>(delta * dphi3_ddelta(delta, tau) -
2259  delta * tau * d2phi3_ddeltatau(delta, tau)) /
2260  (tau * tau * d2phi3_dtau2(delta, tau)));
2261  break;
2262  }
2263 
2264  case 5:
2265  pi = pressure / _p_star[4];
2266  tau = _T_star[4] / temperature;
2267  speed2 = _Rw * temperature * Utility::pow<2>(pi * dgamma5_dpi(pi, tau)) /
2268  ((-pi * pi * d2gamma5_dpi2(pi, tau)) +
2269  Utility::pow<2>(pi * dgamma5_dpi(pi, tau) - tau * pi * d2gamma5_dpitau(pi, tau)) /
2270  (tau * tau * d2gamma5_dtau2(pi, tau)));
2271  break;
2272 
2273  default:
2274  mooseError("inRegion() has given an incorrect region");
2275  }
2276 
2277  using std::sqrt;
2278  return sqrt(speed2);
2279 }
unsigned int inRegion(Real pressure, Real temperature) const
Determines the phase region that the given pressure and temperature values lie in.
T d2phi3_ddelta2(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt delta.
T d2gamma5_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt pi and tau.
T d2gamma2_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt pi and tau.
T d2gamma5_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt tau.
auto raw_value(const Eigen::Map< T > &in)
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
static const std::string temperature
Definition: NS.h:59
const std::array< Real, 5 > _p_star
Pressure scale for each region.
const std::array< Real, 5 > _T_star
Temperature scale for each region.
T d2gamma1_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt pi and tau.
T dphi3_ddelta(const T &delta, const T &tau) const
Derivative of Helmholtz free energy in Region 3 wrt delta.
T d2gamma2_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt pi.
T d2gamma1_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt tau.
T dgamma2_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 2 wrt pi.
T d2gamma2_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt tau.
T dgamma1_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 1 wrt pi.
T dgamma5_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 5 wrt pi.
T d2phi3_dtau2(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt tau.
const Real _rho_critical
Critical density (kg/m^3)
T densityRegion3(const T &pressure, const T &temperature) const
Density function for Region 3 - supercritical water and steam.
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
static const std::string pressure
Definition: NS.h:56
T d2gamma5_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt pi.
void mooseError(Args &&... args) const
const Real _Rw
Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) ...
T d2gamma1_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt pi.
T d2phi3_ddeltatau(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt delta and tau.
const Real pi

◆ c_from_v_e()

ADReal Water97FluidProperties::c_from_v_e ( const ADReal v,
const ADReal e 
) const
overridevirtual

Definition at line 225 of file Water97FluidProperties.C.

226 {
227  const auto [p, T] = p_T_from_v_e(v, e);
228  return c_from_p_T(p, T);
229 }
std::pair< T, T > p_T_from_v_e(const T &v, const T &e) const
Computes the pressure (first member of the pair) and temperature (second member of the pair) as funct...
virtual Real c_from_p_T(Real pressure, Real temperature) const override

◆ cp_from_p_T() [1/2]

Real Water97FluidProperties::cp_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 244 of file Water97FluidProperties.C.

Referenced by cp_from_v_e().

245 {
247 }
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56
T cp_from_p_T_template(const T &pressure, const T &temperature) const

◆ cp_from_p_T() [2/2]

ADReal Water97FluidProperties::cp_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 250 of file Water97FluidProperties.C.

251 {
253 }
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56
T cp_from_p_T_template(const T &pressure, const T &temperature) const

◆ cp_from_p_T_template()

template<typename T >
T Water97FluidProperties::cp_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2283 of file Water97FluidProperties.h.

Referenced by cp_from_p_T().

2284 {
2285  T specific_heat, pi, tau, delta;
2286 
2287  // Determine which region the point is in
2288  unsigned int region =
2290  switch (region)
2291  {
2292  case 1:
2293  pi = pressure / _p_star[0];
2294  tau = _T_star[0] / temperature;
2295  specific_heat = -_Rw * tau * tau * d2gamma1_dtau2(pi, tau);
2296  break;
2297 
2298  case 2:
2299  pi = pressure / _p_star[1];
2300  tau = _T_star[1] / temperature;
2301  specific_heat = -_Rw * tau * tau * d2gamma2_dtau2(pi, tau);
2302  break;
2303 
2304  case 3:
2305  {
2306  // Calculate density first, then use that in Helmholtz free energy
2307  T density3 = densityRegion3(pressure, temperature);
2308  delta = density3 / _rho_critical;
2309  tau = _T_star[2] / temperature;
2310  specific_heat =
2311  _Rw *
2312  (-tau * tau * d2phi3_dtau2(delta, tau) +
2313  (delta * dphi3_ddelta(delta, tau) - delta * tau * d2phi3_ddeltatau(delta, tau)) *
2314  (delta * dphi3_ddelta(delta, tau) - delta * tau * d2phi3_ddeltatau(delta, tau)) /
2315  (2.0 * delta * dphi3_ddelta(delta, tau) +
2316  delta * delta * d2phi3_ddelta2(delta, tau)));
2317  break;
2318  }
2319 
2320  case 5:
2321  pi = pressure / _p_star[4];
2322  tau = _T_star[4] / temperature;
2323  specific_heat = -_Rw * tau * tau * d2gamma5_dtau2(pi, tau);
2324  break;
2325 
2326  default:
2327  mooseError("inRegion() has given an incorrect region");
2328  }
2329  return specific_heat;
2330 }
unsigned int inRegion(Real pressure, Real temperature) const
Determines the phase region that the given pressure and temperature values lie in.
T d2phi3_ddelta2(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt delta.
T d2gamma5_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt tau.
auto raw_value(const Eigen::Map< T > &in)
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
static const std::string temperature
Definition: NS.h:59
const std::array< Real, 5 > _p_star
Pressure scale for each region.
const std::array< Real, 5 > _T_star
Temperature scale for each region.
T dphi3_ddelta(const T &delta, const T &tau) const
Derivative of Helmholtz free energy in Region 3 wrt delta.
T d2gamma1_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt tau.
T d2gamma2_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt tau.
T d2phi3_dtau2(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt tau.
const Real _rho_critical
Critical density (kg/m^3)
T densityRegion3(const T &pressure, const T &temperature) const
Density function for Region 3 - supercritical water and steam.
static const std::string pressure
Definition: NS.h:56
void mooseError(Args &&... args) const
const Real _Rw
Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) ...
static const std::string specific_heat
T d2phi3_ddeltatau(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt delta and tau.
const Real pi

◆ cp_from_v_e()

ADReal Water97FluidProperties::cp_from_v_e ( const ADReal v,
const ADReal e 
) const
overridevirtual

Definition at line 256 of file Water97FluidProperties.C.

257 {
258  const auto [p, T] = p_T_from_v_e(v, e);
259  return cp_from_p_T(p, T);
260 }
std::pair< T, T > p_T_from_v_e(const T &v, const T &e) const
Computes the pressure (first member of the pair) and temperature (second member of the pair) as funct...
virtual Real cp_from_p_T(Real pressure, Real temperature) const override

◆ criticalDensity()

Real Water97FluidProperties::criticalDensity ( ) const
overridevirtual

Critical density.

Returns
critical density (kg/m^3)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 63 of file Water97FluidProperties.C.

64 {
65  return _rho_critical;
66 }
const Real _rho_critical
Critical density (kg/m^3)

◆ criticalInternalEnergy()

Real SinglePhaseFluidProperties::criticalInternalEnergy ( ) const
virtualinherited

Critical specific internal energy.

Returns
specific internal energy (J/kg)

Reimplemented in IdealGasFluidProperties, CaloricallyImperfectGas, and StiffenedGasFluidProperties.

Definition at line 316 of file SinglePhaseFluidProperties.C.

317 {
318  return e_from_p_rho(criticalPressure(), criticalDensity());
319 }
virtual Real criticalDensity() const
Critical density.
virtual Real criticalPressure() const
Critical pressure.

◆ criticalPressure()

Real Water97FluidProperties::criticalPressure ( ) const
overridevirtual

Critical pressure.

Returns
critical pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 51 of file Water97FluidProperties.C.

52 {
53  return _p_critical;
54 }
const Real _p_critical
Critical pressure (Pa)

◆ criticalTemperature()

Real Water97FluidProperties::criticalTemperature ( ) const
overridevirtual

Critical temperature.

Returns
critical temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 57 of file Water97FluidProperties.C.

58 {
59  return _T_critical;
60 }
const Real _T_critical
Critical temperature (K)

◆ cv_from_p_T() [1/2]

Real Water97FluidProperties::cv_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 263 of file Water97FluidProperties.C.

Referenced by cv_from_v_e().

264 {
266 }
static const std::string temperature
Definition: NS.h:59
T cv_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string pressure
Definition: NS.h:56

◆ cv_from_p_T() [2/2]

ADReal Water97FluidProperties::cv_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 269 of file Water97FluidProperties.C.

270 {
272 }
static const std::string temperature
Definition: NS.h:59
T cv_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string pressure
Definition: NS.h:56

◆ cv_from_p_T_template()

template<typename T >
T Water97FluidProperties::cv_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2334 of file Water97FluidProperties.h.

Referenced by cv_from_p_T().

2335 {
2336  T specific_heat, pi, tau, delta;
2337 
2338  // Determine which region the point is in
2339  unsigned int region =
2341  switch (region)
2342  {
2343  case 1:
2344  pi = pressure / _p_star[0];
2345  tau = _T_star[0] / temperature;
2346  specific_heat =
2347  _Rw * (-tau * tau * d2gamma1_dtau2(pi, tau) +
2348  Utility::pow<2>(dgamma1_dpi(pi, tau) - tau * d2gamma1_dpitau(pi, tau)) /
2349  d2gamma1_dpi2(pi, tau));
2350  break;
2351 
2352  case 2:
2353  pi = pressure / _p_star[1];
2354  tau = _T_star[1] / temperature;
2355  specific_heat =
2356  _Rw * (-tau * tau * d2gamma2_dtau2(pi, tau) +
2357  Utility::pow<2>(dgamma2_dpi(pi, tau) - tau * d2gamma2_dpitau(pi, tau)) /
2358  d2gamma2_dpi2(pi, tau));
2359  break;
2360 
2361  case 3:
2362  {
2363  // Calculate density first, then use that in Helmholtz free energy
2364  T density3 = densityRegion3(pressure, temperature);
2365  delta = density3 / _rho_critical;
2366  tau = _T_star[2] / temperature;
2367  specific_heat = _Rw * (-tau * tau * d2phi3_dtau2(delta, tau));
2368  break;
2369  }
2370 
2371  case 5:
2372  pi = pressure / _p_star[4];
2373  tau = _T_star[4] / temperature;
2374  specific_heat =
2375  _Rw * (-tau * tau * d2gamma5_dtau2(pi, tau) +
2376  Utility::pow<2>(dgamma5_dpi(pi, tau) - tau * d2gamma5_dpitau(pi, tau)) /
2377  d2gamma5_dpi2(pi, tau));
2378  break;
2379 
2380  default:
2381  mooseError("inRegion() has given an incorrect region");
2382  }
2383  return specific_heat;
2384 }
unsigned int inRegion(Real pressure, Real temperature) const
Determines the phase region that the given pressure and temperature values lie in.
T d2gamma5_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt pi and tau.
T d2gamma2_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt pi and tau.
T d2gamma5_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt tau.
auto raw_value(const Eigen::Map< T > &in)
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
static const std::string temperature
Definition: NS.h:59
const std::array< Real, 5 > _p_star
Pressure scale for each region.
const std::array< Real, 5 > _T_star
Temperature scale for each region.
T d2gamma1_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt pi and tau.
T d2gamma2_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt pi.
T d2gamma1_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt tau.
T dgamma2_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 2 wrt pi.
T d2gamma2_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt tau.
T dgamma1_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 1 wrt pi.
T dgamma5_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 5 wrt pi.
T d2phi3_dtau2(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt tau.
const Real _rho_critical
Critical density (kg/m^3)
T densityRegion3(const T &pressure, const T &temperature) const
Density function for Region 3 - supercritical water and steam.
static const std::string pressure
Definition: NS.h:56
T d2gamma5_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt pi.
void mooseError(Args &&... args) const
const Real _Rw
Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) ...
static const std::string specific_heat
T d2gamma1_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt pi.
const Real pi

◆ cv_from_v_e()

ADReal Water97FluidProperties::cv_from_v_e ( const ADReal v,
const ADReal e 
) const
overridevirtual

Definition at line 275 of file Water97FluidProperties.C.

276 {
277  const auto [p, T] = p_T_from_v_e(v, e);
278  return cv_from_p_T(p, T);
279 }
std::pair< T, T > p_T_from_v_e(const T &v, const T &e) const
Computes the pressure (first member of the pair) and temperature (second member of the pair) as funct...
virtual Real cv_from_p_T(Real pressure, Real temperature) const override

◆ d2gamma1_dpi2()

template<typename T >
T Water97FluidProperties::d2gamma1_dpi2 ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 1 wrt pi.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt pi (-)

Definition at line 1599 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1600 {
1601  T sum = 0.0;
1602  for (std::size_t i = 0; i < _n1.size(); ++i)
1603  sum += _n1[i] * _I1[i] * (_I1[i] - 1) * MathUtils::pow(7.1 - pi, _I1[i] - 2) *
1604  MathUtils::pow(tau - 1.222, _J1[i]);
1605 
1606  return sum;
1607 }
const std::array< int, 34 > _J1
const std::array< Real, 34 > _n1
Reference constants used in to calculate thermophysical properties of water.
const std::array< int, 34 > _I1
T pow(T x, int e)

◆ d2gamma1_dpitau()

template<typename T >
T Water97FluidProperties::d2gamma1_dpitau ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 1 wrt pi and tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt pi and tau (-)

Definition at line 1635 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1636 {
1637  T dg = 0.0;
1638  for (std::size_t i = 0; i < _n1.size(); ++i)
1639  dg += -_n1[i] * _I1[i] * _J1[i] * MathUtils::pow(7.1 - pi, _I1[i] - 1) *
1640  MathUtils::pow(tau - 1.222, _J1[i] - 1);
1641 
1642  return dg;
1643 }
const std::array< int, 34 > _J1
const std::array< Real, 34 > _n1
Reference constants used in to calculate thermophysical properties of water.
const std::array< int, 34 > _I1
T pow(T x, int e)

◆ d2gamma1_dtau2()

template<typename T >
T Water97FluidProperties::d2gamma1_dtau2 ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 1 wrt tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt tau (-)

Definition at line 1623 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1624 {
1625  T dg = 0.0;
1626  for (std::size_t i = 0; i < _n1.size(); ++i)
1627  dg += _n1[i] * _J1[i] * (_J1[i] - 1) * MathUtils::pow(7.1 - pi, _I1[i]) *
1628  MathUtils::pow(tau - 1.222, _J1[i] - 2);
1629 
1630  return dg;
1631 }
const std::array< int, 34 > _J1
const std::array< Real, 34 > _n1
Reference constants used in to calculate thermophysical properties of water.
const std::array< int, 34 > _I1
T pow(T x, int e)

◆ d2gamma2_dpi2()

template<typename T >
T Water97FluidProperties::d2gamma2_dpi2 ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 2 wrt pi.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt pi (-)

Definition at line 1668 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1669 {
1670  // Ideal gas part of the Gibbs free energy
1671  T dg0 = -1.0 / pi / pi;
1672 
1673  // Residual part of the Gibbs free energy
1674  T dgr = 0.0;
1675  for (std::size_t i = 0; i < _n2.size(); ++i)
1676  dgr += _n2[i] * _I2[i] * (_I2[i] - 1) * MathUtils::pow(pi, _I2[i] - 2) *
1677  MathUtils::pow(tau - 0.5, _J2[i]);
1678 
1679  return dg0 + dgr;
1680 }
const std::array< Real, 43 > _n2
const std::array< int, 43 > _J2
T pow(T x, int e)
const std::array< int, 43 > _I2
const Real pi

◆ d2gamma2_dpitau()

template<typename T >
T Water97FluidProperties::d2gamma2_dpitau ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 2 wrt pi and tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt pi and tau (-)

Definition at line 1719 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1720 {
1721  // Ideal gas part of the Gibbs free energy
1722  T dg0 = 0.0;
1723 
1724  // Residual part of the Gibbs free energy
1725  T dgr = 0.0;
1726  for (std::size_t i = 0; i < _n2.size(); ++i)
1727  dgr += _n2[i] * _I2[i] * _J2[i] * MathUtils::pow(pi, _I2[i] - 1) *
1728  MathUtils::pow(tau - 0.5, _J2[i] - 1);
1729 
1730  return dg0 + dgr;
1731 }
const std::array< Real, 43 > _n2
const std::array< int, 43 > _J2
T pow(T x, int e)
const std::array< int, 43 > _I2

◆ d2gamma2_dtau2()

template<typename T >
T Water97FluidProperties::d2gamma2_dtau2 ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 2 wrt tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt tau (-)

Definition at line 1701 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1702 {
1703  // Ideal gas part of the Gibbs free energy
1704  T dg0 = 0.0;
1705  for (std::size_t i = 0; i < _n02.size(); ++i)
1706  dg0 += _n02[i] * _J02[i] * (_J02[i] - 1) * MathUtils::pow(tau, _J02[i] - 2);
1707 
1708  // Residual part of the Gibbs free energy
1709  T dgr = 0.0;
1710  for (std::size_t i = 0; i < _n2.size(); ++i)
1711  dgr += _n2[i] * _J2[i] * (_J2[i] - 1) * MathUtils::pow(pi, _I2[i]) *
1712  MathUtils::pow(tau - 0.5, _J2[i] - 2);
1713 
1714  return dg0 + dgr;
1715 }
const std::array< Real, 43 > _n2
const std::array< int, 9 > _J02
const std::array< int, 43 > _J2
const std::array< Real, 9 > _n02
Constants for region 2.
T pow(T x, int e)
const std::array< int, 43 > _I2

◆ d2gamma5_dpi2()

template<typename T >
T Water97FluidProperties::d2gamma5_dpi2 ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 5 wrt pi.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt pi (-)

Definition at line 1842 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1843 {
1844  // Ideal gas part of the Gibbs free energy
1845  T dg0 = -1.0 / pi / pi;
1846 
1847  // Residual part of the Gibbs free energy
1848  T dgr = 0.0;
1849  for (std::size_t i = 0; i < _n5.size(); ++i)
1850  dgr += _n5[i] * _I5[i] * (_I5[i] - 1) * MathUtils::pow(pi, _I5[i] - 2) *
1851  MathUtils::pow(tau, _J5[i]);
1852 
1853  return dg0 + dgr;
1854 }
const std::array< int, 6 > _I5
const std::array< int, 6 > _J5
const std::array< Real, 6 > _n5
T pow(T x, int e)
const Real pi

◆ d2gamma5_dpitau()

template<typename T >
T Water97FluidProperties::d2gamma5_dpitau ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 5 wrt pi and tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt pi and tau (-)

Definition at line 1893 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1894 {
1895  // Ideal gas part of the Gibbs free energy
1896  T dg0 = 0.0;
1897 
1898  // Residual part of the Gibbs free energy
1899  T dgr = 0.0;
1900  for (std::size_t i = 0; i < _n5.size(); ++i)
1901  dgr +=
1902  _n5[i] * _I5[i] * _J5[i] * MathUtils::pow(pi, _I5[i] - 1) * MathUtils::pow(tau, _J5[i] - 1);
1903 
1904  return dg0 + dgr;
1905 }
const std::array< int, 6 > _I5
const std::array< int, 6 > _J5
const std::array< Real, 6 > _n5
T pow(T x, int e)

◆ d2gamma5_dtau2()

template<typename T >
T Water97FluidProperties::d2gamma5_dtau2 ( const T pi,
const T tau 
) const
protected

Second derivative of Gibbs free energy in Region 5 wrt tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
second derivative of Gibbs free energy wrt tau (-)

Definition at line 1875 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1876 {
1877  // Ideal gas part of the Gibbs free energy
1878  T dg0 = 0.0;
1879  for (std::size_t i = 0; i < _n05.size(); ++i)
1880  dg0 += _n05[i] * _J05[i] * (_J05[i] - 1) * MathUtils::pow(tau, _J05[i] - 2);
1881 
1882  // Residual part of the Gibbs free energy
1883  T dgr = 0.0;
1884  for (std::size_t i = 0; i < _n5.size(); ++i)
1885  dgr += _n5[i] * _J5[i] * (_J5[i] - 1) * MathUtils::pow(pi, _I5[i]) *
1886  MathUtils::pow(tau, _J5[i] - 2);
1887 
1888  return dg0 + dgr;
1889 }
const std::array< int, 6 > _I5
const std::array< int, 6 > _J5
const std::array< int, 6 > _J05
Constants for region 5.
const std::array< Real, 6 > _n5
const std::array< Real, 6 > _n05
T pow(T x, int e)

◆ d2phi3_ddelta2()

template<typename T >
T Water97FluidProperties::d2phi3_ddelta2 ( const T delta,
const T tau 
) const
protected

Second derivative of Helmholtz free energy in Region 3 wrt delta.

Parameters
deltareduced density (-)
taureduced temperature (-)
Returns
second derivative of Helmholtz free energy wrt delta (-)

Definition at line 1759 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), and e_from_p_T_template().

1760 {
1761  T sum = 0.0;
1762  for (std::size_t i = 1; i < _n3.size(); ++i)
1763  sum += _n3[i] * _I3[i] * (_I3[i] - 1) * MathUtils::pow(delta, _I3[i] - 2) *
1764  MathUtils::pow(tau, _J3[i]);
1765 
1766  return -_n3[0] / delta / delta + sum;
1767 }
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
const std::array< int, 40 > _J3
const std::array< int, 40 > _I3
T pow(T x, int e)
const std::array< Real, 40 > _n3
Constants for region 3.

◆ d2phi3_ddeltatau()

template<typename T >
T Water97FluidProperties::d2phi3_ddeltatau ( const T delta,
const T tau 
) const
protected

Second derivative of Helmholtz free energy in Region 3 wrt delta and tau.

Parameters
deltareduced density (-)
taureduced temperature (-)
Returns
second derivative of Helmholtz free energy wrt delta and tau (-)

Definition at line 1794 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), and e_from_p_T_template().

1795 {
1796  T sum = 0.0;
1797  for (std::size_t i = 1; i < _n3.size(); ++i)
1798  sum += _n3[i] * _I3[i] * _J3[i] * MathUtils::pow(delta, _I3[i] - 1) *
1799  MathUtils::pow(tau, _J3[i] - 1);
1800 
1801  return sum;
1802 }
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
const std::array< int, 40 > _J3
const std::array< int, 40 > _I3
T pow(T x, int e)
const std::array< Real, 40 > _n3
Constants for region 3.

◆ d2phi3_dtau2()

template<typename T >
T Water97FluidProperties::d2phi3_dtau2 ( const T delta,
const T tau 
) const
protected

Second derivative of Helmholtz free energy in Region 3 wrt tau.

Parameters
deltareduced density (-)
taureduced temperature (-)
Returns
second derivative of Helmholtz free energy wrt tau (-)

Definition at line 1782 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), cv_from_p_T_template(), and e_from_p_T_template().

1783 {
1784  T sum = 0.0;
1785  for (std::size_t i = 1; i < _n3.size(); ++i)
1786  sum += _n3[i] * _J3[i] * (_J3[i] - 1) * MathUtils::pow(delta, _I3[i]) *
1787  MathUtils::pow(tau, _J3[i] - 2);
1788 
1789  return sum;
1790 }
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
const std::array< int, 40 > _J3
const std::array< int, 40 > _I3
T pow(T x, int e)
const std::array< Real, 40 > _n3
Constants for region 3.

◆ densityRegion3()

template<typename T >
T Water97FluidProperties::densityRegion3 ( const T pressure,
const T temperature 
) const

Density function for Region 3 - supercritical water and steam.

To avoid iteration, use the backwards equations for region 3 from Revised Supplementary Release on Backward Equations for Specific Volume as a Function of Pressure and Temperature v(p,T) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam.

Parameters
pressurewater pressure (Pa)
temperaturewater temperature (K)
Returns
density (kg/m^3) in region 3

Definition at line 1543 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), cv_from_p_T_template(), e_from_p_T_template(), h_from_p_T_template(), and rho_from_p_T_template().

1544 {
1545  using std::exp;
1546 
1547  // Region 3 is subdivided into 26 subregions, each with a given backwards equation
1548  // to directly calculate density from pressure and temperature without the need for
1549  // expensive iterations. Find the subregion id that the point is in:
1550  unsigned int sid =
1552 
1553  T vstar, pi, theta;
1554  Real a, b, c, d, e;
1555  unsigned int N;
1556 
1557  vstar = _par3[sid][0];
1558  pi = pressure / _par3[sid][1] / 1.0e6;
1559  theta = temperature / _par3[sid][2];
1560  a = _par3[sid][3];
1561  b = _par3[sid][4];
1562  c = _par3[sid][5];
1563  d = _par3[sid][6];
1564  e = _par3[sid][7];
1565  N = _par3N[sid];
1566 
1567  T sum = 0.0;
1568  T volume = 0.0;
1569 
1570  // Note that subregion 13 is the only different formulation
1571  if (sid == 13)
1572  {
1573  for (std::size_t i = 0; i < N; ++i)
1574  sum += _n3s[sid][i] * MathUtils::pow(pi - a, _I3s[sid][i]) *
1575  MathUtils::pow(theta - b, _J3s[sid][i]);
1576 
1577  volume = vstar * exp(sum);
1578  }
1579  else
1580  volume = vstar * subregionVolume(pi, theta, a, b, c, d, e, sid);
1581 
1582  // Density is the inverse of volume
1583  return 1.0 / volume;
1584 }
auto exp(const T &)
const std::array< std::array< Real, 8 >, 26 > _par3
T subregionVolume(const T &pi, const T &theta, Real a, Real b, Real c, Real d, Real e, unsigned int sid) const
Specific volume in all subregions of region 3 EXCEPT subregion n (13).
unsigned int subregion3(Real pressure, Real temperature) const
Provides the correct subregion index for a (P,T) point in region 3.
auto raw_value(const Eigen::Map< T > &in)
const std::vector< std::vector< Real > > _n3s
Constants for all 26 subregions in region 3.
static const std::string temperature
Definition: NS.h:59
const std::vector< std::vector< int > > _I3s
Real volume(const MeshBase &mesh, unsigned int dim=libMesh::invalid_uint)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
int N
static const std::string pressure
Definition: NS.h:56
const std::vector< std::vector< int > > _J3s
T pow(T x, int e)
const std::array< unsigned int, 26 > _par3N
const Real pi

◆ dgamma1_dpi()

template<typename T >
T Water97FluidProperties::dgamma1_dpi ( const T pi,
const T tau 
) const
protected

Derivative of Gibbs free energy in Region 1 wrt pi.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
derivative of Gibbs free energy wrt pi (-)

Definition at line 1516 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), e_from_p_T_template(), and rho_from_p_T_template().

1517 {
1518  T sum = 0.0;
1519  for (std::size_t i = 0; i < _n1.size(); ++i)
1520  sum += -_n1[i] * _I1[i] * MathUtils::pow(7.1 - pi, _I1[i] - 1) *
1521  MathUtils::pow(tau - 1.222, _J1[i]);
1522 
1523  return sum;
1524 }
const std::array< int, 34 > _J1
const std::array< Real, 34 > _n1
Reference constants used in to calculate thermophysical properties of water.
const std::array< int, 34 > _I1
T pow(T x, int e)

◆ dgamma1_dtau()

template<typename T >
T Water97FluidProperties::dgamma1_dtau ( const T pi,
const T tau 
) const
protected

Derivative of Gibbs free energy in Region 1 wrt tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
derivative of Gibbs free energy wrt tau (-)

Definition at line 1611 of file Water97FluidProperties.h.

Referenced by e_from_p_T_template(), and h_from_p_T_template().

1612 {
1613  T g = 0.0;
1614  for (std::size_t i = 0; i < _n1.size(); ++i)
1615  g += _n1[i] * _J1[i] * MathUtils::pow(7.1 - pi, _I1[i]) *
1616  MathUtils::pow(tau - 1.222, _J1[i] - 1);
1617 
1618  return g;
1619 }
const std::array< int, 34 > _J1
const std::array< Real, 34 > _n1
Reference constants used in to calculate thermophysical properties of water.
const std::array< int, 34 > _I1
T pow(T x, int e)

◆ dgamma2_dpi()

template<typename T >
T Water97FluidProperties::dgamma2_dpi ( const T pi,
const T tau 
) const
protected

Derivative of Gibbs free energy in Region 2 wrt pi.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
derivative of Gibbs free energy wrt pi (-)

Definition at line 1528 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), e_from_p_T_template(), and rho_from_p_T_template().

1529 {
1530  // Ideal gas part of the Gibbs free energy
1531  T dg0 = 1.0 / pi;
1532 
1533  // Residual part of the Gibbs free energy
1534  T dgr = 0.0;
1535  for (std::size_t i = 0; i < _n2.size(); ++i)
1536  dgr += _n2[i] * _I2[i] * MathUtils::pow(pi, _I2[i] - 1) * MathUtils::pow(tau - 0.5, _J2[i]);
1537 
1538  return dg0 + dgr;
1539 }
const std::array< Real, 43 > _n2
const std::array< int, 43 > _J2
T pow(T x, int e)
const std::array< int, 43 > _I2
const Real pi

◆ dgamma2_dtau()

template<typename T >
T Water97FluidProperties::dgamma2_dtau ( const T pi,
const T tau 
) const
protected

Derivative of Gibbs free energy in Region 2 wrt tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
derivative of Gibbs free energy wrt tau (-)

Definition at line 1684 of file Water97FluidProperties.h.

Referenced by e_from_p_T_template(), and h_from_p_T_template().

1685 {
1686  // Ideal gas part of the Gibbs free energy
1687  T dg0 = 0.0;
1688  for (std::size_t i = 0; i < _n02.size(); ++i)
1689  dg0 += _n02[i] * _J02[i] * MathUtils::pow(tau, _J02[i] - 1);
1690 
1691  // Residual part of the Gibbs free energy
1692  T dgr = 0.0;
1693  for (std::size_t i = 0; i < _n2.size(); ++i)
1694  dgr += _n2[i] * _J2[i] * MathUtils::pow(pi, _I2[i]) * MathUtils::pow(tau - 0.5, _J2[i] - 1);
1695 
1696  return dg0 + dgr;
1697 }
const std::array< Real, 43 > _n2
const std::array< int, 9 > _J02
const std::array< int, 43 > _J2
const std::array< Real, 9 > _n02
Constants for region 2.
T pow(T x, int e)
const std::array< int, 43 > _I2

◆ dgamma5_dpi()

template<typename T >
T Water97FluidProperties::dgamma5_dpi ( const T pi,
const T tau 
) const
protected

Derivative of Gibbs free energy in Region 5 wrt pi.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
derivative of Gibbs free energy wrt pi (-)

Definition at line 1827 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cv_from_p_T_template(), e_from_p_T_template(), and rho_from_p_T_template().

1828 {
1829  // Ideal gas part of the Gibbs free energy
1830  T dg0 = 1.0 / pi;
1831 
1832  // Residual part of the Gibbs free energy
1833  T dgr = 0.0;
1834  for (std::size_t i = 0; i < _n5.size(); ++i)
1835  dgr += _n5[i] * _I5[i] * MathUtils::pow(pi, _I5[i] - 1) * MathUtils::pow(tau, _J5[i]);
1836 
1837  return dg0 + dgr;
1838 }
const std::array< int, 6 > _I5
const std::array< int, 6 > _J5
const std::array< Real, 6 > _n5
T pow(T x, int e)
const Real pi

◆ dgamma5_dtau()

template<typename T >
T Water97FluidProperties::dgamma5_dtau ( const T pi,
const T tau 
) const
protected

Derivative of Gibbs free energy in Region 5 wrt tau.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
derivative of Gibbs free energy wrt tau (-)

Definition at line 1858 of file Water97FluidProperties.h.

Referenced by e_from_p_T_template(), and h_from_p_T_template().

1859 {
1860  // Ideal gas part of the Gibbs free energy
1861  T dg0 = 0.0;
1862  for (std::size_t i = 0; i < _n05.size(); ++i)
1863  dg0 += _n05[i] * _J05[i] * MathUtils::pow(tau, _J05[i] - 1);
1864 
1865  // Residual part of the Gibbs free energy
1866  T dgr = 0.0;
1867  for (std::size_t i = 0; i < _n5.size(); ++i)
1868  dgr += _n5[i] * _J5[i] * MathUtils::pow(pi, _I5[i]) * MathUtils::pow(tau, _J5[i] - 1);
1869 
1870  return dg0 + dgr;
1871 }
const std::array< int, 6 > _I5
const std::array< int, 6 > _J5
const std::array< int, 6 > _J05
Constants for region 5.
const std::array< Real, 6 > _n5
const std::array< Real, 6 > _n05
T pow(T x, int e)

◆ dphi3_ddelta()

template<typename T >
T Water97FluidProperties::dphi3_ddelta ( const T delta,
const T tau 
) const
protected

Derivative of Helmholtz free energy in Region 3 wrt delta.

Parameters
deltareduced density (-)
taureduced temperature (-)
Returns
derivative of Helmholtz free energy wrt delta (-)

Definition at line 1748 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), e_from_p_T_template(), and h_from_p_T_template().

1749 {
1750  T sum = 0.0;
1751  for (std::size_t i = 1; i < _n3.size(); ++i)
1752  sum += _n3[i] * _I3[i] * MathUtils::pow(delta, _I3[i] - 1) * MathUtils::pow(tau, _J3[i]);
1753 
1754  return _n3[0] / delta + sum;
1755 }
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
const std::array< int, 40 > _J3
const std::array< int, 40 > _I3
T pow(T x, int e)
const std::array< Real, 40 > _n3
Constants for region 3.

◆ dphi3_dtau()

template<typename T >
T Water97FluidProperties::dphi3_dtau ( const T delta,
const T tau 
) const
protected

Derivative of Helmholtz free energy in Region 3 wrt tau.

Parameters
deltareduced density (-)
taureduced temperature (-)
Returns
derivative of Helmholtz free energy wrt tau (-)

Definition at line 1771 of file Water97FluidProperties.h.

Referenced by e_from_p_T_template(), and h_from_p_T_template().

1772 {
1773  T sum = 0.0;
1774  for (std::size_t i = 1; i < _n3.size(); ++i)
1775  sum += _n3[i] * _J3[i] * MathUtils::pow(delta, _I3[i]) * MathUtils::pow(tau, _J3[i] - 1);
1776 
1777  return sum;
1778 }
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
const std::array< int, 40 > _J3
const std::array< int, 40 > _I3
T pow(T x, int e)
const std::array< Real, 40 > _n3
Constants for region 3.

◆ e_from_p_rho() [1/4]

Real Water97FluidProperties::e_from_p_rho ( Real  p,
Real  rho 
) const
overridevirtual

Definition at line 151 of file Water97FluidProperties.C.

Referenced by p_from_v_e_template().

152 {
153  return e_from_p_rho_template(p, rho);
154 }
T e_from_p_rho_template(const T &p, const T &rho) const

◆ e_from_p_rho() [2/4]

ADReal Water97FluidProperties::e_from_p_rho ( const ADReal p,
const ADReal rho 
) const
overridevirtual

Definition at line 157 of file Water97FluidProperties.C.

158 {
159  return e_from_p_rho_template(p, rho);
160 }
T e_from_p_rho_template(const T &p, const T &rho) const

◆ e_from_p_rho() [3/4]

void Water97FluidProperties::e_from_p_rho ( Real  p,
Real  rho,
Real e,
Real de_dp,
Real de_drho 
) const
override

Definition at line 163 of file Water97FluidProperties.C.

165 {
166  e_from_p_rho_template(p, rho, e, de_dp, de_drho);
167 }
T e_from_p_rho_template(const T &p, const T &rho) const

◆ e_from_p_rho() [4/4]

void Water97FluidProperties::e_from_p_rho ( const ADReal p,
const ADReal rho,
ADReal e,
ADReal de_dp,
ADReal de_drho 
) const
override

Definition at line 170 of file Water97FluidProperties.C.

172 {
173  e_from_p_rho_template(p, rho, e, de_dp, de_drho);
174 }
T e_from_p_rho_template(const T &p, const T &rho) const

◆ e_from_p_rho_template() [1/2]

template<typename T >
T Water97FluidProperties::e_from_p_rho_template ( const T p,
const T rho 
) const

Definition at line 2456 of file Water97FluidProperties.h.

Referenced by e_from_p_rho(), and e_from_p_rho_template().

2457 {
2458  const auto temperature = T_drhodT_from_p_rho(p, rho).first;
2460 }
T e_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
std::pair< T, T > T_drhodT_from_p_rho(const T &p, const T &rho) const
Computes the temperature (first member of the pair) and the derivative of density (second member of t...

◆ e_from_p_rho_template() [2/2]

template<typename T >
void Water97FluidProperties::e_from_p_rho_template ( const T p,
const T rho,
T e,
T de_dp,
T de_drho 
) const

Definition at line 2464 of file Water97FluidProperties.h.

2466 {
2467  auto functor = [this](const auto & p, const auto & rho)
2468  { return this->e_from_p_rho_template(p, rho); };
2469 
2470  xyDerivatives(p, rho, e, de_dp, de_drho, functor);
2471 }
static void xyDerivatives(const T x, const T &y, T &z, T &dz_dx, T &dz_dy, const Functor &z_from_x_y)
Computes the dependent variable z and its derivatives with respect to the independent variables x and...
T e_from_p_rho_template(const T &p, const T &rho) const

◆ e_from_p_T() [1/4]

Real Water97FluidProperties::e_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 177 of file Water97FluidProperties.C.

Referenced by e_from_p_T_template(), and e_from_v_h().

178 {
180 }
T e_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ e_from_p_T() [2/4]

ADReal Water97FluidProperties::e_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 183 of file Water97FluidProperties.C.

184 {
186 }
T e_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ e_from_p_T() [3/4]

void Water97FluidProperties::e_from_p_T ( Real  pressure,
Real  temperature,
Real e,
Real de_dp,
Real de_dT 
) const
overridevirtual

Definition at line 189 of file Water97FluidProperties.C.

191 {
192  e_from_p_T_template(pressure, temperature, e, de_dp, de_dT);
193 }
T e_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ e_from_p_T() [4/4]

void Water97FluidProperties::e_from_p_T ( const ADReal pressure,
const ADReal temperature,
ADReal e,
ADReal de_dp,
ADReal de_dT 
) const
overridevirtual

Definition at line 196 of file Water97FluidProperties.C.

201 {
202  e_from_p_T_template(pressure, temperature, e, de_dp, de_dT);
203 }
T e_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ e_from_p_T_template() [1/2]

template<typename T >
T Water97FluidProperties::e_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2046 of file Water97FluidProperties.h.

Referenced by e_from_p_rho_template(), and e_from_p_T().

2047 {
2048  T internal_energy, pi, tau;
2049 
2050  // Determine which region the point is in
2051  unsigned int region =
2053  switch (region)
2054  {
2055  case 1:
2056  pi = pressure / _p_star[0];
2057  tau = _T_star[0] / temperature;
2058  internal_energy =
2059  _Rw * temperature * (tau * dgamma1_dtau(pi, tau) - pi * dgamma1_dpi(pi, tau));
2060  break;
2061 
2062  case 2:
2063  pi = pressure / _p_star[1];
2064  tau = _T_star[1] / temperature;
2065  internal_energy =
2066  _Rw * temperature * (tau * dgamma2_dtau(pi, tau) - pi * dgamma2_dpi(pi, tau));
2067  break;
2068 
2069  case 3:
2070  {
2071  // Calculate density first, then use that in Helmholtz free energy
2072  T density3 = densityRegion3(pressure, temperature);
2073  T delta = density3 / _rho_critical;
2074  tau = _T_star[2] / temperature;
2075  internal_energy = _Rw * temperature * tau * dphi3_dtau(delta, tau);
2076  break;
2077  }
2078 
2079  case 5:
2080  pi = pressure / _p_star[4];
2081  tau = _T_star[4] / temperature;
2082  internal_energy =
2083  _Rw * temperature * (tau * dgamma5_dtau(pi, tau) - pi * dgamma5_dpi(pi, tau));
2084  break;
2085 
2086  default:
2087  mooseError("inRegion() has given an incorrect region");
2088  }
2089  // Output in J/kg
2090  return internal_energy;
2091 }
T dgamma2_dtau(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 2 wrt tau.
T dphi3_dtau(const T &delta, const T &tau) const
Derivative of Helmholtz free energy in Region 3 wrt tau.
unsigned int inRegion(Real pressure, Real temperature) const
Determines the phase region that the given pressure and temperature values lie in.
T dgamma5_dtau(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 5 wrt tau.
auto raw_value(const Eigen::Map< T > &in)
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
static const std::string temperature
Definition: NS.h:59
const std::array< Real, 5 > _p_star
Pressure scale for each region.
const std::array< Real, 5 > _T_star
Temperature scale for each region.
T dgamma2_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 2 wrt pi.
T dgamma1_dtau(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 1 wrt tau.
T dgamma1_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 1 wrt pi.
T dgamma5_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 5 wrt pi.
const Real _rho_critical
Critical density (kg/m^3)
T densityRegion3(const T &pressure, const T &temperature) const
Density function for Region 3 - supercritical water and steam.
static const std::string pressure
Definition: NS.h:56
void mooseError(Args &&... args) const
static const std::string internal_energy
Definition: NS.h:61
const Real _Rw
Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) ...
const Real pi

◆ e_from_p_T_template() [2/2]

template<typename T >
void Water97FluidProperties::e_from_p_T_template ( const T pressure,
const T temperature,
T e,
T de_dp,
T de_dT 
) const

Definition at line 2095 of file Water97FluidProperties.h.

2097 {
2098  T pi, tau, dinternal_energy_dp, dinternal_energy_dT;
2099 
2100  // Determine which region the point is in
2101  unsigned int region =
2103  switch (region)
2104  {
2105  case 1:
2106  {
2107  pi = pressure / _p_star[0];
2108  tau = _T_star[0] / temperature;
2109  T dgdp = dgamma1_dpi(pi, tau);
2110  T d2gdpt = d2gamma1_dpitau(pi, tau);
2111  dinternal_energy_dp =
2112  _Rw * temperature * (tau * d2gdpt - dgdp - pi * d2gamma1_dpi2(pi, tau)) / _p_star[0];
2113  dinternal_energy_dT =
2114  _Rw * (pi * tau * d2gdpt - tau * tau * d2gamma1_dtau2(pi, tau) - pi * dgdp);
2115  break;
2116  }
2117 
2118  case 2:
2119  {
2120  pi = pressure / _p_star[1];
2121  tau = _T_star[1] / temperature;
2122  T dgdp = dgamma2_dpi(pi, tau);
2123  T d2gdpt = d2gamma2_dpitau(pi, tau);
2124  dinternal_energy_dp =
2125  _Rw * temperature * (tau * d2gdpt - dgdp - pi * d2gamma2_dpi2(pi, tau)) / _p_star[1];
2126  dinternal_energy_dT =
2127  _Rw * (pi * tau * d2gdpt - tau * tau * d2gamma2_dtau2(pi, tau) - pi * dgdp);
2128  break;
2129  }
2130 
2131  case 3:
2132  {
2133  // Calculate density first, then use that in Helmholtz free energy
2134  T density3 = densityRegion3(pressure, temperature);
2135  T delta = density3 / _rho_critical;
2136  tau = _T_star[2] / temperature;
2137  T dpdd = dphi3_ddelta(delta, tau);
2138  T d2pddt = d2phi3_ddeltatau(delta, tau);
2139  T d2pdd2 = d2phi3_ddelta2(delta, tau);
2140  dinternal_energy_dp =
2141  _T_star[2] * d2pddt / _rho_critical /
2142  (2.0 * temperature * delta * dpdd + temperature * delta * delta * d2pdd2);
2143  dinternal_energy_dT =
2144  -_Rw * (delta * tau * d2pddt * (dpdd - tau * d2pddt) / (2.0 * dpdd + delta * d2pdd2) +
2145  tau * tau * d2phi3_dtau2(delta, tau));
2146  break;
2147  }
2148 
2149  case 5:
2150  {
2151  pi = pressure / _p_star[4];
2152  tau = _T_star[4] / temperature;
2153  T dgdp = dgamma5_dpi(pi, tau);
2154  T d2gdpt = d2gamma5_dpitau(pi, tau);
2155  dinternal_energy_dp =
2156  _Rw * temperature * (tau * d2gdpt - dgdp - pi * d2gamma5_dpi2(pi, tau)) / _p_star[4];
2157  dinternal_energy_dT =
2158  _Rw * (pi * tau * d2gdpt - tau * tau * d2gamma5_dtau2(pi, tau) - pi * dgdp);
2159  break;
2160  }
2161 
2162  default:
2163  mooseError("inRegion has given an incorrect region");
2164  }
2165 
2166  e = this->e_from_p_T(pressure, temperature);
2167  de_dp = dinternal_energy_dp;
2168  de_dT = dinternal_energy_dT;
2169 }
unsigned int inRegion(Real pressure, Real temperature) const
Determines the phase region that the given pressure and temperature values lie in.
T d2phi3_ddelta2(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt delta.
virtual Real e_from_p_T(Real pressure, Real temperature) const override
T d2gamma5_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt pi and tau.
T d2gamma2_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt pi and tau.
T d2gamma5_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt tau.
auto raw_value(const Eigen::Map< T > &in)
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
static const std::string temperature
Definition: NS.h:59
const std::array< Real, 5 > _p_star
Pressure scale for each region.
const std::array< Real, 5 > _T_star
Temperature scale for each region.
T d2gamma1_dpitau(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt pi and tau.
T dphi3_ddelta(const T &delta, const T &tau) const
Derivative of Helmholtz free energy in Region 3 wrt delta.
T d2gamma2_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt pi.
T d2gamma1_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt tau.
T dgamma2_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 2 wrt pi.
T d2gamma2_dtau2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 2 wrt tau.
T dgamma1_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 1 wrt pi.
T dgamma5_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 5 wrt pi.
T d2phi3_dtau2(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt tau.
const Real _rho_critical
Critical density (kg/m^3)
T densityRegion3(const T &pressure, const T &temperature) const
Density function for Region 3 - supercritical water and steam.
static const std::string pressure
Definition: NS.h:56
T d2gamma5_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 5 wrt pi.
void mooseError(Args &&... args) const
const Real _Rw
Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) ...
T d2gamma1_dpi2(const T &pi, const T &tau) const
Second derivative of Gibbs free energy in Region 1 wrt pi.
T d2phi3_ddeltatau(const T &delta, const T &tau) const
Second derivative of Helmholtz free energy in Region 3 wrt delta and tau.
const Real pi

◆ e_from_v_h()

ADReal Water97FluidProperties::e_from_v_h ( const ADReal v,
const ADReal h 
) const
override

Definition at line 206 of file Water97FluidProperties.C.

207 {
208  const auto [p, T] = p_T_from_v_h(v, h);
209  return e_from_p_T(p, T);
210 }
virtual Real e_from_p_T(Real pressure, Real temperature) const override
std::pair< T, T > p_T_from_v_h(const T &v, const T &h) const
Computes the pressure (first member of the pair) and temperature (second member of the pair) as funct...
e e e e s T T T T T rho v v T e h

◆ e_spndl_from_v()

Real SinglePhaseFluidProperties::e_spndl_from_v ( Real  v) const
virtualinherited

Specific internal energy from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume

Reimplemented in IdealGasFluidProperties, CaloricallyImperfectGas, and StiffenedGasFluidProperties.

Definition at line 479 of file SinglePhaseFluidProperties.C.

480 {
481  mooseError(__PRETTY_FUNCTION__, " not implemented.");
482 }
void mooseError(Args &&... args) const

◆ execute()

virtual void FluidProperties::execute ( )
inlinefinalvirtualinherited

Implements ThreadedGeneralUserObject.

Definition at line 33 of file FluidProperties.h.

33 {}

◆ finalize()

virtual void FluidProperties::finalize ( )
inlinefinalvirtualinherited

Implements ThreadedGeneralUserObject.

Definition at line 35 of file FluidProperties.h.

35 {}

◆ fluidName()

std::string Water97FluidProperties::fluidName ( ) const
overridevirtual

Fluid name.

Returns
string representing fluid name

Reimplemented from SinglePhaseFluidProperties.

Definition at line 39 of file Water97FluidProperties.C.

40 {
41  return "water";
42 }

◆ gamma1()

template<typename T >
T Water97FluidProperties::gamma1 ( const T pi,
const T tau 
) const
protected

Gibbs free energy in Region 1 - single phase liquid region.

From Eq. (7) From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam, IAPWS 2007.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
Gibbs free energy (-)

Definition at line 1588 of file Water97FluidProperties.h.

1589 {
1590  T sum = 0.0;
1591  for (std::size_t i = 0; i < _n1.size(); ++i)
1592  sum += _n1[i] * MathUtils::pow(7.1 - pi, _I1[i]) * MathUtils::pow(tau - 1.222, _J1[i]);
1593 
1594  return sum;
1595 }
const std::array< int, 34 > _J1
const std::array< Real, 34 > _n1
Reference constants used in to calculate thermophysical properties of water.
const std::array< int, 34 > _I1
T pow(T x, int e)

◆ gamma2()

template<typename T >
T Water97FluidProperties::gamma2 ( const T pi,
const T tau 
) const
protected

Gibbs free energy in Region 2 - superheated steam.

From Eq. (15) From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam, IAPWS 2007.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
Gibbs free energy (-)

Definition at line 1647 of file Water97FluidProperties.h.

1648 {
1649  using std::log;
1650 
1651  // Ideal gas part of the Gibbs free energy
1652  T sum0 = 0.0;
1653  for (std::size_t i = 0; i < _n02.size(); ++i)
1654  sum0 += _n02[i] * MathUtils::pow(tau, _J02[i]);
1655 
1656  T g0 = log(pi) + sum0;
1657 
1658  // Residual part of the Gibbs free energy
1659  T gr = 0.0;
1660  for (std::size_t i = 0; i < _n2.size(); ++i)
1661  gr += _n2[i] * MathUtils::pow(pi, _I2[i]) * MathUtils::pow(tau - 0.5, _J2[i]);
1662 
1663  return g0 + gr;
1664 }
const std::array< Real, 43 > _n2
const std::array< int, 9 > _J02
const std::array< int, 43 > _J2
auto log(const T &)
const std::array< Real, 9 > _n02
Constants for region 2.
T pow(T x, int e)
const std::array< int, 43 > _I2

◆ gamma5()

template<typename T >
T Water97FluidProperties::gamma5 ( const T pi,
const T tau 
) const
protected

Gibbs free energy in Region 5.

From Eq. (32) From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam, IAPWS 2007.

Parameters
pireduced pressure (-)
taureduced temperature (-)
Returns
Gibbs free energy (-)

Definition at line 1806 of file Water97FluidProperties.h.

1807 {
1808  using std::log;
1809 
1810  // Ideal gas part of the Gibbs free energy
1811  T sum0 = 0.0;
1812  for (std::size_t i = 0; i < _n05.size(); ++i)
1813  sum0 += _n05[i] * MathUtils::pow(tau, _J05[i]);
1814 
1815  T g0 = log(pi) + sum0;
1816 
1817  // Residual part of the Gibbs free energy
1818  T gr = 0.0;
1819  for (std::size_t i = 0; i < _n5.size(); ++i)
1820  gr += _n5[i] * MathUtils::pow(pi, _I5[i]) * MathUtils::pow(tau, _J5[i]);
1821 
1822  return g0 + gr;
1823 }
const std::array< int, 6 > _I5
const std::array< int, 6 > _J5
const std::array< int, 6 > _J05
Constants for region 5.
auto log(const T &)
const std::array< Real, 6 > _n5
const std::array< Real, 6 > _n05
T pow(T x, int e)

◆ h_from_p_T() [1/4]

Real Water97FluidProperties::h_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 492 of file Water97FluidProperties.C.

Referenced by inRegionPH().

493 {
495 }
T h_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ h_from_p_T() [2/4]

ADReal Water97FluidProperties::h_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 498 of file Water97FluidProperties.C.

499 {
501 }
T h_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ h_from_p_T() [3/4]

void Water97FluidProperties::h_from_p_T ( Real  pressure,
Real  temperature,
Real h,
Real dh_dp,
Real dh_dT 
) const
overridevirtual

Definition at line 504 of file Water97FluidProperties.C.

506 {
507  h_from_p_T_template(pressure, temperature, h, dh_dp, dh_dT);
508 }
T h_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
e e e e s T T T T T rho v v T e h
static const std::string pressure
Definition: NS.h:56

◆ h_from_p_T() [4/4]

void Water97FluidProperties::h_from_p_T ( const ADReal pressure,
const ADReal temperature,
ADReal h,
ADReal dh_dp,
ADReal dh_dT 
) const
overridevirtual

Definition at line 511 of file Water97FluidProperties.C.

516 {
517  h_from_p_T_template(pressure, temperature, h, dh_dp, dh_dT);
518 }
T h_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
e e e e s T T T T T rho v v T e h
static const std::string pressure
Definition: NS.h:56

◆ h_from_p_T_template() [1/2]

template<typename T >
T Water97FluidProperties::h_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2518 of file Water97FluidProperties.h.

Referenced by h_from_p_T(), and h_from_p_T_template().

2519 {
2520  T enthalpy, pi, tau, delta;
2521 
2522  // Determine which region the point is in
2523  unsigned int region =
2525  switch (region)
2526  {
2527  case 1:
2528  pi = pressure / _p_star[0];
2529  tau = _T_star[0] / temperature;
2530  enthalpy = _Rw * _T_star[0] * dgamma1_dtau(pi, tau);
2531  break;
2532 
2533  case 2:
2534  pi = pressure / _p_star[1];
2535  tau = _T_star[1] / temperature;
2536  enthalpy = _Rw * _T_star[1] * dgamma2_dtau(pi, tau);
2537  break;
2538 
2539  case 3:
2540  {
2541  // Calculate density first, then use that in Helmholtz free energy
2542  T density3 = densityRegion3(pressure, temperature);
2543  delta = density3 / _rho_critical;
2544  tau = _T_star[2] / temperature;
2545  enthalpy =
2546  _Rw * temperature * (tau * dphi3_dtau(delta, tau) + delta * dphi3_ddelta(delta, tau));
2547  break;
2548  }
2549 
2550  case 5:
2551  pi = pressure / _p_star[4];
2552  tau = _T_star[4] / temperature;
2553  enthalpy = _Rw * _T_star[4] * dgamma5_dtau(pi, tau);
2554  break;
2555 
2556  default:
2557  mooseError("Water97FluidProperties::inRegion has given an incorrect region");
2558  }
2559  return enthalpy;
2560 }
T dgamma2_dtau(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 2 wrt tau.
T dphi3_dtau(const T &delta, const T &tau) const
Derivative of Helmholtz free energy in Region 3 wrt tau.
unsigned int inRegion(Real pressure, Real temperature) const
Determines the phase region that the given pressure and temperature values lie in.
T dgamma5_dtau(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 5 wrt tau.
auto raw_value(const Eigen::Map< T > &in)
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
static const std::string temperature
Definition: NS.h:59
const std::array< Real, 5 > _p_star
Pressure scale for each region.
const std::array< Real, 5 > _T_star
Temperature scale for each region.
T dphi3_ddelta(const T &delta, const T &tau) const
Derivative of Helmholtz free energy in Region 3 wrt delta.
T dgamma1_dtau(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 1 wrt tau.
const Real _rho_critical
Critical density (kg/m^3)
T densityRegion3(const T &pressure, const T &temperature) const
Density function for Region 3 - supercritical water and steam.
static const std::string pressure
Definition: NS.h:56
void mooseError(Args &&... args) const
const Real _Rw
Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) ...
const Real pi

◆ h_from_p_T_template() [2/2]

template<typename T >
void Water97FluidProperties::h_from_p_T_template ( const T pressure,
const T temperature,
T h,
T dh_dp,
T dh_dT 
) const

Definition at line 2564 of file Water97FluidProperties.h.

2566 {
2567  auto functor = [this](const auto & pressure, const auto & temperature)
2568  { return this->h_from_p_T_template(pressure, temperature); };
2569 
2570  xyDerivatives(pressure, temperature, h, dh_dp, dh_dT, functor);
2571 }
T h_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static void xyDerivatives(const T x, const T &y, T &z, T &dz_dx, T &dz_dy, const Functor &z_from_x_y)
Computes the dependent variable z and its derivatives with respect to the independent variables x and...
e e e e s T T T T T rho v v T e h
static const std::string pressure
Definition: NS.h:56

◆ henryCoefficients()

std::vector< Real > SinglePhaseFluidProperties::henryCoefficients ( ) const
virtualinherited

Henry's law coefficients for dissolution in water.

Returns
Henry's constant coefficients

Reimplemented in CO2FluidProperties, TabulatedFluidProperties, HydrogenFluidProperties, NitrogenFluidProperties, and MethaneFluidProperties.

Definition at line 374 of file SinglePhaseFluidProperties.C.

Referenced by TabulatedFluidProperties::henryCoefficients().

375 {
376  mooseError(__PRETTY_FUNCTION__, " not implemented.");
377 }
void mooseError(Args &&... args) const

◆ henryConstant() [1/3]

Real Water97FluidProperties::henryConstant ( Real  temperature,
const std::vector< Real > &  coeffs 
) const

IAPWS formulation of Henry's law constant for dissolution in water From Guidelines on the Henry's constant and vapour liquid distribution constant for gases in H20 and D20 at high temperatures, IAPWS (2004)

Parameters
Tfluid temperature (K)
coeffsHenry's constant coefficients of gas
[out]KhHenry's constant
[out]dKh_dTderivative of Kh wrt temperature

Definition at line 918 of file Water97FluidProperties.C.

Referenced by PorousFlowWaterNCG::enthalpyOfDissolution(), PorousFlowWaterNCG::equilibriumMassFractions(), BrineFluidProperties::henryConstant(), and henryConstant().

919 {
920  const Real A = coeffs[0];
921  const Real B = coeffs[1];
922  const Real C = coeffs[2];
923 
924  const Real Tr = temperature / 647.096;
925  const Real tau = 1.0 - Tr;
926 
927  const Real lnkh =
928  A / Tr + B * std::pow(tau, 0.355) / Tr + C * std::pow(Tr, -0.41) * std::exp(tau);
929 
930  // The vapor pressure used in this formulation
931  const std::vector<Real> a{
932  -7.85951783, 1.84408259, -11.7866497, 22.6807411, -15.9618719, 1.80122502};
933  const std::vector<Real> b{1.0, 1.5, 3.0, 3.5, 4.0, 7.5};
934  Real sum = 0.0;
935 
936  for (std::size_t i = 0; i < a.size(); ++i)
937  sum += a[i] * std::pow(tau, b[i]);
938 
939  return 22.064e6 * std::exp(sum / Tr) * std::exp(lnkh);
940 }
static const std::string temperature
Definition: NS.h:59
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MooseUnits pow(const MooseUnits &, int)
static const std::string C
Definition: NS.h:168

◆ henryConstant() [2/3]

void Water97FluidProperties::henryConstant ( Real  temperature,
const std::vector< Real > &  coeffs,
Real Kh,
Real dKh_dT 
) const

Definition at line 943 of file Water97FluidProperties.C.

947 {
948  const Real A = coeffs[0];
949  const Real B = coeffs[1];
950  const Real C = coeffs[2];
951 
952  const Real pc = 22.064e6;
953  const Real Tc = 647.096;
954 
955  const Real Tr = temperature / Tc;
956  const Real tau = 1.0 - Tr;
957 
958  const Real lnkh =
959  A / Tr + B * std::pow(tau, 0.355) / Tr + C * std::pow(Tr, -0.41) * std::exp(tau);
960  const Real dlnkh_dT =
961  (-A / Tr / Tr - B * std::pow(tau, 0.355) / Tr / Tr - 0.355 * B * std::pow(tau, -0.645) / Tr -
962  0.41 * C * std::pow(Tr, -1.41) * std::exp(tau) - C * std::pow(Tr, -0.41) * std::exp(tau)) /
963  Tc;
964 
965  // The vapor pressure used in this formulation
966  const std::vector<Real> a{
967  -7.85951783, 1.84408259, -11.7866497, 22.6807411, -15.9618719, 1.80122502};
968  const std::vector<Real> b{1.0, 1.5, 3.0, 3.5, 4.0, 7.5};
969  Real sum = 0.0;
970  Real dsum = 0.0;
971 
972  for (std::size_t i = 0; i < a.size(); ++i)
973  {
974  sum += a[i] * std::pow(tau, b[i]);
975  dsum += a[i] * b[i] * std::pow(tau, b[i] - 1.0);
976  }
977 
978  const Real p = pc * std::exp(sum / Tr);
979  const Real dp_dT = -p / Tc / Tr * (sum / Tr + dsum);
980 
981  // Henry's constant and its derivative wrt temperature
982  Kh = p * std::exp(lnkh);
983  dKh_dT = (p * dlnkh_dT + dp_dT) * std::exp(lnkh);
984 }
static const std::string temperature
Definition: NS.h:59
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MooseUnits pow(const MooseUnits &, int)
static const std::string C
Definition: NS.h:168

◆ henryConstant() [3/3]

ADReal Water97FluidProperties::henryConstant ( const ADReal temperature,
const std::vector< Real > &  coeffs 
) const

Definition at line 987 of file Water97FluidProperties.C.

989 {
990  const Real T = temperature.value();
991  Real Kh_real = 0.0;
992  Real dKh_dT_real = 0.0;
993  henryConstant(T, coeffs, Kh_real, dKh_dT_real);
994 
995  ADReal Kh = Kh_real;
996  Kh.derivatives() = temperature.derivatives() * dKh_dT_real;
997 
998  return Kh;
999 }
static const std::string temperature
Definition: NS.h:59
DualNumber< Real, DNDerivativeType, true > ADReal
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real henryConstant(Real temperature, const std::vector< Real > &coeffs) const
IAPWS formulation of Henry&#39;s law constant for dissolution in water From Guidelines on the Henry&#39;s con...

◆ initialize()

virtual void FluidProperties::initialize ( )
inlinefinalvirtualinherited

Implements ThreadedGeneralUserObject.

Definition at line 34 of file FluidProperties.h.

34 {}

◆ inRegion()

unsigned int Water97FluidProperties::inRegion ( Real  pressure,
Real  temperature 
) const

Determines the phase region that the given pressure and temperature values lie in.

Parameters
pressurewater pressure (Pa)
temperaturewater temperature (K)
Returns
region phase region index

Definition at line 1191 of file Water97FluidProperties.C.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), cv_from_p_T_template(), e_from_p_T_template(), h_from_p_T_template(), and rho_from_p_T_template().

1192 {
1193  // Valid for 273.15 K <= T <= 1073.15 K, p <= 100 MPa
1194  // 1073.15 K <= T <= 2273.15 K, p <= 50 Mpa
1195  if (temperature >= 273.15 && temperature <= 1073.15)
1196  {
1197  if (pressure < vaporPressure(273.15) || pressure > 100.0e6)
1198  mooseException("Pressure ", pressure, " is out of range in ", name(), ": inRegion()");
1199  }
1200  else if (temperature > 1073.15 && temperature <= 2273.15)
1201  {
1202  if (pressure < 0.0 || pressure > 50.0e6)
1203  mooseException("Pressure ", pressure, " is out of range in ", name(), ": inRegion()");
1204  }
1205  else
1206  mooseException("Temperature ", temperature, " is out of range in ", name(), ": inRegion()");
1207 
1208  // Determine the phase region that the (P, T) point lies in
1209  unsigned int region;
1210 
1211  if (temperature >= 273.15 && temperature <= 623.15)
1212  {
1213  if (pressure > vaporPressure(temperature) && pressure <= 100.0e6)
1214  region = 1;
1215  else
1216  region = 2;
1217  }
1218  else if (temperature > 623.15 && temperature <= 863.15)
1219  {
1220  if (pressure <= b23p(temperature))
1221  region = 2;
1222  else
1223  region = 3;
1224  }
1225  else if (temperature > 863.15 && temperature <= 1073.15)
1226  region = 2;
1227  else
1228  region = 5;
1229 
1230  return region;
1231 }
static const std::string temperature
Definition: NS.h:59
const std::string & name() const
Real b23p(Real temperature) const
Auxillary equation for the boundary between regions 2 and 3.
static const std::string pressure
Definition: NS.h:56
virtual Real vaporPressure(Real temperature) const override
Vapor pressure.

◆ inRegionPH()

unsigned int Water97FluidProperties::inRegionPH ( Real  pressure,
Real  enthalpy 
) const
protected

Determines the phase region that the given pressure and enthaply values lie in.

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
region phase region index

Definition at line 611 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

612 {
613  unsigned int region;
614 
615  // Need to calculate enthalpies at the boundaries to delineate regions
616  Real p273 = vaporPressure(273.15);
617  Real p623 = vaporPressure(623.15);
618 
619  if (pressure >= p273 && pressure <= p623)
620  {
621  if (enthalpy >= h_from_p_T(pressure, 273.15) &&
623  region = 1;
624  else if (enthalpy > h_from_p_T(pressure, vaporTemperature(pressure)) &&
625  enthalpy <= h_from_p_T(pressure, 1073.15))
626  region = 2;
627  else if (enthalpy > h_from_p_T(pressure, 1073.15) && enthalpy <= h_from_p_T(pressure, 2273.15))
628  region = 5;
629  else
630  mooseException("Enthalpy ", enthalpy, " is out of range in ", name(), ": inRegionPH()");
631  }
632  else if (pressure > p623 && pressure <= 50.0e6)
633  {
634  if (enthalpy >= h_from_p_T(pressure, 273.15) && enthalpy <= h_from_p_T(pressure, 623.15))
635  region = 1;
636  else if (enthalpy > h_from_p_T(pressure, 623.15) &&
637  enthalpy <= h_from_p_T(pressure, b23T(pressure)))
638  region = 3;
639  else if (enthalpy > h_from_p_T(pressure, b23T(pressure)) &&
640  enthalpy <= h_from_p_T(pressure, 1073.15))
641  region = 2;
642  else if (enthalpy > h_from_p_T(pressure, 1073.15) && enthalpy <= h_from_p_T(pressure, 2273.15))
643  region = 5;
644  else
645  mooseException("Enthalpy ", enthalpy, " is out of range in ", name(), ": inRegionPH()");
646  }
647  else if (pressure > 50.0e6 && pressure <= 100.0e6)
648  {
649  if (enthalpy >= h_from_p_T(pressure, 273.15) && enthalpy <= h_from_p_T(pressure, 623.15))
650  region = 1;
651  else if (enthalpy > h_from_p_T(pressure, 623.15) &&
652  enthalpy <= h_from_p_T(pressure, b23T(pressure)))
653  region = 3;
654  else if (enthalpy > h_from_p_T(pressure, b23T(pressure)) &&
655  enthalpy <= h_from_p_T(pressure, 1073.15))
656  region = 2;
657  else
658  mooseException("Enthalpy ", enthalpy, " is out of range in ", name(), ": inRegionPH()");
659  }
660  else
661  mooseException("Pressure ", pressure, " is out of range in ", name(), ": inRegionPH()");
662 
663  return region;
664 }
Real vaporTemperature(Real pressure) const override
Saturation temperature as a function of pressure.
Real b23T(Real pressure) const
Auxillary equation for the boundary between regions 2 and 3.
virtual Real h_from_p_T(Real pressure, Real temperature) const override
const std::string & name() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
virtual Real vaporPressure(Real temperature) const override
Vapor pressure.

◆ k_from_p_T() [1/3]

Real Water97FluidProperties::k_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 395 of file Water97FluidProperties.C.

396 {
398 }
T k_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ k_from_p_T() [2/3]

ADReal Water97FluidProperties::k_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 401 of file Water97FluidProperties.C.

402 {
404 }
T k_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ k_from_p_T() [3/3]

void Water97FluidProperties::k_from_p_T ( Real  pressure,
Real  temperature,
Real k,
Real dk_dp,
Real dk_dT 
) const
overridevirtual

Definition at line 407 of file Water97FluidProperties.C.

408 {
409  mooseError("k_from_p_T() is not implemented.");
410 }
void mooseError(Args &&... args) const

◆ k_from_p_T_template()

template<typename T >
T Water97FluidProperties::k_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2424 of file Water97FluidProperties.h.

Referenced by k_from_p_T(), and k_from_v_e_template().

2425 {
2427  return this->k_from_rho_T_template(rho, temperature);
2428 }
static const std::string temperature
Definition: NS.h:59
T k_from_rho_T_template(const T &density, const T &temperature) const
static const std::string pressure
Definition: NS.h:56
virtual Real rho_from_p_T(Real pressure, Real temperature) const override

◆ k_from_rho_T()

Real Water97FluidProperties::k_from_rho_T ( Real  density,
Real  temperature 
) const
overridevirtual

Definition at line 413 of file Water97FluidProperties.C.

414 {
416 }
static const std::string density
Definition: NS.h:33
static const std::string temperature
Definition: NS.h:59
T k_from_rho_T_template(const T &density, const T &temperature) const

◆ k_from_rho_T_template()

template<typename T >
T Water97FluidProperties::k_from_rho_T_template ( const T density,
const T temperature 
) const

Definition at line 2388 of file Water97FluidProperties.h.

Referenced by k_from_p_T_template(), and k_from_rho_T().

2389 {
2390  using std::sqrt, std::exp, std::abs, std::pow;
2391  // Scale the density and temperature. Note that the scales are slightly
2392  // different to the critical values used in IAPWS-IF97
2393  T Tbar = temperature / 647.26;
2394  T rhobar = density / 317.7;
2395 
2396  // Ideal gas component
2397  T sum0 = 0.0;
2398 
2399  for (std::size_t i = 0; i < _k_a.size(); ++i)
2400  sum0 += _k_a[i] * MathUtils::pow(Tbar, i);
2401 
2402  T lambda0 = sqrt(Tbar) * sum0;
2403 
2404  // The contribution due to finite density
2405  T lambda1 =
2406  -0.39707 + 0.400302 * rhobar + 1.06 * exp(-0.171587 * Utility::pow<2>(rhobar + 2.392190));
2407 
2408  // Critical enhancement
2409  T DeltaT = abs(Tbar - 1.0) + 0.00308976;
2410  T Q = 2.0 + 0.0822994 / pow(DeltaT, 0.6);
2411  T S = (Tbar >= 1.0 ? 1.0 / DeltaT : 10.0932 / pow(DeltaT, 0.6));
2412 
2413  T lambda2 =
2414  (0.0701309 / Utility::pow<10>(Tbar) + 0.011852) * pow(rhobar, 1.8) *
2415  exp(0.642857 * (1.0 - pow(rhobar, 2.8))) +
2416  0.00169937 * S * pow(rhobar, Q) * exp((Q / (1.0 + Q)) * (1.0 - pow(rhobar, 1.0 + Q))) -
2417  1.02 * exp(-4.11717 * pow(Tbar, 1.5) - 6.17937 / Utility::pow<5>(rhobar));
2418 
2419  return lambda0 + lambda1 + lambda2;
2420 }
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
auto exp(const T &)
static const std::string density
Definition: NS.h:33
static const std::string temperature
Definition: NS.h:59
static const std::string S
Definition: NS.h:163
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
T pow(T x, int e)
MooseUnits pow(const MooseUnits &, int)
std::array< Real, 4 > _k_a
Constants for thermal conductivity.

◆ k_from_v_e() [1/2]

Real Water97FluidProperties::k_from_v_e ( Real  v,
Real  e 
) const
override

Definition at line 419 of file Water97FluidProperties.C.

420 {
421  return k_from_v_e_template(v, e);
422 }
T k_from_v_e_template(const T &v, const T &e) const

◆ k_from_v_e() [2/2]

ADReal Water97FluidProperties::k_from_v_e ( const ADReal v,
const ADReal e 
) const
override

Definition at line 425 of file Water97FluidProperties.C.

426 {
427  return k_from_v_e_template(v, e);
428 }
T k_from_v_e_template(const T &v, const T &e) const

◆ k_from_v_e_template()

template<typename T >
T Water97FluidProperties::k_from_v_e_template ( const T v,
const T e 
) const

Definition at line 2432 of file Water97FluidProperties.h.

Referenced by k_from_v_e().

2433 {
2434  const auto [p, temperature] = p_T_from_v_e(v, e);
2436 }
T k_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
std::pair< T, T > p_T_from_v_e(const T &v, const T &e) const
Computes the pressure (first member of the pair) and temperature (second member of the pair) as funct...

◆ makeZeroAndOne() [1/2]

template<typename T >
std::pair< T, T > SinglePhaseFluidProperties::makeZeroAndOne ( const T )
staticprotectedinherited

Given a type example, this method returns zero and unity representations of that type (first and second members of returned pair respectively)

Definition at line 476 of file SinglePhaseFluidProperties.h.

Referenced by SinglePhaseFluidProperties::xyDerivatives().

477 {
478  return {T{0, 0}, T{1, 0}};
479 }

◆ makeZeroAndOne() [2/2]

template<>
std::pair<Real, Real> SinglePhaseFluidProperties::makeZeroAndOne ( const Real )
inlineinherited

Definition at line 483 of file SinglePhaseFluidProperties.h.

484 {
485  return {Real{0}, Real{1}};
486 }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ molarMass()

Real Water97FluidProperties::molarMass ( ) const
overridevirtual

Molar mass [kg/mol].

Returns
molar mass

Reimplemented from SinglePhaseFluidProperties.

Definition at line 45 of file Water97FluidProperties.C.

46 {
47  return _Mh2o;
48 }
const Real _Mh2o
Water molar mass (kg/mol)

◆ mu_from_p_T() [1/3]

Real Water97FluidProperties::mu_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 282 of file Water97FluidProperties.C.

283 {
285 }
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56
T mu_from_p_T_template(const T &pressure, const T &temperature) const

◆ mu_from_p_T() [2/3]

ADReal Water97FluidProperties::mu_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 288 of file Water97FluidProperties.C.

289 {
291 }
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56
T mu_from_p_T_template(const T &pressure, const T &temperature) const

◆ mu_from_p_T() [3/3]

void Water97FluidProperties::mu_from_p_T ( Real  pressure,
Real  temperature,
Real mu,
Real dmu_dp,
Real dmu_dT 
) const
overridevirtual

Definition at line 294 of file Water97FluidProperties.C.

296 {
297  Real rho, drho_dp, drho_dT;
298  this->rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
299  Real dmu_drho;
300  this->mu_from_rho_T(rho, temperature, drho_dT, mu, dmu_drho, dmu_dT);
301  dmu_dp = dmu_drho * drho_dp;
302 }
static const std::string temperature
Definition: NS.h:59
static const std::string mu
Definition: NS.h:123
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
virtual Real mu_from_rho_T(Real density, Real temperature) const override

◆ mu_from_p_T_template()

template<typename T >
T Water97FluidProperties::mu_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2615 of file Water97FluidProperties.h.

Referenced by mu_from_p_T().

2616 {
2618  return this->mu_from_rho_T_template(rho, temperature);
2619 }
T rho_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
T mu_from_rho_T_template(const T &density, const T &temperature) const
static const std::string pressure
Definition: NS.h:56

◆ mu_from_rho_T() [1/2]

Real Water97FluidProperties::mu_from_rho_T ( Real  density,
Real  temperature 
) const
overridevirtual

Definition at line 305 of file Water97FluidProperties.C.

Referenced by mu_from_p_T(), and rho_mu_from_p_T().

306 {
308 }
static const std::string density
Definition: NS.h:33
static const std::string temperature
Definition: NS.h:59
T mu_from_rho_T_template(const T &density, const T &temperature) const

◆ mu_from_rho_T() [2/2]

void Water97FluidProperties::mu_from_rho_T ( Real  rho,
Real  temperature,
Real  drho_dT,
Real mu,
Real dmu_drho,
Real dmu_dT 
) const

Definition at line 311 of file Water97FluidProperties.C.

317 {
318  const Real mu_star = 1.0e-6;
319  const Real rhobar = density / _rho_critical;
320  const Real Tbar = temperature / _T_critical;
321  const Real drhobar_drho = 1.0 / _rho_critical;
322  const Real dTbar_dT = 1.0 / _T_critical;
323 
324  // Limit of zero density. Derivative wrt rho is 0
325  Real sum0 = 0.0, dsum0_dTbar = 0.0;
326  for (std::size_t i = 0; i < _mu_H0.size(); ++i)
327  {
328  sum0 += _mu_H0[i] / MathUtils::pow(Tbar, i);
329  dsum0_dTbar -= i * _mu_H0[i] / MathUtils::pow(Tbar, i + 1);
330  }
331 
332  const Real mu0 = 100.0 * std::sqrt(Tbar) / sum0;
333  const Real dmu0_dTbar =
334  50.0 / std::sqrt(Tbar) / sum0 - 100.0 * std::sqrt(Tbar) * dsum0_dTbar / sum0 / sum0;
335 
336  // Residual component due to finite density
337  Real sum1 = 0.0, dsum1_drhobar = 0.0, dsum1_dTbar = 0.0;
338  for (unsigned int i = 0; i < 6; ++i)
339  {
340  const Real fact = MathUtils::pow(1.0 / Tbar - 1.0, i);
341  const Real dfact_dTbar = i * MathUtils::pow(1.0 / Tbar - 1.0, i - 1) / Tbar / Tbar;
342 
343  for (unsigned int j = 0; j < 7; ++j)
344  {
345  sum1 += fact * _mu_Hij[i][j] * MathUtils::pow(rhobar - 1.0, j);
346  dsum1_dTbar -= dfact_dTbar * _mu_Hij[i][j] * MathUtils::pow(rhobar - 1.0, j);
347  dsum1_drhobar += j * fact * _mu_Hij[i][j] * MathUtils::pow(rhobar - 1.0, j - 1);
348  }
349  }
350 
351  const Real mu1 = std::exp(rhobar * sum1);
352  const Real dmu1_drhobar = (sum1 + rhobar * dsum1_drhobar) * mu1;
353  const Real dmu1_dTbar = (rhobar * dsum1_dTbar) * mu1;
354 
355  // Viscosity and its derivatives are then
356  mu = mu_star * mu0 * mu1;
357  dmu_drho = mu_star * mu0 * dmu1_drhobar * drhobar_drho;
358  dmu_dT = mu_star * (dmu0_dTbar * mu1 + mu0 * dmu1_dTbar) * dTbar_dT + dmu_drho * ddensity_dT;
359 }
const Real _T_critical
Critical temperature (K)
static const std::string density
Definition: NS.h:33
const std::array< std::array< Real, 7 >, 6 > _mu_Hij
static const std::string temperature
Definition: NS.h:59
static const std::string mu
Definition: NS.h:123
const Real _rho_critical
Critical density (kg/m^3)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
T pow(T x, int e)
const std::array< Real, 4 > _mu_H0
Constants from Release on the IAPWS Formulation 2008 for the Viscosity of Ordinary Water Substance...

◆ mu_from_rho_T_template()

template<typename T >
T Water97FluidProperties::mu_from_rho_T_template ( const T density,
const T temperature 
) const

Definition at line 2475 of file Water97FluidProperties.h.

Referenced by mu_from_p_T_template(), mu_from_rho_T(), and mu_from_v_e().

2476 {
2477  using std::sqrt, std::exp;
2478 
2479  const T mu_star = 1.e-6;
2480  const T rhobar = density / _rho_critical;
2481  const T Tbar = temperature / _T_critical;
2482 
2483  // Viscosity in limit of zero density
2484  T sum0 = 0.0;
2485  for (std::size_t i = 0; i < _mu_H0.size(); ++i)
2486  sum0 += _mu_H0[i] / MathUtils::pow(Tbar, i);
2487 
2488  const T mu0 = 100.0 * sqrt(Tbar) / sum0;
2489 
2490  // Residual component due to finite density
2491  T sum1 = 0.0;
2492  for (unsigned int i = 0; i < 6; ++i)
2493  {
2494  const T fact = MathUtils::pow(1.0 / Tbar - 1.0, i);
2495  for (unsigned int j = 0; j < 7; ++j)
2496  sum1 += fact * _mu_Hij[i][j] * MathUtils::pow(rhobar - 1.0, j);
2497  }
2498 
2499  const T mu1 = exp(rhobar * sum1);
2500 
2501  // The water viscosity (in Pa.s) is then given by
2502  return mu_star * mu0 * mu1;
2503 }
const Real _T_critical
Critical temperature (K)
auto exp(const T &)
static const std::string density
Definition: NS.h:33
const std::array< std::array< Real, 7 >, 6 > _mu_Hij
static const std::string temperature
Definition: NS.h:59
const Real _rho_critical
Critical density (kg/m^3)
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
T pow(T x, int e)
const std::array< Real, 4 > _mu_H0
Constants from Release on the IAPWS Formulation 2008 for the Viscosity of Ordinary Water Substance...

◆ mu_from_v_e()

ADReal Water97FluidProperties::mu_from_v_e ( const ADReal v,
const ADReal e 
) const
override

Definition at line 362 of file Water97FluidProperties.C.

363 {
364  const auto [rho, T] = rho_T_from_v_e(v, e);
365  return mu_from_rho_T_template(rho, T);
366 }
std::pair< T, T > rho_T_from_v_e(const T &v, const T &e) const
Computes the density (first member of the pair) and temperature (second member of the pair) as functi...
T mu_from_rho_T_template(const T &density, const T &temperature) const

◆ p_from_v_e() [1/2]

Real Water97FluidProperties::p_from_v_e ( Real  v,
Real  e 
) const
override

Definition at line 139 of file Water97FluidProperties.C.

Referenced by p_T_from_v_e(), and rho_T_from_v_e().

140 {
141  return p_from_v_e_template(v, e);
142 }
T p_from_v_e_template(const T &v, const T &e) const

◆ p_from_v_e() [2/2]

ADReal Water97FluidProperties::p_from_v_e ( const ADReal v,
const ADReal e 
) const
override

Definition at line 145 of file Water97FluidProperties.C.

146 {
147  return p_from_v_e_template(v, e);
148 }
T p_from_v_e_template(const T &v, const T &e) const

◆ p_from_v_e_template()

template<typename T >
T Water97FluidProperties::p_from_v_e_template ( const T v,
const T e 
) const

Definition at line 2440 of file Water97FluidProperties.h.

Referenced by p_from_v_e().

2441 {
2442  const auto rho = 1 / v;
2443  // For NewtonSolve
2444  // y = e
2445  // x = rho
2446  // z = p
2447  auto lambda = [this](const T & rho, const T & p, T & e, T & de_drho, T & de_dp)
2448  { e_from_p_rho(p, rho, e, de_dp, de_drho); };
2450  rho, e, _p_initial_guess, _tolerance, lambda, name() + "::p_from_v_e")
2451  .first;
2452 }
std::pair< T, T > NewtonSolve(const T &x, const T &y, const Real z_initial_guess, const Real tolerance, const Functor &func, const std::string &caller_name, const unsigned int max_its=100)
NewtonSolve does a 1D Newton Solve to solve the equation y = f(x, z) for variable z...
const Real _tolerance
Newton&#39;s method may be used to convert between variable sets.
const std::string & name() const
virtual Real e_from_p_rho(Real p, Real rho) const override
const Real _p_initial_guess
Initial guess for pressure (or pressure used to compute the initial guess)

◆ p_T_from_h_s()

template<typename T >
void SinglePhaseFluidProperties::p_T_from_h_s ( const T h,
const T s,
Real  p0,
Real  T0,
T pressure,
T temperature,
bool &  conversion_succeeded 
) const
inherited

Determines (p,T) from (h,s) using Newton Solve in 2D Useful for conversion between different sets of state variables.

Parameters
[in]hspecific enthalpy (J / kg)
[in]sspecific entropy (J/K*kg)
[in]p0initial guess for pressure (Pa / kg)
[in]T0initial guess for temperature (K)
[out]fluidpressure (Pa / kg)
[out]Temperature(K)

Definition at line 575 of file SinglePhaseFluidProperties.h.

Referenced by TabulatedFluidProperties::T_from_h_s().

582 {
583  auto h_lambda = [&](const T & pressure, const T & temperature, T & new_h, T & dh_dp, T & dh_dT)
584  { h_from_p_T(pressure, temperature, new_h, dh_dp, dh_dT); };
585  auto s_lambda = [&](const T & pressure, const T & temperature, T & new_s, T & ds_dp, T & ds_dT)
586  { s_from_p_T(pressure, temperature, new_s, ds_dp, ds_dT); };
587  try
588  {
590  h, s, p0, T0, pressure, temperature, _tolerance, _tolerance, h_lambda, s_lambda);
591  conversion_succeeded = true;
592  }
593  catch (MooseException &)
594  {
595  conversion_succeeded = false;
596  }
597 
598  if (!conversion_succeeded)
599  mooseDoOnce(mooseWarning("Conversion from (h, s)=(", h, ", ", s, ") to (p, T) failed"));
600 }
static const std::string temperature
Definition: NS.h:59
const Real _tolerance
Newton&#39;s method may be used to convert between variable sets.
e e e e s T T T T T rho v v T e h
void NewtonSolve2D(const T &f, const T &g, const Real x0, const Real y0, T &x_final, T &y_final, const Real f_tol, const Real g_tol, const Functor1 &func1, const Functor2 &func2, const unsigned int max_its=100)
NewtonSolve2D does a 2D Newton Solve to solve for the x and y such that: f = func1(x, y) and g = func2(x, y).
static const std::string pressure
Definition: NS.h:56
void mooseWarning(Args &&... args) const

◆ p_T_from_v_e() [1/2]

template<typename CppType >
void SinglePhaseFluidProperties::p_T_from_v_e ( const CppType &  v,
const CppType &  e,
Real  p0,
Real  T0,
CppType &  p,
CppType &  T,
bool &  conversion_succeeded 
) const
inherited

Determines (p,T) from (v,e) using Newton Solve in 2D Useful for conversion between different sets of state variables.

Parameters
[in]vspecific volume (m^3 / kg)
[in]especific internal energy (J / kg)
[in]p0initial guess for pressure (Pa / kg)
[in]T0initial guess for temperature (K)
[out]fluidpressure (Pa / kg)
[out]Temperature(K)

Definition at line 511 of file SinglePhaseFluidProperties.h.

Referenced by TabulatedBicubicFluidProperties::constructInterpolation(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), TabulatedFluidProperties::g_from_v_e(), TemperaturePressureFunctionFluidProperties::k_from_v_e(), TemperaturePressureFunctionFluidProperties::mu_from_v_e(), and TemperaturePressureFunctionFluidProperties::T_from_v_e().

518 {
519  auto v_lambda = [&](const CppType & pressure,
520  const CppType & temperature,
521  CppType & new_v,
522  CppType & dv_dp,
523  CppType & dv_dT) { v_from_p_T(pressure, temperature, new_v, dv_dp, dv_dT); };
524  auto e_lambda = [&](const CppType & pressure,
525  const CppType & temperature,
526  CppType & new_e,
527  CppType & de_dp,
528  CppType & de_dT) { e_from_p_T(pressure, temperature, new_e, de_dp, de_dT); };
529  try
530  {
532  v, e, p0, T0, p, T, _tolerance, _tolerance, v_lambda, e_lambda);
533  conversion_succeeded = true;
534  }
535  catch (MooseException &)
536  {
537  conversion_succeeded = false;
538  }
539 
540  if (!conversion_succeeded)
541  mooseDoOnce(mooseWarning("Conversion from (v, e)=(", v, ", ", e, ") to (p, T) failed"));
542 }
static const std::string temperature
Definition: NS.h:59
const Real _tolerance
Newton&#39;s method may be used to convert between variable sets.
void NewtonSolve2D(const T &f, const T &g, const Real x0, const Real y0, T &x_final, T &y_final, const Real f_tol, const Real g_tol, const Functor1 &func1, const Functor2 &func2, const unsigned int max_its=100)
NewtonSolve2D does a 2D Newton Solve to solve for the x and y such that: f = func1(x, y) and g = func2(x, y).
static const std::string pressure
Definition: NS.h:56
void mooseWarning(Args &&... args) const

◆ p_T_from_v_e() [2/2]

template<typename T >
std::pair< T, T > Water97FluidProperties::p_T_from_v_e ( const T v,
const T e 
) const

Computes the pressure (first member of the pair) and temperature (second member of the pair) as functions of specific volume and specific internal energy.

Definition at line 2204 of file Water97FluidProperties.h.

Referenced by c_from_v_e(), cp_from_v_e(), cv_from_v_e(), k_from_v_e_template(), and T_from_v_e().

2205 {
2206  const auto rho = 1 / v;
2207  const auto p = p_from_v_e(v, e);
2208  return {p, T_drhodT_from_p_rho(p, rho).first};
2209 }
Real p_from_v_e(Real v, Real e) const override
std::pair< T, T > T_drhodT_from_p_rho(const T &p, const T &rho) const
Computes the temperature (first member of the pair) and the derivative of density (second member of t...

◆ p_T_from_v_h() [1/3]

template<typename T >
void SinglePhaseFluidProperties::p_T_from_v_h ( const T v,
const T h,
Real  p0,
Real  T0,
T pressure,
T temperature,
bool &  conversion_succeeded 
) const
inherited

Determines (p,T) from (v,h) using Newton Solve in 2D Useful for conversion between different sets of state variables.

Parameters
[in]vspecific volume (m^3 / kg)
[in]hspecific enthalpy (J / kg)
[in]p0initial guess for pressure (Pa / kg)
[in]T0initial guess for temperature (K)
[out]fluidpressure (Pa / kg)
[out]Temperature(K)

Definition at line 546 of file SinglePhaseFluidProperties.h.

Referenced by TabulatedBicubicFluidProperties::constructInterpolation().

553 {
554  auto v_lambda = [&](const T & pressure, const T & temperature, T & new_v, T & dv_dp, T & dv_dT)
555  { v_from_p_T(pressure, temperature, new_v, dv_dp, dv_dT); };
556  auto h_lambda = [&](const T & pressure, const T & temperature, T & new_h, T & dh_dp, T & dh_dT)
557  { h_from_p_T(pressure, temperature, new_h, dh_dp, dh_dT); };
558  try
559  {
561  v, h, p0, T0, pressure, temperature, _tolerance, _tolerance, v_lambda, h_lambda);
562  conversion_succeeded = true;
563  }
564  catch (MooseException &)
565  {
566  conversion_succeeded = false;
567  }
568 
569  if (!conversion_succeeded)
570  mooseDoOnce(mooseWarning("Conversion from (v, h)=(", v, ", ", h, ") to (p, T) failed"));
571 }
static const std::string temperature
Definition: NS.h:59
const Real _tolerance
Newton&#39;s method may be used to convert between variable sets.
e e e e s T T T T T rho v v T e h
void NewtonSolve2D(const T &f, const T &g, const Real x0, const Real y0, T &x_final, T &y_final, const Real f_tol, const Real g_tol, const Functor1 &func1, const Functor2 &func2, const unsigned int max_its=100)
NewtonSolve2D does a 2D Newton Solve to solve for the x and y such that: f = func1(x, y) and g = func2(x, y).
static const std::string pressure
Definition: NS.h:56
void mooseWarning(Args &&... args) const

◆ p_T_from_v_h() [2/3]

template<typename T >
std::pair< T, T > Water97FluidProperties::p_T_from_v_h ( const T v,
const T h 
) const

Computes the pressure (first member of the pair) and temperature (second member of the pair) as functions of specific volume and specific enthalpy.

Definition at line 2507 of file Water97FluidProperties.h.

Referenced by e_from_v_h().

2508 {
2510  bool conversion_succeeded;
2511  p_T_from_v_h(
2512  v, h, _p_initial_guess, _T_initial_guess, pressure, temperature, conversion_succeeded);
2513  return {std::move(pressure), std::move(temperature)};
2514 }
static const std::string temperature
Definition: NS.h:59
std::pair< T, T > p_T_from_v_h(const T &v, const T &h) const
Computes the pressure (first member of the pair) and temperature (second member of the pair) as funct...
e e e e s T T T T T rho v v T e h
static const std::string pressure
Definition: NS.h:56
const Real _p_initial_guess
Initial guess for pressure (or pressure used to compute the initial guess)
const Real _T_initial_guess
Initial guess for temperature (or temperature used to compute the initial guess)

◆ p_T_from_v_h() [3/3]

template<typename T >
void SinglePhaseFluidProperties::p_T_from_v_h ( typename T  )

Determines (p,T) from (v,h) using Newton Solve in 2D Useful for conversion between different sets of state variables.

Parameters
[in]vspecific volume (m^3 / kg)
[in]hspecific enthalpy (J / kg)
[in]p0initial guess for pressure (Pa / kg)
[in]T0initial guess for temperature (K)
[out]fluidpressure (Pa / kg)
[out]Temperature(K)

Definition at line 546 of file SinglePhaseFluidProperties.h.

553 {
554  auto v_lambda = [&](const T & pressure, const T & temperature, T & new_v, T & dv_dp, T & dv_dT)
555  { v_from_p_T(pressure, temperature, new_v, dv_dp, dv_dT); };
556  auto h_lambda = [&](const T & pressure, const T & temperature, T & new_h, T & dh_dp, T & dh_dT)
557  { h_from_p_T(pressure, temperature, new_h, dh_dp, dh_dT); };
558  try
559  {
561  v, h, p0, T0, pressure, temperature, _tolerance, _tolerance, v_lambda, h_lambda);
562  conversion_succeeded = true;
563  }
564  catch (MooseException &)
565  {
566  conversion_succeeded = false;
567  }
568 
569  if (!conversion_succeeded)
570  mooseDoOnce(mooseWarning("Conversion from (v, h)=(", v, ", ", h, ") to (p, T) failed"));
571 }
static const std::string temperature
Definition: NS.h:59
virtual Real h_from_p_T(Real pressure, Real temperature) const override
const Real _tolerance
Newton&#39;s method may be used to convert between variable sets.
e e e e s T T T T T rho v v T e h
void NewtonSolve2D(const T &f, const T &g, const Real x0, const Real y0, T &x_final, T &y_final, const Real f_tol, const Real g_tol, const Functor1 &func1, const Functor2 &func2, const unsigned int max_its=100)
NewtonSolve2D does a 2D Newton Solve to solve for the x and y such that: f = func1(x, y) and g = func2(x, y).
virtual Real v_from_p_T(Real pressure, Real temperature) const override
static const std::string pressure
Definition: NS.h:56
void mooseWarning(Args &&... args) const

◆ phi3()

template<typename T >
T Water97FluidProperties::phi3 ( const T delta,
const T tau 
) const
protected

Helmholtz free energy in Region 3.

From Eq. (28) From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam, IAPWS 2007.

Parameters
deltareduced density (-)
taureduced temperature (-)
Returns
Helmholtz free energy (-)

Definition at line 1735 of file Water97FluidProperties.h.

1736 {
1737  using std::log;
1738 
1739  T sum = 0.0;
1740  for (std::size_t i = 1; i < _n3.size(); ++i)
1741  sum += _n3[i] * MathUtils::pow(delta, _I3[i]) * MathUtils::pow(tau, _J3[i]);
1742 
1743  return _n3[0] * log(delta) + sum;
1744 }
int delta(unsigned int i, unsigned int j)
Delta function, which returns zero if $i j$ and unity if $i=j$.
const std::array< int, 40 > _J3
auto log(const T &)
const std::array< int, 40 > _I3
T pow(T x, int e)
const std::array< Real, 40 > _n3
Constants for region 3.

◆ propfunc() [1/12]

SinglePhaseFluidProperties::propfunc ( p  ,
v  ,
 
)
inherited

Compute a fluid property given for the state defined by two given properties.

For all functions, the first two arguments are the given properties that define the fluid state. For the two-argument variants, the desired property is the return value. The five-argument variants also provide partial derivatives dx/da and dx/db where x is the desired property being computed, a is the first given property, and b is the second given property. The desired property, dx/da, and dx/db are stored into the 3rd, 4th, and 5th arguments respectively.

Properties/parameters used in these function are listed below with their units:

p pressure [Pa] T temperature [K] e specific internal energy [J/kg] v specific volume [m^3/kg] rho density [kg/m^3] h specific enthalpy [J/kg] s specific entropy [J/(kg*K)] mu viscosity [Pa*s] k thermal conductivity [W/(m*K)] c speed of sound [m/s] cp constant-pressure specific heat [J/K] cv constant-volume specific heat [J/K] beta volumetric thermal expansion coefficient [1/K] g Gibbs free energy [J] pp_sat partial pressure at saturation [Pa] gamma Adiabatic ratio (cp/cv) [-]

As an example:

// calculate pressure given specific vol and energy: auto pressure = your_fluid_properties_object.p_from_v_e(specific_vol, specific_energy);

// or use the derivative variant: Real dp_dv = 0; // derivative will be stored into here Real dp_de = 0; // derivative will be stored into here your_fluid_properties_object.p_from_v_e(specific_vol, specific_energy, pressure, dp_dv, dp_de);

Automatic differentiation (AD) support is provided through x_from_a_b(ADReal a, ADReal b) and x_from_a_b(ADReal a, ADReal b, ADReal x, ADReal dx_da, ADReal dx_db) versions of the functions where a and b must be ADReal/DualNumber's calculated using all AD-supporting values:

auto v = 1/rho; // rho must be an AD non-linear variable. auto e = rhoE/rho - vel_energy; // rhoE and vel_energy must be AD variables/numbers also. auto pressure = your_fluid_properties_object.p_from_v_e(v, e); // pressure now contains partial derivatives w.r.t. all degrees of freedom

◆ propfunc() [2/12]

e SinglePhaseFluidProperties::propfunc ( c  ,
v  ,
 
)
inherited

◆ propfunc() [3/12]

e e SinglePhaseFluidProperties::propfunc ( cv  ,
v  ,
 
)
inherited

◆ propfunc() [4/12]

e e e SinglePhaseFluidProperties::propfunc ( ,
v  ,
 
)
inherited

◆ propfunc() [5/12]

e e e e SinglePhaseFluidProperties::propfunc ( ,
h  ,
p   
)
inherited

◆ propfunc() [6/12]

e e e e s SinglePhaseFluidProperties::propfunc ( ,
v  ,
h   
)
inherited

◆ propfunc() [7/12]

e e e e s T SinglePhaseFluidProperties::propfunc ( pp_sat  ,
p  ,
T   
)
inherited

◆ propfunc() [8/12]

e e e e s T T SinglePhaseFluidProperties::propfunc ( ,
rho  ,
T   
)
inherited

◆ propfunc() [9/12]

e e e e s T T T T T SinglePhaseFluidProperties::propfunc ( rho  ,
p  ,
T   
)
inherited

◆ propfunc() [10/12]

e e e e s T T T T T rho SinglePhaseFluidProperties::propfunc ( ,
T  ,
v   
)
inherited

◆ propfunc() [11/12]

e e e e s T T T T T rho v SinglePhaseFluidProperties::propfunc ( h  ,
T  ,
v   
)
inherited

◆ propfunc() [12/12]

e e e e s T T T T T rho v v SinglePhaseFluidProperties::propfunc ( cv  ,
T  ,
v   
)
inherited

◆ propfuncWithDefault() [1/7]

e e e e s T T T SinglePhaseFluidProperties::propfuncWithDefault ( cp  ,
p  ,
T   
)
inherited

◆ propfuncWithDefault() [2/7]

e e e e s T T T T SinglePhaseFluidProperties::propfuncWithDefault ( mu  ,
p  ,
T   
)
inherited

◆ propfuncWithDefault() [3/7]

e e e e s T T T T T rho v v T SinglePhaseFluidProperties::propfuncWithDefault ( h  ,
v  ,
 
)
inherited

◆ propfuncWithDefault() [4/7]

e e e e s T T T T T rho v v T e SinglePhaseFluidProperties::propfuncWithDefault ( p  ,
h  ,
 
)
inherited

◆ propfuncWithDefault() [5/7]

e e e e s T T T T T rho v v T e p SinglePhaseFluidProperties::propfuncWithDefault ( T  ,
p  ,
h   
)
inherited

◆ propfuncWithDefault() [6/7]

e e e e s T T T T T rho v v T e p T SinglePhaseFluidProperties::propfuncWithDefault ( v  ,
p  ,
T   
)
inherited

◆ propfuncWithDefault() [7/7]

e e e e s T T T T T rho v v T e p T T SinglePhaseFluidProperties::propfuncWithDefault ( gamma  ,
v  ,
 
)
inherited

◆ propfuncWithDefinitionOverride()

Water97FluidProperties::propfuncWithDefinitionOverride ( ,
p  ,
T   
)

◆ rho_e_from_p_T()

void SinglePhaseFluidProperties::rho_e_from_p_T ( Real  p,
Real  T,
Real rho,
Real drho_dp,
Real drho_dT,
Real e,
Real de_dp,
Real de_dT 
) const
virtualinherited

Definition at line 434 of file SinglePhaseFluidProperties.C.

442 {
443  rho_from_p_T(p, T, rho, drho_dp, drho_dT);
444  e_from_p_T(p, T, e, de_dp, de_dT);
445 }

◆ rho_from_p_T() [1/4]

Real Water97FluidProperties::rho_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 81 of file Water97FluidProperties.C.

Referenced by k_from_p_T_template(), mu_from_p_T(), and rho_mu_from_p_T().

82 {
84 }
T rho_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ rho_from_p_T() [2/4]

ADReal Water97FluidProperties::rho_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 87 of file Water97FluidProperties.C.

88 {
90 }
T rho_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ rho_from_p_T() [3/4]

void Water97FluidProperties::rho_from_p_T ( Real  pressure,
Real  temperature,
Real rho,
Real drho_dp,
Real drho_dT 
) const
overridevirtual

Definition at line 93 of file Water97FluidProperties.C.

95 {
96  rho_from_p_T_template(pressure, temperature, rho, drho_dp, drho_dT);
97 }
T rho_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ rho_from_p_T() [4/4]

void Water97FluidProperties::rho_from_p_T ( const ADReal pressure,
const ADReal temperature,
ADReal rho,
ADReal drho_dp,
ADReal drho_dT 
) const
overridevirtual

Definition at line 100 of file Water97FluidProperties.C.

105 {
106  rho_from_p_T_template(pressure, temperature, rho, drho_dp, drho_dT);
107 }
T rho_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ rho_from_p_T_template() [1/2]

template<typename T >
T Water97FluidProperties::rho_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2575 of file Water97FluidProperties.h.

Referenced by mu_from_p_T_template(), rho_from_p_T(), rho_from_p_T_template(), T_drhodT_from_p_rho(), and v_from_p_T_template().

2576 {
2577  T density, pi, tau;
2578 
2579  // Determine which region the point is in
2580  unsigned int region =
2582 
2583  switch (region)
2584  {
2585  case 1:
2586  pi = pressure / _p_star[0];
2587  tau = _T_star[0] / temperature;
2588  density = pressure / (pi * _Rw * temperature * dgamma1_dpi(pi, tau));
2589  break;
2590 
2591  case 2:
2592  pi = pressure / _p_star[1];
2593  tau = _T_star[1] / temperature;
2594  density = pressure / (pi * _Rw * temperature * dgamma2_dpi(pi, tau));
2595  break;
2596 
2597  case 3:
2599  break;
2600 
2601  case 5:
2602  pi = pressure / _p_star[4];
2603  tau = _T_star[4] / temperature;
2604  density = pressure / (pi * _Rw * temperature * dgamma5_dpi(pi, tau));
2605  break;
2606 
2607  default:
2608  mooseError("inRegion() has given an incorrect region");
2609  }
2610  return density;
2611 }
unsigned int inRegion(Real pressure, Real temperature) const
Determines the phase region that the given pressure and temperature values lie in.
static const std::string density
Definition: NS.h:33
auto raw_value(const Eigen::Map< T > &in)
static const std::string temperature
Definition: NS.h:59
const std::array< Real, 5 > _p_star
Pressure scale for each region.
const std::array< Real, 5 > _T_star
Temperature scale for each region.
T dgamma2_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 2 wrt pi.
T dgamma1_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 1 wrt pi.
T dgamma5_dpi(const T &pi, const T &tau) const
Derivative of Gibbs free energy in Region 5 wrt pi.
T densityRegion3(const T &pressure, const T &temperature) const
Density function for Region 3 - supercritical water and steam.
static const std::string pressure
Definition: NS.h:56
void mooseError(Args &&... args) const
const Real _Rw
Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K) ...
const Real pi

◆ rho_from_p_T_template() [2/2]

template<typename T >
void Water97FluidProperties::rho_from_p_T_template ( const T pressure,
const T temperature,
T rho,
T drho_dp,
T drho_dt 
) const

Definition at line 2017 of file Water97FluidProperties.h.

2019 {
2020  auto functor = [this](const auto & pressure, const auto & temperature)
2021  { return this->rho_from_p_T_template(pressure, temperature); };
2022 
2023  xyDerivatives(pressure, temperature, rho, drho_dp, drho_dT, functor);
2024 }
T rho_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static void xyDerivatives(const T x, const T &y, T &z, T &dz_dx, T &dz_dy, const Functor &z_from_x_y)
Computes the dependent variable z and its derivatives with respect to the independent variables x and...
static const std::string pressure
Definition: NS.h:56

◆ rho_mu_from_p_T() [1/3]

void Water97FluidProperties::rho_mu_from_p_T ( Real  p,
Real  T,
Real rho,
Real mu 
) const
overridevirtual

Combined methods.

These methods are particularly useful for the PorousFlow module, where density and viscosity are typically both computed everywhere. The combined methods allow the most efficient means of calculating both properties, especially where rho(p, T) and mu(rho, T). In this case, an extra density calculation would be required to calculate mu(p, T). All property names are described above.

Reimplemented from SinglePhaseFluidProperties.

Definition at line 369 of file Water97FluidProperties.C.

373 {
375  mu = this->mu_from_rho_T(rho, temperature);
376 }
static const std::string temperature
Definition: NS.h:59
static const std::string mu
Definition: NS.h:123
static const std::string pressure
Definition: NS.h:56
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
virtual Real mu_from_rho_T(Real density, Real temperature) const override

◆ rho_mu_from_p_T() [2/3]

void Water97FluidProperties::rho_mu_from_p_T ( Real  pressure,
Real  temperature,
Real rho,
Real drho_dp,
Real drho_dT,
Real mu,
Real dmu_dp,
Real dmu_dT 
) const
overridevirtual

Reimplemented from SinglePhaseFluidProperties.

Definition at line 379 of file Water97FluidProperties.C.

387 {
388  this->rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
389  Real dmu_drho;
390  this->mu_from_rho_T(rho, temperature, drho_dT, mu, dmu_drho, dmu_dT);
391  dmu_dp = dmu_drho * drho_dp;
392 }
static const std::string temperature
Definition: NS.h:59
static const std::string mu
Definition: NS.h:123
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
virtual Real mu_from_rho_T(Real density, Real temperature) const override

◆ rho_mu_from_p_T() [3/3]

void SinglePhaseFluidProperties::rho_mu_from_p_T ( const ADReal p,
const ADReal T,
ADReal rho,
ADReal mu 
) const
virtualinherited

Definition at line 469 of file SinglePhaseFluidProperties.C.

473 {
474  rho = rho_from_p_T(p, T);
475  mu = mu_from_p_T(p, T);
476 }
static const std::string mu
Definition: NS.h:123

◆ rho_T_from_v_e()

template<typename T >
std::pair< T, T > Water97FluidProperties::rho_T_from_v_e ( const T v,
const T e 
) const

Computes the density (first member of the pair) and temperature (second member of the pair) as functions of specific volume and specific internal energy.

Definition at line 2213 of file Water97FluidProperties.h.

Referenced by mu_from_v_e().

2214 {
2215  const auto rho = 1 / v;
2216  const auto p = p_from_v_e(v, e);
2217  return {rho, T_drhodT_from_p_rho(p, rho).first};
2218 }
Real p_from_v_e(Real v, Real e) const override
std::pair< T, T > T_drhodT_from_p_rho(const T &p, const T &rho) const
Computes the temperature (first member of the pair) and the derivative of density (second member of t...

◆ s_from_h_p() [1/3]

Real Water97FluidProperties::s_from_h_p ( Real  enthalpy,
Real  pressure 
) const
overridevirtual

Definition at line 450 of file Water97FluidProperties.C.

451 {
452  Real T = T_from_p_h(pressure, enthalpy);
453  return s_from_p_T(pressure, T);
454 }
virtual Real T_from_p_h(Real pressure, Real enthalpy) const override
Backwards equation T(p, h) From Revised Release on the IAPWS Industrial Formulation 1997 for the Ther...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56

◆ s_from_h_p() [2/3]

ADReal Water97FluidProperties::s_from_h_p ( const ADReal enthalpy,
const ADReal pressure 
) const
overridevirtual

Definition at line 457 of file Water97FluidProperties.C.

458 {
460  return s_from_p_T_template(pressure, temperature);
461 }
static const std::string temperature
Definition: NS.h:59
DualNumber< Real, DNDerivativeType, true > ADReal
ADReal T_from_p_h_ad(const ADReal &pressure, const ADReal &enthalpy) const
AD version of backwards equation T(p, h) (used internally) From Revised Release on the IAPWS Industri...
static const std::string pressure
Definition: NS.h:56

◆ s_from_h_p() [3/3]

void Water97FluidProperties::s_from_h_p ( Real  enthalpy,
Real  pressure,
Real s,
Real ds_dh,
Real ds_dp 
) const
overridevirtual

Definition at line 464 of file Water97FluidProperties.C.

466 {
467  ADReal p = pressure;
468  Moose::derivInsert(p.derivatives(), 0, 1.0);
469 
470  ADReal h = enthalpy;
471  Moose::derivInsert(h.derivatives(), 1, 1.0);
472 
473  ADReal T = T_from_p_h_ad(p, h);
474  ADReal entropy = s_from_p_T_template(p, T);
475 
476  ds_dh = entropy.derivatives()[1];
477  ds_dp = entropy.derivatives()[0];
478  s = entropy.value();
479 }
DualNumber< Real, DNDerivativeType, true > ADReal
e e e e s T T T T T rho v v T e h
ADReal T_from_p_h_ad(const ADReal &pressure, const ADReal &enthalpy) const
AD version of backwards equation T(p, h) (used internally) From Revised Release on the IAPWS Industri...
static const std::string pressure
Definition: NS.h:56
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)

◆ subdomainSetup()

virtual void FluidProperties::subdomainSetup ( )
inlinefinalvirtualinherited

Reimplemented from ThreadedGeneralUserObject.

Definition at line 38 of file FluidProperties.h.

38 {}

◆ subregion2ph()

unsigned int Water97FluidProperties::subregion2ph ( Real  pressure,
Real  enthalpy 
) const
protected

Provides the correct subregion index for a (P,h) point in region 2.

From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
subregion index

Definition at line 667 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

668 {
669  unsigned int subregion;
670 
671  if (pressure <= 4.0e6)
672  subregion = 1;
673  else if (pressure > 4.0e6 && pressure < 6.5467e6)
674  subregion = 2;
675  else
676  {
677  if (enthalpy >= b2bc(pressure))
678  subregion = 2;
679  else
680  subregion = 3;
681  }
682 
683  return subregion;
684 }
Real b2bc(Real pressure) const
Boundary between subregions b and c in region 2.
static const std::string pressure
Definition: NS.h:56

◆ subregion3()

unsigned int Water97FluidProperties::subregion3 ( Real  pressure,
Real  temperature 
) const

Provides the correct subregion index for a (P,T) point in region 3.

From Revised Supplementary Release on Backward Equations for Specific Volume as a Function of Pressure and Temperature v(p,T) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
temperaturewater temperature (K)
Returns
subregion index

Definition at line 1002 of file Water97FluidProperties.C.

Referenced by densityRegion3().

1003 {
1004  Real pMPa = pressure / 1.0e6;
1005  const Real P3cd = 19.00881189173929;
1006  unsigned int subregion = 0;
1007 
1008  if (pMPa > 40.0 && pMPa <= 100.0)
1009  {
1010  if (temperature <= tempXY(pressure, AB))
1011  subregion = 0;
1012  else // (temperature > tempXY(pressure, AB))
1013  subregion = 1;
1014  }
1015  else if (pMPa > 25.0 && pMPa <= 40.0)
1016  {
1017  if (temperature <= tempXY(pressure, CD))
1018  subregion = 2;
1019  else if (temperature > tempXY(pressure, CD) && temperature <= tempXY(pressure, AB))
1020  subregion = 3;
1021  else if (temperature > tempXY(pressure, AB) && temperature <= tempXY(pressure, EF))
1022  subregion = 4;
1023  else // (temperature > tempXY(pressure, EF))
1024  subregion = 5;
1025  }
1026  else if (pMPa > 23.5 && pMPa <= 25.0)
1027  {
1028  if (temperature <= tempXY(pressure, CD))
1029  subregion = 2;
1030  else if (temperature > tempXY(pressure, CD) && temperature <= tempXY(pressure, GH))
1031  subregion = 6;
1032  else if (temperature > tempXY(pressure, GH) && temperature <= tempXY(pressure, EF))
1033  subregion = 7;
1034  else if (temperature > tempXY(pressure, EF) && temperature <= tempXY(pressure, IJ))
1035  subregion = 8;
1036  else if (temperature > tempXY(pressure, IJ) && temperature <= tempXY(pressure, JK))
1037  subregion = 9;
1038  else // (temperature > tempXY(pressure, JK))
1039  subregion = 10;
1040  }
1041  else if (pMPa > 23.0 && pMPa <= 23.5)
1042  {
1043  if (temperature <= tempXY(pressure, CD))
1044  subregion = 2;
1045  else if (temperature > tempXY(pressure, CD) && temperature <= tempXY(pressure, GH))
1046  subregion = 11;
1047  else if (temperature > tempXY(pressure, GH) && temperature <= tempXY(pressure, EF))
1048  subregion = 7;
1049  else if (temperature > tempXY(pressure, EF) && temperature <= tempXY(pressure, IJ))
1050  subregion = 8;
1051  else if (temperature > tempXY(pressure, IJ) && temperature <= tempXY(pressure, JK))
1052  subregion = 9;
1053  else // (temperature > tempXY(pressure, JK))
1054  subregion = 10;
1055  }
1056  else if (pMPa > 22.5 && pMPa <= 23.0)
1057  {
1058  if (temperature <= tempXY(pressure, CD))
1059  subregion = 2;
1060  else if (temperature > tempXY(pressure, CD) && temperature <= tempXY(pressure, GH))
1061  subregion = 11;
1062  else if (temperature > tempXY(pressure, GH) && temperature <= tempXY(pressure, MN))
1063  subregion = 12;
1064  else if (temperature > tempXY(pressure, MN) && temperature <= tempXY(pressure, EF))
1065  subregion = 13;
1066  else if (temperature > tempXY(pressure, EF) && temperature <= tempXY(pressure, OP))
1067  subregion = 14;
1068  else if (temperature > tempXY(pressure, OP) && temperature <= tempXY(pressure, IJ))
1069  subregion = 15;
1070  else if (temperature > tempXY(pressure, IJ) && temperature <= tempXY(pressure, JK))
1071  subregion = 9;
1072  else // (temperature > tempXY(pressure, JK))
1073  subregion = 10;
1074  }
1075  else if (pMPa > vaporPressure(643.15) * 1.0e-6 &&
1076  pMPa <= 22.5) // vaporPressure(643.15) = 21.04 MPa
1077  {
1078  if (temperature <= tempXY(pressure, CD))
1079  subregion = 2;
1080  else if (temperature > tempXY(pressure, CD) && temperature <= tempXY(pressure, QU))
1081  subregion = 16;
1082  else if (temperature > tempXY(pressure, QU) && temperature <= tempXY(pressure, RX))
1083  {
1084  if (pMPa > 22.11 && pMPa <= 22.5)
1085  {
1086  if (temperature <= tempXY(pressure, UV))
1087  subregion = 20;
1088  else if (temperature > tempXY(pressure, UV) && temperature <= tempXY(pressure, EF))
1089  subregion = 21;
1090  else if (temperature > tempXY(pressure, EF) && temperature <= tempXY(pressure, WX))
1091  subregion = 22;
1092  else // (temperature > tempXY(pressure, WX) && temperature <= tempXY(pressure, RX))
1093  subregion = 23;
1094  }
1095  else if (pMPa > 22.064 && pMPa <= 22.11)
1096  {
1097  if (temperature <= tempXY(pressure, UV))
1098  subregion = 20;
1099  else if (temperature > tempXY(pressure, UV) && temperature <= tempXY(pressure, EF))
1100  subregion = 24;
1101  else if (temperature > tempXY(pressure, EF) && temperature <= tempXY(pressure, WX))
1102  subregion = 25;
1103  else // (temperature > tempXY(pressure, WX) && temperature <= tempXY(pressure, RX))
1104  subregion = 23;
1105  }
1106  else if (temperature <= vaporTemperature(pressure))
1107  {
1108  if (pMPa > 21.93161551 && pMPa <= 22.064)
1110  subregion = 20;
1111  else
1112  subregion = 24;
1113  else // (pMPa > vaporPressure(643.15) * 1.0e-6 && pMPa <= 21.93161551)
1114  subregion = 20;
1115  }
1117  {
1118  if (pMPa > 21.90096265 && pMPa <= 22.064)
1119  {
1120  if (temperature <= tempXY(pressure, WX))
1121  subregion = 25;
1122  else
1123  subregion = 23;
1124  }
1125  else
1126  subregion = 23;
1127  }
1128  }
1129  else if (temperature > tempXY(pressure, RX) && temperature <= tempXY(pressure, JK))
1130  subregion = 17;
1131  else
1132  subregion = 10;
1133  }
1134  else if (pMPa > 20.5 &&
1135  pMPa <= vaporPressure(643.15) * 1.0e-6) // vaporPressure(643.15) = 21.04 MPa
1136  {
1137  if (temperature <= tempXY(pressure, CD))
1138  subregion = 2;
1140  subregion = 16;
1142  subregion = 17;
1143  else // (temperature > tempXY(pressure, JK))
1144  subregion = 10;
1145  }
1146  else if (pMPa > P3cd && pMPa <= 20.5) // P3cd = 19.00881189173929
1147  {
1148  if (temperature <= tempXY(pressure, CD))
1149  subregion = 2;
1151  subregion = 18;
1152  else
1153  subregion = 19;
1154  }
1155  else if (pMPa > vaporPressure(623.15) * 1.0e-6 && pMPa <= P3cd)
1156  {
1158  subregion = 2;
1159  else
1160  subregion = 19;
1161  }
1162  else if (pMPa > 22.11 && pMPa <= 22.5)
1163  {
1165  subregion = 20;
1166  else if (temperature > tempXY(pressure, UV) && temperature <= tempXY(pressure, EF))
1167  subregion = 21;
1168  else if (temperature > tempXY(pressure, EF) && temperature <= tempXY(pressure, WX))
1169  subregion = 22;
1170  else // (temperature > tempXY(pressure, WX) && temperature <= tempXY(pressure, RX))
1171  subregion = 23;
1172  }
1173  else if (pMPa > 22.064 && pMPa <= 22.11)
1174  {
1176  subregion = 20;
1177  else if (temperature > tempXY(pressure, UV) && temperature <= tempXY(pressure, EF))
1178  subregion = 24;
1179  else if (temperature > tempXY(pressure, EF) && temperature <= tempXY(pressure, WX))
1180  subregion = 25;
1181  else // (temperature > tempXY(pressure, WX) && temperature <= tempXY(pressure, RX))
1182  subregion = 23;
1183  }
1184  else
1185  mooseError("subregion3(): Shouldn't have got here!");
1186 
1187  return subregion;
1188 }
T tempXY(const T &pressure, subregionEnum xy) const
Boundaries between subregions in region 3.
Real vaporTemperature(Real pressure) const override
Saturation temperature as a function of pressure.
static const std::string temperature
Definition: NS.h:59
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
virtual Real vaporPressure(Real temperature) const override
Vapor pressure.
void mooseError(Args &&... args) const

◆ subregion3ph()

unsigned int Water97FluidProperties::subregion3ph ( Real  pressure,
Real  enthalpy 
) const
protected

Provides the correct subregion index for a (P,h) point in region 3.

From Revised Supplementary Release on Backward Equations for the Functions T(p,h), v(p,h) and T(p,s), v(p,s) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
subregion index

Definition at line 687 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

688 {
689  unsigned int subregion;
690 
691  if (enthalpy <= b3ab(pressure))
692  subregion = 1;
693  else
694  subregion = 2;
695 
696  return subregion;
697 }
Real b3ab(Real pressure) const
Boundary between subregions a and b in region 3.
static const std::string pressure
Definition: NS.h:56

◆ subregionVolume()

template<typename T >
T Water97FluidProperties::subregionVolume ( const T pi,
const T theta,
Real  a,
Real  b,
Real  c,
Real  d,
Real  e,
unsigned int  sid 
) const

Specific volume in all subregions of region 3 EXCEPT subregion n (13).

Parameters
piscaled water pressure
thetascaled water temperature
ato e constants
sidsubregion ID of the subregion
Returns
volume water specific volume (m^3/kg)

Definition at line 2173 of file Water97FluidProperties.h.

Referenced by densityRegion3().

2175 {
2176  using std::pow;
2177 
2178  T sum = 0.0;
2179 
2180  for (std::size_t i = 0; i < _n3s[sid].size(); ++i)
2181  sum += _n3s[sid][i] * MathUtils::pow(pow(pi - a, c), _I3s[sid][i]) *
2182  MathUtils::pow(pow(theta - b, d), _J3s[sid][i]);
2183 
2184  return pow(sum, e);
2185 }
const std::vector< std::vector< Real > > _n3s
Constants for all 26 subregions in region 3.
const std::vector< std::vector< int > > _I3s
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::vector< std::vector< int > > _J3s
T pow(T x, int e)
MooseUnits pow(const MooseUnits &, int)

◆ T_drhodT_from_p_rho()

template<typename T >
std::pair< T, T > Water97FluidProperties::T_drhodT_from_p_rho ( const T p,
const T rho 
) const
private

Computes the temperature (first member of the pair) and the derivative of density (second member of the pair) with respect to temperature as a function of pressure and density.

Definition at line 2189 of file Water97FluidProperties.h.

Referenced by e_from_p_rho_template(), p_T_from_v_e(), and rho_T_from_v_e().

2190 {
2191  // For NewtonSolve
2192  // y = rho
2193  // x = p
2194  // z = T
2195  auto lambda =
2196  [this](const T & p, const T & temperature, T & rho, T & drho_dp, T & drho_dtemperature)
2197  { rho_from_p_T_template(p, temperature, rho, drho_dp, drho_dtemperature); };
2199  p, rho, _T_initial_guess, _tolerance, lambda, name() + "::T_drhodT_from_p_rho");
2200 }
T rho_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
std::pair< T, T > NewtonSolve(const T &x, const T &y, const Real z_initial_guess, const Real tolerance, const Functor &func, const std::string &caller_name, const unsigned int max_its=100)
NewtonSolve does a 1D Newton Solve to solve the equation y = f(x, z) for variable z...
const Real _tolerance
Newton&#39;s method may be used to convert between variable sets.
const std::string & name() const
const Real _T_initial_guess
Initial guess for temperature (or temperature used to compute the initial guess)

◆ T_from_p_h() [1/3]

Real Water97FluidProperties::T_from_p_h ( Real  pressure,
Real  enthalpy 
) const
overridevirtual

Backwards equation T(p, h) From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam.

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
temperature water temperature (K)

Definition at line 713 of file Water97FluidProperties.C.

Referenced by s_from_h_p().

714 {
715  const ADReal p = pressure;
716  const ADReal h = enthalpy;
717 
718  return T_from_p_h_ad(p, h).value();
719 }
DualNumber< Real, DNDerivativeType, true > ADReal
e e e e s T T T T T rho v v T e h
ADReal T_from_p_h_ad(const ADReal &pressure, const ADReal &enthalpy) const
AD version of backwards equation T(p, h) (used internally) From Revised Release on the IAPWS Industri...
static const std::string pressure
Definition: NS.h:56

◆ T_from_p_h() [2/3]

void Water97FluidProperties::T_from_p_h ( Real  p,
Real  h,
Real T,
Real dT_dp,
Real dT_dh 
) const
overridevirtual

Definition at line 722 of file Water97FluidProperties.C.

724 {
725  ADReal p = pressure;
726  Moose::derivInsert(p.derivatives(), 0, 1.0);
727  ADReal h = enthalpy;
728  Moose::derivInsert(h.derivatives(), 1, 1.0);
729 
730  const ADReal T = T_from_p_h_ad(p, h);
731 
732  temperature = T.value();
733  dT_dp = T.derivatives()[0];
734  dT_dh = T.derivatives()[1];
735 }
static const std::string temperature
Definition: NS.h:59
DualNumber< Real, DNDerivativeType, true > ADReal
e e e e s T T T T T rho v v T e h
ADReal T_from_p_h_ad(const ADReal &pressure, const ADReal &enthalpy) const
AD version of backwards equation T(p, h) (used internally) From Revised Release on the IAPWS Industri...
static const std::string pressure
Definition: NS.h:56
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)

◆ T_from_p_h() [3/3]

ADReal Water97FluidProperties::T_from_p_h ( const ADReal pressure,
const ADReal enthalpy 
) const
overridevirtual

Definition at line 738 of file Water97FluidProperties.C.

739 {
740  return T_from_p_h_ad(pressure, enthalpy);
741 }
ADReal T_from_p_h_ad(const ADReal &pressure, const ADReal &enthalpy) const
AD version of backwards equation T(p, h) (used internally) From Revised Release on the IAPWS Industri...
static const std::string pressure
Definition: NS.h:56

◆ T_from_p_h_ad()

ADReal Water97FluidProperties::T_from_p_h_ad ( const ADReal pressure,
const ADReal enthalpy 
) const
protected

AD version of backwards equation T(p, h) (used internally) From Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam.

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
temperature water temperature (K)

Definition at line 744 of file Water97FluidProperties.C.

Referenced by s_from_h_p(), and T_from_p_h().

745 {
746  ADReal temperature = 0.0;
747 
748  // Determine which region the point is in
749  const unsigned int region = inRegionPH(pressure.value(), enthalpy.value());
750 
751  switch (region)
752  {
753  case 1:
755  break;
756 
757  case 2:
758  {
759  // First, determine which subregion the point is in:
760  const unsigned int subregion = subregion2ph(pressure.value(), enthalpy.value());
761 
762  if (subregion == 1)
764  else if (subregion == 2)
766  else
768  break;
769  }
770 
771  case 3:
772  {
773  // First, determine which subregion the point is in:
774  const unsigned int subregion = subregion3ph(pressure.value(), enthalpy.value());
775 
776  if (subregion == 1)
778  else
780  break;
781  }
782 
783  case 5:
784  mooseError("temperature_from_ph() not implemented for region 5");
785  break;
786 
787  default:
788  mooseError("inRegionPH() has given an incorrect region");
789  }
790 
791  return temperature;
792 }
ADReal temperature_from_ph3b(const ADReal &pressure, const ADReal &enthalpy) const
Backwards equation T(p, h) in Region 3b Eq.
ADReal temperature_from_ph3a(const ADReal &pressure, const ADReal &enthalpy) const
Backwards equation T(p, h) in Region 3a Eq.
ADReal temperature_from_ph2b(const ADReal &pressure, const ADReal &enthalpy) const
Backwards equation T(p, h) in Region 2b Eq.
static const std::string temperature
Definition: NS.h:59
DualNumber< Real, DNDerivativeType, true > ADReal
unsigned int subregion2ph(Real pressure, Real enthalpy) const
Provides the correct subregion index for a (P,h) point in region 2.
ADReal temperature_from_ph2a(const ADReal &pressure, const ADReal &enthalpy) const
Backwards equation T(p, h) in Region 2a Eq.
ADReal temperature_from_ph1(const ADReal &pressure, const ADReal &enthalpy) const
Backwards equation T(p, h) in Region 1 Eq.
unsigned int subregion3ph(Real pressure, Real enthalpy) const
Provides the correct subregion index for a (P,h) point in region 3.
static const std::string pressure
Definition: NS.h:56
void mooseError(Args &&... args) const
unsigned int inRegionPH(Real pressure, Real enthalpy) const
Determines the phase region that the given pressure and enthaply values lie in.
ADReal temperature_from_ph2c(const ADReal &pressure, const ADReal &enthalpy) const
Backwards equation T(p, h) in Region 2c Eq.

◆ T_from_v_e() [1/2]

Real Water97FluidProperties::T_from_v_e ( Real  v,
Real  e 
) const
override

Definition at line 213 of file Water97FluidProperties.C.

214 {
215  return p_T_from_v_e(v, e).second;
216 }
std::pair< T, T > p_T_from_v_e(const T &v, const T &e) const
Computes the pressure (first member of the pair) and temperature (second member of the pair) as funct...

◆ T_from_v_e() [2/2]

ADReal Water97FluidProperties::T_from_v_e ( const ADReal v,
const ADReal e 
) const
override

Definition at line 219 of file Water97FluidProperties.C.

220 {
221  return p_T_from_v_e(v, e).second;
222 }
std::pair< T, T > p_T_from_v_e(const T &v, const T &e) const
Computes the pressure (first member of the pair) and temperature (second member of the pair) as funct...

◆ temperature_from_ph1()

ADReal Water97FluidProperties::temperature_from_ph1 ( const ADReal pressure,
const ADReal enthalpy 
) const
protected

Backwards equation T(p, h) in Region 1 Eq.

(11) from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
temperature water temperature (K)

Definition at line 795 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

796 {
797  using std::pow;
798 
799  const ADReal pi = pressure / 1.0e6;
800  const ADReal eta = enthalpy / 2500.0e3;
801  ADReal sum = 0.0;
802 
803  for (std::size_t i = 0; i < _nph1.size(); ++i)
804  sum += _nph1[i] * pow(pi, _Iph1[i]) * pow(eta + 1.0, _Jph1[i]);
805 
806  return sum;
807 }
const std::array< int, 20 > _Iph1
DualNumber< Real, DNDerivativeType, true > ADReal
const std::array< int, 20 > _Jph1
const std::array< Real, 20 > _nph1
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
static const std::string pressure
Definition: NS.h:56
MooseUnits pow(const MooseUnits &, int)
const Real pi

◆ temperature_from_ph2a()

ADReal Water97FluidProperties::temperature_from_ph2a ( const ADReal pressure,
const ADReal enthalpy 
) const
protected

Backwards equation T(p, h) in Region 2a Eq.

(22) from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
temperature water temperature (K)

Definition at line 810 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

812 {
813  using std::pow, std::abs;
814 
815  const ADReal pi = pressure / 1.0e6;
816  const ADReal eta = enthalpy / 2000.0e3;
817  ADReal sum = 0.0;
818 
819  // Factor out the negative in pow(eta - 2.1, _Jph2a[i]) to avoid fpe in dbg (see #13163)
820  const Real sgn = MathUtils::sign(eta.value() - 2.1);
821 
822  for (std::size_t i = 0; i < _nph2a.size(); ++i)
823  sum += _nph2a[i] * pow(pi, _Iph2a[i]) * pow(abs(eta - 2.1), _Jph2a[i]) * pow(sgn, _Jph2a[i]);
824 
825  return sum;
826 }
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
const std::array< Real, 36 > _nph2a
const std::array< int, 36 > _Jph2a
int sgn(T val)
The sign function.
Definition: Numerics.h:41
DualNumber< Real, DNDerivativeType, true > ADReal
const std::array< int, 36 > _Iph2a
T sign(T x)
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
MooseUnits pow(const MooseUnits &, int)
const Real pi

◆ temperature_from_ph2b()

ADReal Water97FluidProperties::temperature_from_ph2b ( const ADReal pressure,
const ADReal enthalpy 
) const
protected

Backwards equation T(p, h) in Region 2b Eq.

(23) from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
temperature water temperature (K)

Definition at line 829 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

831 {
832  using std::pow, std::abs;
833 
834  const ADReal pi = pressure / 1.0e6;
835  const ADReal eta = enthalpy / 2000.0e3;
836  ADReal sum = 0.0;
837 
838  // Factor out the negatives in pow(pi - 2.0, _Iph2b[i])* pow(eta - 2.6, _Jph2b[i])
839  // to avoid fpe in dbg (see #13163)
840  const Real sgn0 = MathUtils::sign(pi.value() - 2.0);
841  const Real sgn1 = MathUtils::sign(eta.value() - 2.6);
842 
843  for (std::size_t i = 0; i < _nph2b.size(); ++i)
844  sum += _nph2b[i] * pow(abs(pi - 2.0), _Iph2b[i]) * pow(sgn0, _Iph2b[i]) *
845  pow(abs(eta - 2.6), _Jph2b[i]) * pow(sgn1, _Jph2b[i]);
846 
847  return sum;
848 }
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
const std::array< Real, 38 > _nph2b
DualNumber< Real, DNDerivativeType, true > ADReal
const std::array< int, 38 > _Jph2b
T sign(T x)
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::array< int, 38 > _Iph2b
static const std::string pressure
Definition: NS.h:56
MooseUnits pow(const MooseUnits &, int)
const Real pi

◆ temperature_from_ph2c()

ADReal Water97FluidProperties::temperature_from_ph2c ( const ADReal pressure,
const ADReal enthalpy 
) const
protected

Backwards equation T(p, h) in Region 2c Eq.

(24) from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
temperature water temperature (K)

Definition at line 851 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

853 {
854  using std::pow, std::abs;
855 
856  const ADReal pi = pressure / 1.0e6;
857  const ADReal eta = enthalpy / 2000.0e3;
858  ADReal sum = 0.0;
859 
860  // Factor out the negative in pow(eta - 1.8, _Jph2c[i]) to avoid fpe in dbg (see #13163)
861  const Real sgn = MathUtils::sign(eta.value() - 1.8);
862 
863  for (std::size_t i = 0; i < _nph2c.size(); ++i)
864  sum += _nph2c[i] * pow(pi + 25.0, _Iph2c[i]) * pow(abs(eta - 1.8), _Jph2c[i]) *
865  pow(sgn, _Jph2c[i]);
866 
867  return sum;
868 }
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
const std::array< int, 23 > _Jph2c
int sgn(T val)
The sign function.
Definition: Numerics.h:41
DualNumber< Real, DNDerivativeType, true > ADReal
const std::array< int, 23 > _Iph2c
T sign(T x)
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56
const std::array< Real, 23 > _nph2c
MooseUnits pow(const MooseUnits &, int)
const Real pi

◆ temperature_from_ph3a()

ADReal Water97FluidProperties::temperature_from_ph3a ( const ADReal pressure,
const ADReal enthalpy 
) const
protected

Backwards equation T(p, h) in Region 3a Eq.

(2) from Revised Supplementary Release on Backward Equations for the Functions T(p,h), v(p,h) and T(p,s), v(p,s) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
temperature water temperature (K)

Definition at line 886 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

888 {
889  using std::pow;
890 
891  const ADReal pi = pressure / 100.0e6;
892  const ADReal eta = enthalpy / 2300.0e3;
893  ADReal sum = 0.0;
894 
895  for (std::size_t i = 0; i < _nph3a.size(); ++i)
896  sum += _nph3a[i] * pow(pi + 0.24, _Iph3a[i]) * pow(eta - 0.615, _Jph3a[i]);
897 
898  return sum * 760.0;
899 }
DualNumber< Real, DNDerivativeType, true > ADReal
const std::array< int, 31 > _Jph3a
const std::array< int, 31 > _Iph3a
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const std::array< Real, 31 > _nph3a
static const std::string pressure
Definition: NS.h:56
MooseUnits pow(const MooseUnits &, int)
const Real pi

◆ temperature_from_ph3b()

ADReal Water97FluidProperties::temperature_from_ph3b ( const ADReal pressure,
const ADReal enthalpy 
) const
protected

Backwards equation T(p, h) in Region 3b Eq.

(3) from Revised Supplementary Release on Backward Equations for the Functions T(p,h), v(p,h) and T(p,s), v(p,s) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
enthalpywater enthalpy (J/kg)
Returns
temperature water temperature (K)

Definition at line 902 of file Water97FluidProperties.C.

Referenced by T_from_p_h_ad().

904 {
905  using std::pow;
906 
907  const ADReal pi = pressure / 100.0e6;
908  const ADReal eta = enthalpy / 2800.0e3;
909  ADReal sum = 0.0;
910 
911  for (size_t i = 0; i < _nph3b.size(); ++i)
912  sum += _nph3b[i] * pow(pi + 0.298, _Iph3b[i]) * pow(eta - 0.72, _Jph3b[i]);
913 
914  return sum * 860.0;
915 }
const std::array< int, 33 > _Jph3b
const std::array< Real, 33 > _nph3b
const std::array< int, 33 > _Iph3b
DualNumber< Real, DNDerivativeType, true > ADReal
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
static const std::string pressure
Definition: NS.h:56
MooseUnits pow(const MooseUnits &, int)
const Real pi

◆ tempXY()

template<typename T >
T Water97FluidProperties::tempXY ( const T pressure,
subregionEnum  xy 
) const
protected

Boundaries between subregions in region 3.

From Revised Supplementary Release on Backward Equations for Specific Volume as a Function of Pressure and Temperature v(p,T) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Parameters
pressurewater pressure (Pa)
xystring to select the boundary between two subregions
Returns
temperature (K) along the boundary

Definition at line 1909 of file Water97FluidProperties.h.

Referenced by subregion3().

1910 {
1911  T pi = pressure / 1.0e6;
1912 
1913  // Choose the constants based on the string xy
1914  unsigned int row;
1915 
1916  switch (xy)
1917  {
1918  case AB:
1919  row = 0;
1920  break;
1921  case CD:
1922  row = 1;
1923  break;
1924  case GH:
1925  row = 2;
1926  break;
1927  case IJ:
1928  row = 3;
1929  break;
1930  case JK:
1931  row = 4;
1932  break;
1933  case MN:
1934  row = 5;
1935  break;
1936  case OP:
1937  row = 6;
1938  break;
1939  case QU:
1940  row = 7;
1941  break;
1942  case RX:
1943  row = 8;
1944  break;
1945  case UV:
1946  row = 9;
1947  break;
1948  case WX:
1949  row = 10;
1950  break;
1951  default:
1952  row = 0;
1953  }
1954 
1955  T sum = 0.0;
1956 
1957  using std::log;
1958 
1959  if (xy == AB || xy == OP || xy == WX)
1960  for (std::size_t i = 0; i < _tempXY_n[row].size(); ++i)
1961  sum += _tempXY_n[row][i] * MathUtils::pow(log(pi), _tempXY_I[row][i]);
1962  else if (xy == EF)
1963  sum += 3.727888004 * (pi - _p_critical / 1.0e6) + _T_critical;
1964  else
1965  for (std::size_t i = 0; i < _tempXY_n[row].size(); ++i)
1966  sum += _tempXY_n[row][i] * MathUtils::pow(pi, _tempXY_I[row][i]);
1967 
1968  return sum;
1969 }
const Real _T_critical
Critical temperature (K)
const Real _p_critical
Critical pressure (Pa)
auto log(const T &)
const std::vector< std::vector< Real > > _tempXY_n
static const std::string pressure
Definition: NS.h:56
T pow(T x, int e)
const Real pi
const std::vector< std::vector< int > > _tempXY_I
Constnats for the tempXY() method.

◆ threadJoin()

virtual void FluidProperties::threadJoin ( const UserObject )
inlinefinalvirtualinherited

Reimplemented from ThreadedGeneralUserObject.

Definition at line 37 of file FluidProperties.h.

37 {}

◆ triplePointPressure()

Real Water97FluidProperties::triplePointPressure ( ) const
overridevirtual

Triple point pressure.

Returns
triple point pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 69 of file Water97FluidProperties.C.

70 {
71  return _p_triple;
72 }
const Real _p_triple
Triple point pressure (Pa)

◆ triplePointTemperature()

Real Water97FluidProperties::triplePointTemperature ( ) const
overridevirtual

Triple point temperature.

Returns
triple point temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 75 of file Water97FluidProperties.C.

76 {
77  return _T_triple;
78 }
const Real _T_triple
Triple point temperature (K)

◆ v_e_from_p_T() [1/2]

template<typename CppType >
void SinglePhaseFluidProperties::v_e_from_p_T ( const CppType &  p,
const CppType &  T,
CppType &  v,
CppType &  e 
) const
inherited

Definition at line 604 of file SinglePhaseFluidProperties.h.

608 {
609  const CppType rho = rho_from_p_T(p, T);
610  v = 1.0 / rho;
611  try
612  {
613  // more likely to not involve a Newton search
614  e = e_from_p_T(p, T);
615  }
616  catch (...)
617  {
618  e = e_from_p_rho(p, rho);
619  }
620 }

◆ v_e_from_p_T() [2/2]

template<typename CppType >
void SinglePhaseFluidProperties::v_e_from_p_T ( const CppType &  p,
const CppType &  T,
CppType &  v,
CppType &  dv_dp,
CppType &  dv_dT,
CppType &  e,
CppType &  de_dp,
CppType &  de_dT 
) const
inherited

Definition at line 624 of file SinglePhaseFluidProperties.h.

632 {
633  CppType rho, drho_dp, drho_dT;
634  rho_from_p_T(p, T, rho, drho_dp, drho_dT);
635 
636  v = 1.0 / rho;
637  const CppType dv_drho = -1.0 / (rho * rho);
638  dv_dp = dv_drho * drho_dp;
639  dv_dT = dv_drho * drho_dT;
640 
641  CppType de_dp_partial, de_drho;
642  e_from_p_rho(p, rho, e, de_dp_partial, de_drho);
643  de_dp = de_dp_partial + de_drho * drho_dp;
644  de_dT = de_drho * drho_dT;
645 }

◆ v_e_spndl_from_T()

void SinglePhaseFluidProperties::v_e_spndl_from_T ( Real  T,
Real v,
Real e 
) const
virtualinherited

Specific internal energy from temperature and specific volume.

Parameters
[in]Ttemperature
[in]vspecific volume

Reimplemented in IdealGasFluidProperties, CaloricallyImperfectGas, and StiffenedGasFluidProperties.

Definition at line 485 of file SinglePhaseFluidProperties.C.

486 {
487  mooseError(__PRETTY_FUNCTION__, " not implemented.");
488 }
void mooseError(Args &&... args) const

◆ v_from_p_T() [1/4]

Real Water97FluidProperties::v_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtual

Definition at line 110 of file Water97FluidProperties.C.

111 {
113 }
T v_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ v_from_p_T() [2/4]

ADReal Water97FluidProperties::v_from_p_T ( const ADReal pressure,
const ADReal temperature 
) const
overridevirtual

Definition at line 116 of file Water97FluidProperties.C.

117 {
119 }
T v_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ v_from_p_T() [3/4]

void Water97FluidProperties::v_from_p_T ( Real  pressure,
Real  temperature,
Real v,
Real dv_dp,
Real dv_dT 
) const
overridevirtual

Definition at line 122 of file Water97FluidProperties.C.

124 {
125  v_from_p_T_template(pressure, temperature, v, dv_dp, dv_dT);
126 }
T v_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ v_from_p_T() [4/4]

void Water97FluidProperties::v_from_p_T ( const ADReal pressure,
const ADReal temperature,
ADReal v,
ADReal dv_dp,
ADReal dv_dT 
) const
overridevirtual

Definition at line 129 of file Water97FluidProperties.C.

134 {
135  v_from_p_T_template(pressure, temperature, v, dv_dp, dv_dT);
136 }
T v_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ v_from_p_T_template() [1/2]

template<typename T >
T Water97FluidProperties::v_from_p_T_template ( const T pressure,
const T temperature 
) const

Definition at line 2028 of file Water97FluidProperties.h.

Referenced by v_from_p_T(), and v_from_p_T_template().

2029 {
2031 }
T rho_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static const std::string pressure
Definition: NS.h:56

◆ v_from_p_T_template() [2/2]

template<typename T >
void Water97FluidProperties::v_from_p_T_template ( const T pressure,
const T temperature,
T v,
T dv_dp,
T dv_dt 
) const

Definition at line 2035 of file Water97FluidProperties.h.

2037 {
2038  auto functor = [this](const auto & pressure, const auto & temperature)
2039  { return this->v_from_p_T_template(pressure, temperature); };
2040 
2041  xyDerivatives(pressure, temperature, v, dv_dp, dv_dT, functor);
2042 }
T v_from_p_T_template(const T &pressure, const T &temperature) const
static const std::string temperature
Definition: NS.h:59
static void xyDerivatives(const T x, const T &y, T &z, T &dz_dx, T &dz_dy, const Functor &z_from_x_y)
Computes the dependent variable z and its derivatives with respect to the independent variables x and...
static const std::string pressure
Definition: NS.h:56

◆ validParams()

InputParameters Water97FluidProperties::validParams ( )
static

Definition at line 17 of file Water97FluidProperties.C.

18 {
20  params.addClassDescription("Fluid properties for water and steam (H2O) using IAPWS-IF97");
21  return params;
22 }
static InputParameters validParams()
void addClassDescription(const std::string &doc_string)

◆ vaporPressure() [1/3]

Real Water97FluidProperties::vaporPressure ( Real  T) const
overridevirtual

Vapor pressure.

Used to delineate liquid and gas phases. Valid for temperatures between the triple point temperature and the critical temperature

Parameters
Tfluid temperature (K)
[out]saturationpressure (Pa)
[out]derivativeof saturation pressure wrt temperature (Pa/K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 521 of file Water97FluidProperties.C.

Referenced by inRegion(), inRegionPH(), and subregion3().

522 {
523  // Check whether the input temperature is within the region of validity of this equation.
524  // Valid for 273.15 K <= t <= 647.096 K
525  if (temperature < 273.15 || temperature > _T_critical)
526  mooseException(name(),
527  ": vaporPressure(): Temperature ",
528  temperature,
529  " is outside range 273.15 K <= T "
530  "<= 647.096 K");
531 
532  Real theta, theta2, a, b, c, p;
533  theta = temperature + _n4[8] / (temperature - _n4[9]);
534  theta2 = theta * theta;
535  a = theta2 + _n4[0] * theta + _n4[1];
536  b = _n4[2] * theta2 + _n4[3] * theta + _n4[4];
537  c = _n4[5] * theta2 + _n4[6] * theta + _n4[7];
538  p = Utility::pow<4>(2.0 * c / (-b + std::sqrt(b * b - 4.0 * a * c)));
539 
540  return p * 1.e6;
541 }
const Real _T_critical
Critical temperature (K)
static const std::string temperature
Definition: NS.h:59
const std::string & name() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::array< Real, 10 > _n4
Constants for region 4 (the saturation curve up to the critical point)

◆ vaporPressure() [2/3]

void Water97FluidProperties::vaporPressure ( Real  temperature,
Real psat,
Real dpsat_dT 
) const
inlineoverridevirtual

Reimplemented from SinglePhaseFluidProperties.

Definition at line 2010 of file Water97FluidProperties.h.

2011 {
2012  vaporPressureTemplate(temperature, psat, dpsat_dT);
2013 }
void vaporPressureTemplate(const T &temperature, T &psat, T &dpsat_dT) const
static const std::string temperature
Definition: NS.h:59

◆ vaporPressure() [3/3]

ADReal SinglePhaseFluidProperties::vaporPressure ( const ADReal T) const
virtualinherited

Definition at line 389 of file SinglePhaseFluidProperties.C.

390 {
391  Real p = 0.0;
392  Real temperature = T.value();
393  Real dpdT = 0.0;
394 
395  vaporPressure(temperature, p, dpdT);
396 
397  ADReal result = p;
398  result.derivatives() = T.derivatives() * dpdT;
399 
400  return result;
401 }
static const std::string temperature
Definition: NS.h:59
DualNumber< Real, DNDerivativeType, true > ADReal
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real vaporPressure(Real T) const
Vapor pressure.

◆ vaporPressureTemplate()

template<typename T >
void Water97FluidProperties::vaporPressureTemplate ( const T temperature,
T psat,
T dpsat_dT 
) const

Definition at line 1973 of file Water97FluidProperties.h.

Referenced by vaporPressure().

1974 {
1975  using std::sqrt, std::pow;
1976 
1977  // Check whether the input temperature is within the region of validity of this equation.
1978  // Valid for 273.15 K <= t <= 647.096 K
1979  if (temperature < 273.15 || temperature > _T_critical)
1980  mooseException(name(),
1981  ": vaporPressure(): Temperature is outside range 273.15 K <= T <= 647.096 K");
1982 
1983  T theta, dtheta_dT, theta2, a, b, c, da_dtheta, db_dtheta, dc_dtheta;
1984  theta = temperature + _n4[8] / (temperature - _n4[9]);
1985  dtheta_dT = 1.0 - _n4[8] / (temperature - _n4[9]) / (temperature - _n4[9]);
1986  theta2 = theta * theta;
1987 
1988  a = theta2 + _n4[0] * theta + _n4[1];
1989  b = _n4[2] * theta2 + _n4[3] * theta + _n4[4];
1990  c = _n4[5] * theta2 + _n4[6] * theta + _n4[7];
1991 
1992  da_dtheta = 2.0 * theta + _n4[0];
1993  db_dtheta = 2.0 * _n4[2] * theta + _n4[3];
1994  dc_dtheta = 2.0 * _n4[5] * theta + _n4[6];
1995 
1996  T denominator = -b + sqrt(b * b - 4.0 * a * c);
1997 
1998  psat = Utility::pow<4>(2.0 * c / denominator) * 1.0e6;
1999 
2000  // The derivative wrt temperature is given by the chain rule
2001  T dpsat = 4.0 * Utility::pow<3>(2.0 * c / denominator);
2002  dpsat *= (2.0 * dc_dtheta / denominator -
2003  2.0 * c / denominator / denominator *
2004  (-db_dtheta + pow(b * b - 4.0 * a * c, -0.5) *
2005  (b * db_dtheta - 2.0 * da_dtheta * c - 2.0 * a * dc_dtheta)));
2006  dpsat_dT = dpsat * dtheta_dT * 1.0e6;
2007 }
const Real _T_critical
Critical temperature (K)
static const std::string temperature
Definition: NS.h:59
const std::string & name() const
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
MooseUnits pow(const MooseUnits &, int)
const std::array< Real, 10 > _n4
Constants for region 4 (the saturation curve up to the critical point)

◆ vaporTemperature() [1/3]

Real Water97FluidProperties::vaporTemperature ( Real  pressure) const
overridevirtual

Saturation temperature as a function of pressure.

Eq. (31) from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Valid for 611.213 Pa <= p <= 22.064 MPa

Parameters
pressurewater pressure (Pa)
Returns
saturation temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 565 of file Water97FluidProperties.C.

Referenced by inRegionPH(), and subregion3().

566 {
567  const ADReal p = pressure;
568 
569  return vaporTemperature_ad(p).value();
570 }
ADReal vaporTemperature_ad(const ADReal &pressure) const
AD version of saturation temperature as a function of pressure (used internally)
DualNumber< Real, DNDerivativeType, true > ADReal
static const std::string pressure
Definition: NS.h:56

◆ vaporTemperature() [2/3]

void Water97FluidProperties::vaporTemperature ( Real  pressure,
Real Tsat,
Real dTsat_dp 
) const
overridevirtual

Reimplemented from SinglePhaseFluidProperties.

Definition at line 573 of file Water97FluidProperties.C.

574 {
575  ADReal p = pressure;
576  Moose::derivInsert(p.derivatives(), 0, 1.0);
577 
578  const ADReal T = vaporTemperature_ad(p);
579 
580  Tsat = T.value();
581  dTsat_dp = T.derivatives()[0];
582 }
ADReal vaporTemperature_ad(const ADReal &pressure) const
AD version of saturation temperature as a function of pressure (used internally)
DualNumber< Real, DNDerivativeType, true > ADReal
static const std::string pressure
Definition: NS.h:56
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)

◆ vaporTemperature() [3/3]

ADReal SinglePhaseFluidProperties::vaporTemperature ( const ADReal p) const
virtualinherited

Definition at line 419 of file SinglePhaseFluidProperties.C.

420 {
421  Real T = 0.0;
422  Real pressure = p.value();
423  Real dTdp = 0.0;
424 
425  vaporTemperature(pressure, T, dTdp);
426 
427  ADReal result = T;
428  result.derivatives() = p.derivatives() * dTdp;
429 
430  return result;
431 }
DualNumber< Real, DNDerivativeType, true > ADReal
virtual Real vaporTemperature(Real p) const
Vapor temperature.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string pressure
Definition: NS.h:56

◆ vaporTemperature_ad()

ADReal Water97FluidProperties::vaporTemperature_ad ( const ADReal pressure) const
protected

AD version of saturation temperature as a function of pressure (used internally)

Eq. (31) from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam

Valid for 611.213 Pa <= p <= 22.064 MPa

Parameters
pressurewater pressure (Pa)
Returns
saturation temperature (K)

Definition at line 544 of file Water97FluidProperties.C.

Referenced by vaporTemperature().

545 {
546  using std::pow, std::sqrt;
547  // Check whether the input pressure is within the region of validity of this equation.
548  // Valid for 611.213 Pa <= p <= 22.064 MPa
549  if (pressure.value() < 611.23 || pressure.value() > _p_critical)
550  mooseException(name() + ": vaporTemperature(): Pressure ",
551  pressure.value(),
552  " is outside range 611.213 Pa <= p <= 22.064 MPa");
553 
554  const ADReal beta = pow(pressure / 1.e6, 0.25);
555  const ADReal beta2 = beta * beta;
556  const ADReal e = beta2 + _n4[2] * beta + _n4[5];
557  const ADReal f = _n4[0] * beta2 + _n4[3] * beta + _n4[6];
558  const ADReal g = _n4[1] * beta2 + _n4[4] * beta + _n4[7];
559  const ADReal d = 2.0 * g / (-f - sqrt(f * f - 4.0 * e * g));
560 
561  return (_n4[9] + d - sqrt((_n4[9] + d) * (_n4[9] + d) - 4.0 * (_n4[8] + _n4[9] * d))) / 2.0;
562 }
const Real _p_critical
Critical pressure (Pa)
DualNumber< Real, DNDerivativeType, true > ADReal
const std::string & name() const
Real f(Real x)
Test function for Brents method.
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh
static const std::string pressure
Definition: NS.h:56
MooseUnits pow(const MooseUnits &, int)
const std::array< Real, 10 > _n4
Constants for region 4 (the saturation curve up to the critical point)

◆ xyDerivatives()

template<typename T , typename Functor >
void SinglePhaseFluidProperties::xyDerivatives ( const T  x,
const T y,
T z,
T dz_dx,
T dz_dy,
const Functor z_from_x_y 
)
staticprotectedinherited

Computes the dependent variable z and its derivatives with respect to the independent variables x and y using the simple two parameter z_from_x_y functor.

The derivatives are computed using a compound automatic differentiation type

Definition at line 490 of file SinglePhaseFluidProperties.h.

Referenced by e_from_p_rho_template(), h_from_p_T_template(), rho_from_p_T_template(), and v_from_p_T_template().

492 {
494  const auto [zero, one] = makeZeroAndOne(x);
495 
496  CompoundType x_c(x, zero);
497  auto & x_cd = x_c.derivatives();
498  x_cd[0] = one;
499  CompoundType y_c(y, zero);
500  auto & y_cd = y_c.derivatives();
501  y_cd[1] = one;
502 
503  const auto z_c = z_from_x_y(x_c, y_c);
504  z = z_c.value();
505  dz_dx = z_c.derivatives()[0];
506  dz_dy = z_c.derivatives()[1];
507 }
static std::pair< T, T > makeZeroAndOne(const T &)
Given a type example, this method returns zero and unity representations of that type (first and seco...
const std::vector< double > y
const Number zero
const std::vector< double > x

Member Data Documentation

◆ _allow_imperfect_jacobians

const bool FluidProperties::_allow_imperfect_jacobians
protectedinherited

Flag to set unimplemented Jacobian entries to zero.

Definition at line 47 of file FluidProperties.h.

Referenced by VaporMixtureFluidProperties::imperfectJacobianMessage(), and SinglePhaseFluidProperties::unimplementedDerivativeMethod().

◆ _I1

const std::array<int, 34> Water97FluidProperties::_I1
protected
Initial value:
{{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2,
2, 2, 3, 3, 3, 4, 4, 4, 5, 8, 8, 21, 23, 29, 30, 31, 32}}

Definition at line 856 of file Water97FluidProperties.h.

Referenced by d2gamma1_dpi2(), d2gamma1_dpitau(), d2gamma1_dtau2(), dgamma1_dpi(), dgamma1_dtau(), and gamma1().

◆ _I2

const std::array<int, 43> Water97FluidProperties::_I2
protected
Initial value:
{{1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
4, 4, 4, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 10, 10,
10, 16, 16, 18, 20, 20, 20, 21, 22, 23, 24, 24, 24}}

Definition at line 901 of file Water97FluidProperties.h.

Referenced by d2gamma2_dpi2(), d2gamma2_dpitau(), d2gamma2_dtau2(), dgamma2_dpi(), dgamma2_dtau(), and gamma2().

◆ _I3

const std::array<int, 40> Water97FluidProperties::_I3
protected
Initial value:
{{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3,
3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9, 10, 10, 11}}

Definition at line 980 of file Water97FluidProperties.h.

Referenced by d2phi3_ddelta2(), d2phi3_ddeltatau(), d2phi3_dtau2(), dphi3_ddelta(), dphi3_dtau(), and phi3().

◆ _I3s

const std::vector<std::vector<int> > Water97FluidProperties::_I3s
protected

Definition at line 1266 of file Water97FluidProperties.h.

Referenced by densityRegion3(), and subregionVolume().

◆ _I5

const std::array<int, 6> Water97FluidProperties::_I5 {{1, 1, 1, 2, 2, 3}}
protected

◆ _Iph1

const std::array<int, 20> Water97FluidProperties::_Iph1 {{0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 6}}
protected

Definition at line 870 of file Water97FluidProperties.h.

Referenced by temperature_from_ph1().

◆ _Iph2a

const std::array<int, 36> Water97FluidProperties::_Iph2a
protected
Initial value:
{{0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7}}

Definition at line 920 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2a().

◆ _Iph2b

const std::array<int, 38> Water97FluidProperties::_Iph2b
protected
Initial value:
{{0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 6, 7, 7, 9, 9}}

Definition at line 939 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2b().

◆ _Iph2c

const std::array<int, 23> Water97FluidProperties::_Iph2c
protected
Initial value:
{
{-7, -7, -6, -6, -5, -5, -2, -2, -1, -1, 0, 0, 1, 1, 2, 6, 6, 6, 6, 6, 6, 6, 6}}

Definition at line 954 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2c().

◆ _Iph3a

const std::array<int, 31> Water97FluidProperties::_Iph3a
protected
Initial value:
{{-12, -12, -12, -12, -12, -12, -12, -12, -10, -10, -10,
-8, -8, -8, -8, -5, -3, -2, -2, -2, -1, -1,
0, 0, 1, 3, 3, 4, 4, 10, 12}}

Definition at line 1379 of file Water97FluidProperties.h.

Referenced by temperature_from_ph3a().

◆ _Iph3b

const std::array<int, 33> Water97FluidProperties::_Iph3b
protected
Initial value:
{{-12, -12, -10, -10, -10, -10, -10, -8, -8, -8, -8,
-8, -6, -6, -6, -4, -4, -3, -2, -2, -1, -1,
-1, -1, -1, -1, 0, 0, 1, 3, 5, 6, 8}}

Definition at line 1397 of file Water97FluidProperties.h.

Referenced by temperature_from_ph3b().

◆ _J02

const std::array<int, 9> Water97FluidProperties::_J02 {{0, 1, -5, -4, -3, -2, -1, 2, 3}}
protected

Definition at line 899 of file Water97FluidProperties.h.

Referenced by d2gamma2_dtau2(), dgamma2_dtau(), and gamma2().

◆ _J05

const std::array<int, 6> Water97FluidProperties::_J05 {{0, 1, -3, -2, -1, 2}}
protected

Constants for region 5.

Definition at line 1417 of file Water97FluidProperties.h.

Referenced by d2gamma5_dtau2(), dgamma5_dtau(), and gamma5().

◆ _J1

const std::array<int, 34> Water97FluidProperties::_J1
protected
Initial value:
{{-2, -1, 0, 1, 2, 3, 4, 5, -9, -7, -1, 0,
1, 3, -3, 0, 1, 3, 17, -4, 0, 6, -5, -2,
10, -8, -11, -6, -29, -31, -38, -39, -40, -41}}

Definition at line 859 of file Water97FluidProperties.h.

Referenced by d2gamma1_dpi2(), d2gamma1_dpitau(), d2gamma1_dtau2(), dgamma1_dpi(), dgamma1_dtau(), and gamma1().

◆ _J2

const std::array<int, 43> Water97FluidProperties::_J2
protected
Initial value:
{{0, 1, 2, 3, 6, 1, 2, 4, 7, 36, 0, 1, 3, 6, 35,
1, 2, 3, 7, 3, 16, 35, 0, 11, 25, 8, 36, 13, 4, 10,
14, 29, 50, 57, 20, 35, 48, 21, 53, 39, 26, 40, 58}}

Definition at line 905 of file Water97FluidProperties.h.

Referenced by d2gamma2_dpi2(), d2gamma2_dpitau(), d2gamma2_dtau2(), dgamma2_dpi(), dgamma2_dtau(), and gamma2().

◆ _J3

const std::array<int, 40> Water97FluidProperties::_J3
protected
Initial value:
{{0, 0, 1, 2, 7, 10, 12, 23, 2, 6, 15, 17, 0, 2,
6, 7, 22, 26, 0, 2, 4, 16, 26, 0, 2, 4, 26, 1,
3, 26, 0, 2, 26, 2, 26, 2, 26, 0, 1, 26}}

Definition at line 983 of file Water97FluidProperties.h.

Referenced by d2phi3_ddelta2(), d2phi3_ddeltatau(), d2phi3_dtau2(), dphi3_ddelta(), dphi3_dtau(), and phi3().

◆ _J3s

const std::vector<std::vector<int> > Water97FluidProperties::_J3s
protected

Definition at line 1318 of file Water97FluidProperties.h.

Referenced by densityRegion3(), and subregionVolume().

◆ _J5

const std::array<int, 6> Water97FluidProperties::_J5 {{1, 2, 3, 3, 9, 7}}
protected

◆ _Jph1

const std::array<int, 20> Water97FluidProperties::_Jph1
protected
Initial value:
{
{0, 1, 2, 6, 22, 32, 0, 1, 2, 3, 4, 10, 32, 10, 32, 10, 32, 32, 32, 32}}

Definition at line 872 of file Water97FluidProperties.h.

Referenced by temperature_from_ph1().

◆ _Jph2a

const std::array<int, 36> Water97FluidProperties::_Jph2a
protected
Initial value:
{{0, 1, 2, 3, 7, 20, 0, 1, 2, 3, 7, 9,
11, 18, 44, 0, 2, 7, 36, 38, 40, 42, 44, 24,
44, 12, 32, 44, 32, 36, 42, 34, 44, 28}}

Definition at line 923 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2a().

◆ _Jph2b

const std::array<int, 38> Water97FluidProperties::_Jph2b
protected
Initial value:
{{0, 1, 2, 12, 18, 24, 28, 40, 0, 2, 6, 12, 18,
24, 28, 40, 2, 8, 18, 40, 1, 2, 12, 24, 2, 12,
18, 24, 28, 40, 18, 24, 40, 28, 2, 28, 1, 40}}

Definition at line 942 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2b().

◆ _Jph2c

const std::array<int, 23> Water97FluidProperties::_Jph2c
protected
Initial value:
{
{0, 4, 0, 2, 0, 2, 0, 1, 0, 2, 0, 1, 4, 8, 4, 0, 1, 4, 10, 12, 16, 20, 22}}

Definition at line 957 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2c().

◆ _Jph3a

const std::array<int, 31> Water97FluidProperties::_Jph3a
protected
Initial value:
{{0, 1, 2, 6, 14, 16, 20, 22, 1, 5, 12, 0, 2, 4, 10, 2,
0, 1, 3, 4, 0, 2, 0, 1, 1, 0, 1, 0, 3, 4, 5}}

Definition at line 1383 of file Water97FluidProperties.h.

Referenced by temperature_from_ph3a().

◆ _Jph3b

const std::array<int, 33> Water97FluidProperties::_Jph3b
protected
Initial value:
{{0, 1, 0, 1, 5, 10, 12, 0, 1, 2, 4, 10, 0, 1, 2, 0, 1,
5, 0, 4, 2, 4, 6, 10, 14, 16, 0, 2, 1, 1, 1, 1, 1}}

Definition at line 1401 of file Water97FluidProperties.h.

Referenced by temperature_from_ph3b().

◆ _k_a

std::array<Real, 4> Water97FluidProperties::_k_a {{0.0102811, 0.0299621, 0.0156146, -0.00422464}}
protected

Constants for thermal conductivity.

Definition at line 1496 of file Water97FluidProperties.h.

Referenced by k_from_rho_T_template().

◆ _max_newton_its

const unsigned int SinglePhaseFluidProperties::_max_newton_its
protectedinherited

◆ _Mh2o

const Real Water97FluidProperties::_Mh2o
protected

Water molar mass (kg/mol)

Definition at line 822 of file Water97FluidProperties.h.

Referenced by molarMass().

◆ _mu_H0

const std::array<Real, 4> Water97FluidProperties::_mu_H0 {{1.67752, 2.20462, 0.6366564, -0.241605}}
protected

Constants from Release on the IAPWS Formulation 2008 for the Viscosity of Ordinary Water Substance.

Definition at line 1486 of file Water97FluidProperties.h.

Referenced by mu_from_rho_T(), and mu_from_rho_T_template().

◆ _mu_Hij

const std::array<std::array<Real, 7>, 6> Water97FluidProperties::_mu_Hij
protected
Initial value:
{
{{{5.20094e-1, 2.22531e-1, -2.81378e-1, 1.61913e-1, -3.25372e-2, 0.0, 0.0}},
{{8.50895e-2, 9.99115e-1, -9.06851e-1, 2.57399e-1, 0.0, 0.0, 0.0}},
{{-1.08374, 1.88797, -7.72479e-1, 0.0, 0.0, 0.0, 0.0}},
{{-2.89555e-1, 1.26613, -4.89837e-1, 0.0, 6.98452e-2, 0.0, -4.35673e-3}},
{{0.0, 0.0, -2.57040e-1, 0.0, 0.0, 8.72102e-3, 0.0}},
{{0.0, 1.20573e-1, 0.0, 0.0, 0.0, 0.0, -5.93264e-4}}}}

Definition at line 1487 of file Water97FluidProperties.h.

Referenced by mu_from_rho_T(), and mu_from_rho_T_template().

◆ _n02

const std::array<Real, 9> Water97FluidProperties::_n02
protected
Initial value:
{{-0.96927686500217e1,
0.10086655968018e2,
-0.56087911283020e-2,
0.71452738081455e-1,
-0.40710498223928e0,
0.14240819171444e1,
-0.43839511319450e1,
-0.28408632460772e0,
0.21268463753307e-1}}

Constants for region 2.

Definition at line 876 of file Water97FluidProperties.h.

Referenced by d2gamma2_dtau2(), dgamma2_dtau(), and gamma2().

◆ _n05

const std::array<Real, 6> Water97FluidProperties::_n05
protected
Initial value:
{{-0.13179983674201e2,
0.68540841634434e1,
-0.24805148933466e-1,
0.36901534980333,
-0.31161318213925e1,
-0.32961626538917}}

Definition at line 1418 of file Water97FluidProperties.h.

Referenced by d2gamma5_dtau2(), dgamma5_dtau(), and gamma5().

◆ _n1

const std::array<Real, 34> Water97FluidProperties::_n1
protected
Initial value:
{
{0.14632971213167e0, -0.84548187169114e0, -0.37563603672040e1, 0.33855169168385e1,
-0.95791963387872e0, 0.15772038513228e0, -0.16616417199501e-1, 0.81214629983568e-3,
0.28319080123804e-3, -0.60706301565874e-3, -0.18990068218419e-1, -0.32529748770505e-1,
-0.21841717175414e-1, -0.52838357969930e-4, -0.47184321073267e-3, -0.30001780793026e-3,
0.47661393906987e-4, -0.44141845330846e-5, -0.72694996297594e-15, -0.31679644845054e-4,
-0.28270797985312e-5, -0.85205128120103e-9, -0.22425281908000e-5, -0.65171222895601e-6,
-0.14341729937924e-12, -0.40516996860117e-6, -0.12734301741641e-8, -0.17424871230634e-9,
-0.68762131295531e-18, 0.14478307828521e-19, 0.26335781662795e-22, -0.11947622640071e-22,
0.18228094581404e-23, -0.93537087292458e-25}}

Reference constants used in to calculate thermophysical properties of water.

Taken from Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam and from Revised Supplementary Release on Backward Equations for Specific Volume as a Function of Pressure and Temperature v(p,T) for Region 3 of the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and SteamConstants for region 1

Definition at line 845 of file Water97FluidProperties.h.

Referenced by d2gamma1_dpi2(), d2gamma1_dpitau(), d2gamma1_dtau2(), dgamma1_dpi(), dgamma1_dtau(), and gamma1().

◆ _n2

const std::array<Real, 43> Water97FluidProperties::_n2
protected
Initial value:
{
{-0.17731742473213e-2, -0.17834862292358e-1, -0.45996013696365e-1, -0.57581259083432e-1,
-0.50325278727930e-1, -0.33032641670203e-4, -0.18948987516315e-3, -0.39392777243355e-2,
-0.43797295650573e-1, -0.26674547914087e-4, 0.20481737692309e-7, 0.43870667284435e-6,
-0.32277677238570e-4, -0.15033924542148e-2, -0.40668253562649e-1, -0.78847309559367e-9,
0.12790717852285e-7, 0.48225372718507e-6, 0.22922076337661e-5, -0.16714766451061e-10,
-0.21171472321355e-2, -0.23895741934104e2, -0.59059564324270e-17, -0.12621808899101e-5,
-0.38946842435739e-1, 0.11256211360459e-10, -0.82311340897998e1, 0.19809712802088e-7,
0.10406965210174e-18, -0.10234747095929e-12, -0.10018179379511e-8, -0.80882908646985e-10,
0.10693031879409e0, -0.33662250574171e0, 0.89185845355421e-24, 0.30629316876232e-12,
-0.42002467698208e-5, -0.59056029685639e-25, 0.37826947613457e-5, -0.12768608934681e-14,
0.73087610595061e-28, 0.55414715350778e-16, -0.94369707241210e-6}}

Definition at line 886 of file Water97FluidProperties.h.

Referenced by d2gamma2_dpi2(), d2gamma2_dpitau(), d2gamma2_dtau2(), dgamma2_dpi(), dgamma2_dtau(), and gamma2().

◆ _n23

const std::array<Real, 5> Water97FluidProperties::_n23
protected
Initial value:
{{0.34805185628969e3,
-0.11671859879975e1,
0.10192970039326e-2,
0.57254459862746e3,
0.13918839778870e2}}

Constants for the boundary between regions 2 and 3.

Definition at line 961 of file Water97FluidProperties.h.

Referenced by b23p(), and b23T().

◆ _n3

const std::array<Real, 40> Water97FluidProperties::_n3
protected
Initial value:
{
{0.10658070028513e1, -0.15732845290239e2, 0.20944396974307e2, -0.76867707878716e1,
0.26185947787954e1, -0.28080781148620e1, 0.12053369696517e1, -0.84566812812502e-2,
-0.12654315477714e1, -0.11524407806681e1, 0.88521043984318e0, -0.64207765181607e0,
0.38493460186671e0, -0.85214708824206e0, 0.48972281541877e1, -0.30502617256965e1,
0.39420536879154e-1, 0.12558408424308e0, -0.27999329698710e0, 0.13899799569460e1,
-0.20189915023570e1, -0.82147637173963e-2, -0.47596035734923e0, 0.43984074473500e-1,
-0.44476435428739e0, 0.90572070719733e0, 0.70522450087967e0, 0.10770512626332e0,
-0.32913623258954e0, -0.50871062041158e0, -0.22175400873096e-1, 0.94260751665092e-1,
0.16436278447961e0, -0.13503372241348e-1, -0.14834345352472e-1, 0.57922953628084e-3,
0.32308904703711e-2, 0.80964802996215e-4, -0.16557679795037e-3, -0.44923899061815e-4}}

Constants for region 3.

Definition at line 968 of file Water97FluidProperties.h.

Referenced by d2phi3_ddelta2(), d2phi3_ddeltatau(), d2phi3_dtau2(), dphi3_ddelta(), dphi3_dtau(), and phi3().

◆ _n3s

const std::vector<std::vector<Real> > Water97FluidProperties::_n3s
protected

Constants for all 26 subregions in region 3.

Definition at line 1019 of file Water97FluidProperties.h.

Referenced by densityRegion3(), and subregionVolume().

◆ _n4

const std::array<Real, 10> Water97FluidProperties::_n4
protected
Initial value:
{{0.11670521452767e4,
-0.72421316703206e6,
-0.17073846940092e2,
0.12020824702470e5,
-0.32325550322333e7,
0.14915108613530e2,
-0.48232657361591e4,
0.40511340542057e6,
-0.238555575678490,
0.65017534844798e3}}

Constants for region 4 (the saturation curve up to the critical point)

Definition at line 1405 of file Water97FluidProperties.h.

Referenced by vaporPressure(), vaporPressureTemplate(), and vaporTemperature_ad().

◆ _n5

const std::array<Real, 6> Water97FluidProperties::_n5
protected
Initial value:
{{0.15736404855259e-2,
0.90153761673944e-3,
-0.50270077677648e-2,
0.22440037409485e-5,
-0.41163275453471e-5,
0.37919454822955e-7}}

Definition at line 1427 of file Water97FluidProperties.h.

Referenced by d2gamma5_dpi2(), d2gamma5_dpitau(), d2gamma5_dtau2(), dgamma5_dpi(), dgamma5_dtau(), and gamma5().

◆ _nph1

const std::array<Real, 20> Water97FluidProperties::_nph1
protected
Initial value:
{
{-0.23872489924521e3, 0.40421188637945e3, 0.11349746881718e3, -0.58457616048039e1,
-0.15285482413140e-3, -0.10866707695377e-5, -0.13391744872602e2, 0.43211039183559e2,
-0.54010067170506e2, 0.30535892203916e2, -0.65964749423638e1, 0.93965400878363e-2,
0.11573647505340e-6, -0.25858641282073e-4, -0.40644363084799e-8, 0.66456186191635e-7,
0.80670734103027e-10, -0.93477771213947e-12, 0.58265442020601e-14, -0.15020185953503e-16}}

Definition at line 863 of file Water97FluidProperties.h.

Referenced by temperature_from_ph1().

◆ _nph2a

const std::array<Real, 36> Water97FluidProperties::_nph2a
protected
Initial value:
{
{0.10898952318288e4, 0.84951654495535e3, -0.10781748091826e3, 0.33153654801263e2,
-0.74232016790248e1, 0.11765048724356e2, 0.18445749355790e1, -0.41792700549624e1,
0.62478196935812e1, -0.17344563108114e2, -0.20058176862096e3, 0.27196065473796e3,
-0.45511318285818e3, 0.30919688604755e4, 0.25226640357872e6, -0.61707422868339e-2,
-0.31078046629583, 0.11670873077107e2, 0.12812798404046e9, -0.98554909623276e9,
0.28224546973002e10, -0.35948971410703e10, 0.17227349913197e10, -0.13551334240775e5,
0.12848734664650e8, 0.13865724283226e1, 0.23598832556514e6, -0.13105236545054e8,
0.73999835474766e4, -0.55196697030060e6, 0.37154085996233e7, 0.19127729239660e5,
-0.41535164835634e6, -0.62459855192507e2}}

Definition at line 909 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2a().

◆ _nph2b

const std::array<Real, 38> Water97FluidProperties::_nph2b
protected
Initial value:
{
{0.14895041079516e4, 0.74307798314034e3, -0.97708318797837e2, 0.24742464705674e1,
-0.63281320016026, 0.11385952129658e1, -0.47811863648625, 0.85208123431544e-2,
0.93747147377932, 0.33593118604916e1, 0.33809355601454e1, 0.16844539671904,
0.73875745236695, -0.47128737436186, 0.15020273139707, -0.21764114219750e-2,
-0.21810755324761e-1, -0.10829784403677, -0.46333324635812e-1, 0.71280351959551e-4,
0.11032831789999e-3, 0.18955248387902e-3, 0.30891541160537e-2, 0.13555504554949e-2,
0.28640237477456e-6, -0.10779857357512e-4, -0.76462712454814e-4, 0.14052392818316e-4,
-0.31083814331434e-4, -0.10302738212103e-5, 0.28217281635040e-6, 0.12704902271945e-5,
0.73803353468292e-7, -0.11030139238909e-7, -0.81456365207833e-13, -0.25180545682962e-10,
-0.17565233969407e-17, 0.86934156344163e-14}}

Definition at line 927 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2b().

◆ _nph2c

const std::array<Real, 23> Water97FluidProperties::_nph2c
protected
Initial value:
{
{-0.32368398555242e13, 0.73263350902181e13, 0.35825089945447e12, -0.58340131851590e12,
-0.10783068217470e11, 0.20825544563171e11, 0.61074783564516e6, 0.85977722535580e6,
-0.25745723604170e5, 0.31081088422714e5, 0.12082315865936e4, 0.48219755109255e3,
0.37966001272486e1, -0.10842984880077e2, -0.45364172676660e-1, 0.14559115658698e-12,
0.11261597407230e-11, -0.17804982240686e-10, 0.12324579690832e-6, -0.11606921130984e-5,
0.27846367088554e-4, -0.59270038474176e-3, 0.12918582991878e-2}}

Definition at line 946 of file Water97FluidProperties.h.

Referenced by temperature_from_ph2c().

◆ _nph3a

const std::array<Real, 31> Water97FluidProperties::_nph3a
protected
Initial value:
{
{-0.133645667811215e-6, 0.455912656802978e-5, -0.146294640700979e-4, 0.639341312970080e-2,
0.372783927268847e3, -0.718654377460447e4, 0.573494752103400e6, -0.267569329111439e7,
-0.334066283302614e-4, -0.245479214069597e-1, 0.478087847764996e2, 0.764664131818904e-5,
0.128350627676972e-2, 0.171219081377331e-1, -0.851007304583213e1, -0.136513461629781e-1,
-0.384460997596657e-5, 0.337423807911655e-2, -0.551624873066791, 0.729202277107470,
-0.992522757376041e-2, -.119308831407288, .793929190615421, .454270731799386,
.20999859125991, -0.642109823904738e-2, -0.235155868604540e-1, 0.252233108341612e-2,
-0.764885133368119e-2, 0.136176427574291e-1, -0.133027883575669e-1}}

Definition at line 1369 of file Water97FluidProperties.h.

Referenced by temperature_from_ph3a().

◆ _nph3b

const std::array<Real, 33> Water97FluidProperties::_nph3b
protected
Initial value:
{
{0.323254573644920e-4, -0.127575556587181e-3, -0.475851877356068e-3, 0.156183014181602e-2,
0.105724860113781, -0.858514221132534e2, 0.724140095480911e3, 0.296475810273257e-2,
-0.592721983365988e-2, -0.126305422818666e-1, -0.115716196364853, 0.849000969739595e2,
-0.108602260086615e-1, 0.154304475328851e-1, 0.750455441524466e-1, 0.252520973612982e-1,
-0.602507901232996e-1, -0.307622221350501e1, -0.574011959864879e-1, 0.503471360939849e1,
-0.925081888584834, 0.391733882917546e1, -0.773146007130190e2, 0.949308762098587e4,
-0.141043719679409e7, 0.849166230819026e7, 0.861095729446704, 0.323346442811720,
0.873281936020439, -0.436653048526683, 0.286596714529479, -0.131778331276228,
0.676682064330275e-2}}

Definition at line 1386 of file Water97FluidProperties.h.

Referenced by temperature_from_ph3b().

◆ _p_critical

const Real Water97FluidProperties::_p_critical
protected

Critical pressure (Pa)

Definition at line 826 of file Water97FluidProperties.h.

Referenced by criticalPressure(), tempXY(), and vaporTemperature_ad().

◆ _p_initial_guess

const Real SinglePhaseFluidProperties::_p_initial_guess
protectedinherited

◆ _p_star

const std::array<Real, 5> Water97FluidProperties::_p_star {{16.53e6, 1.0e6, 1.0e6, 1.0e6, 1.0e6}}
protected

◆ _p_triple

const Real Water97FluidProperties::_p_triple
protected

Triple point pressure (Pa)

Definition at line 832 of file Water97FluidProperties.h.

Referenced by triplePointPressure().

◆ _par3

const std::array<std::array<Real, 8>, 26> Water97FluidProperties::_par3
protected
Initial value:
{
{{{0.0024, 100.0, 760.0, 0.085, 0.817, 1.0, 1.0, 1.0}},
{{0.0041, 100.0, 860.0, 0.280, 0.779, 1.0, 1.0, 1.0}},
{{0.0022, 40.0, 690.0, 0.259, 0.903, 1.0, 1.0, 1.0}},
{{0.0029, 40.0, 690.0, 0.559, 0.939, 1.0, 1.0, 4.0}},
{{0.0032, 40.0, 710.0, 0.587, 0.918, 1.0, 1.0, 1.0}},
{{0.0064, 40.0, 730.0, 0.587, 0.891, 0.5, 1.0, 4.0}},
{{0.0027, 25.0, 660.0, 0.872, 0.971, 1.0, 1.0, 4.0}},
{{0.0032, 25.0, 660.0, 0.898, 0.983, 1.0, 1.0, 4.0}},
{{0.0041, 25.0, 660.0, 0.910, 0.984, 0.5, 1.0, 4.0}},
{{0.0054, 25.0, 670.0, 0.875, 0.964, 0.5, 1.0, 4.0}},
{{0.0077, 25.0, 680.0, 0.802, 0.935, 1.0, 1.0, 1.0}},
{{0.0026, 24.0, 650.0, 0.908, 0.989, 1.0, 1.0, 4.0}},
{{0.0028, 23.0, 650.0, 1.000, 0.997, 1.0, 0.25, 1.0}},
{{0.0031, 23.0, 650.0, 0.976, 0.997, 0.0, 0.0, 0.0}},
{{0.0034, 23.0, 650.0, 0.974, 0.996, 0.5, 1.0, 1.0}},
{{0.0041, 23.0, 650.0, 0.972, 0.997, 0.5, 1.0, 1.0}},
{{0.0022, 23.0, 650.0, 0.848, 0.983, 1.0, 1.0, 4.0}},
{{0.0054, 23.0, 650.0, 0.874, 0.982, 1.0, 1.0, 1.0}},
{{0.0022, 21.0, 640.0, 0.886, 0.990, 1.0, 1.0, 4.0}},
{{0.0088, 20.0, 650.0, 0.803, 1.020, 1.0, 1.0, 1.0}},
{{0.0026, 23.0, 650.0, 0.902, 0.988, 1.0, 1.0, 1.0}},
{{0.0031, 23.0, 650.0, 0.960, 0.995, 1.0, 1.0, 1.0}},
{{0.0039, 23.0, 650.0, 0.959, 0.995, 1.0, 1.0, 4.0}},
{{0.0049, 23.0, 650.0, 0.910, 0.988, 1.0, 1.0, 1.0}},
{{0.0031, 22.0, 650.0, 0.996, 0.994, 1.0, 1.0, 4.0}},
{{0.0038, 22.0, 650.0, 0.993, 0.994, 1.0, 1.0, 4.0}}}}

Definition at line 987 of file Water97FluidProperties.h.

Referenced by densityRegion3().

◆ _par3N

const std::array<unsigned int, 26> Water97FluidProperties::_par3N
protected
Initial value:
{{30, 32, 35, 38, 29, 42, 38, 29, 42, 29, 34, 43, 40,
39, 24, 27, 24, 27, 29, 33, 38, 39, 35, 36, 20, 23}}

Definition at line 1015 of file Water97FluidProperties.h.

Referenced by densityRegion3().

◆ _R

const Real FluidProperties::_R = 8.3144598
staticinherited

◆ _rho_critical

const Real Water97FluidProperties::_rho_critical
protected

◆ _Rw

const Real Water97FluidProperties::_Rw
protected

Specific gas constant for H2O (universal gas constant / molar mass of water - J/kg/K)

Definition at line 824 of file Water97FluidProperties.h.

Referenced by c_from_p_T_template(), cp_from_p_T_template(), cv_from_p_T_template(), e_from_p_T_template(), h_from_p_T_template(), and rho_from_p_T_template().

◆ _T_c2k

const Real FluidProperties::_T_c2k
protectedinherited

◆ _T_critical

const Real Water97FluidProperties::_T_critical
protected

◆ _T_initial_guess

const Real SinglePhaseFluidProperties::_T_initial_guess
protectedinherited

◆ _T_star

const std::array<Real, 5> Water97FluidProperties::_T_star {{1386.0, 540.0, _T_critical, 1.0, 1000.0}}
protected

◆ _T_triple

const Real Water97FluidProperties::_T_triple
protected

Triple point temperature (K)

Definition at line 834 of file Water97FluidProperties.h.

Referenced by triplePointTemperature().

◆ _tempXY_I

const std::vector<std::vector<int> > Water97FluidProperties::_tempXY_I
protected
Initial value:
{{0, 1, 2, -1, -2},
{0, 1, 2, 3},
{0, 1, 2, 3, 4},
{0, 1, 2, 3, 4},
{0, 1, 2, 3, 4},
{0, 1, 2, 3},
{0, 1, 2, -1, -2},
{0, 1, 2, 3},
{0, 1, 2, 3},
{0, 1, 2, 3, 4},
{0, 1, 2, -1, -2}}

Constnats for the tempXY() method.

Definition at line 1435 of file Water97FluidProperties.h.

Referenced by tempXY().

◆ _tempXY_n

const std::vector<std::vector<Real> > Water97FluidProperties::_tempXY_n
protected

Definition at line 1447 of file Water97FluidProperties.h.

Referenced by tempXY().

◆ _tolerance

const Real SinglePhaseFluidProperties::_tolerance
protectedinherited

◆ h

e e e e s T T T T T rho v v T e SinglePhaseFluidProperties::h
inherited

Definition at line 212 of file SinglePhaseFluidProperties.h.

Referenced by SodiumSaturationFluidProperties::e_from_p_T(), NaKFluidProperties::e_from_p_T(), NaClFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), TemperaturePressureFunctionFluidProperties::e_from_p_T(), LinearFluidProperties::e_from_v_h(), CaloricallyImperfectGas::e_from_v_h(), StiffenedGasFluidProperties::e_from_v_h(), IdealGasFluidProperties::e_from_v_h(), e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), TabulatedFluidProperties::g_from_v_e(), SodiumSaturationFluidProperties::h_from_p_T(), HelmholtzFluidProperties::h_from_p_T(), LinearFluidProperties::h_from_p_T(), StiffenedGasFluidProperties::h_from_p_T(), NaKFluidProperties::h_from_p_T(), LeadLithiumFluidProperties::h_from_p_T(), LeadBismuthFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), LeadFluidProperties::h_from_p_T(), CaloricallyImperfectGas::h_from_p_T(), NaClFluidProperties::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), SimpleFluidProperties::h_from_p_T(), TemperaturePressureFunctionFluidProperties::h_from_p_T(), h_from_p_T(), FlibeFluidProperties::h_from_p_T(), FlinakFluidProperties::h_from_p_T(), HeliumFluidProperties::h_from_p_T(), h_from_p_T_template(), StiffenedGasFluidProperties::h_from_T_v(), CaloricallyImperfectGas::h_from_T_v(), IdealGasFluidProperties::h_from_T_v(), LeadBismuthFluidProperties::h_from_v_e(), LeadLithiumFluidProperties::h_from_v_e(), LeadFluidProperties::h_from_v_e(), StiffenedGasFluidProperties::p_from_h_s(), CaloricallyImperfectGas::p_from_h_s(), IdealGasFluidProperties::p_from_h_s(), LeadLithiumFluidProperties::p_from_v_e(), LeadFluidProperties::p_from_v_e(), LeadBismuthFluidProperties::p_from_v_e(), SimpleFluidProperties::p_from_v_h(), SinglePhaseFluidProperties::p_T_from_h_s(), SinglePhaseFluidProperties::p_T_from_v_h(), p_T_from_v_h(), StiffenedGasFluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_h_p(), IdealGasFluidProperties::s_from_h_p(), TabulatedFluidProperties::s_from_h_p(), s_from_h_p(), CaloricallyImperfectGas::T_from_h(), TabulatedFluidProperties::T_from_h_s(), LeadLithiumFluidProperties::T_from_p_h(), LeadBismuthFluidProperties::T_from_p_h(), LeadFluidProperties::T_from_p_h(), TemperaturePressureFunctionFluidProperties::T_from_p_h(), CaloricallyImperfectGas::T_from_p_h(), FlibeFluidProperties::T_from_p_h(), FlinakFluidProperties::T_from_p_h(), HeliumFluidProperties::T_from_p_h(), IdealGasFluidProperties::T_from_p_h(), SimpleFluidProperties::T_from_p_h(), T_from_p_h(), and SimpleFluidProperties::T_from_v_h().

◆ p [1/10]

e e e e SinglePhaseFluidProperties::p
inherited

Definition at line 190 of file SinglePhaseFluidProperties.h.

Referenced by LinearFluidProperties::beta_from_p_T(), CaloricallyImperfectGas::c_from_p_T(), c_from_p_T(), StiffenedGasFluidProperties::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), LeadLithiumFluidProperties::cp_from_p_T(), LeadBismuthFluidProperties::cp_from_p_T(), LeadFluidProperties::cp_from_p_T(), IdealGasFluidProperties::cp_from_p_T(), TemperaturePressureFunctionFluidProperties::cp_from_p_T(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), cp_from_v_e(), LeadFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_p_T(), LeadBismuthFluidProperties::cv_from_p_T(), IdealGasFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), cv_from_v_e(), TestSinglePhaseFluidProperties::e_from_p_rho(), LinearTestFluidProperties::e_from_p_rho(), LinearFluidProperties::e_from_p_rho(), LeadLithiumFluidProperties::e_from_p_rho(), LeadBismuthFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), LeadFluidProperties::e_from_p_rho(), e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), TemperaturePressureFunctionFluidProperties::e_from_p_rho(), FlibeFluidProperties::e_from_p_rho(), FlinakFluidProperties::e_from_p_rho(), HeliumFluidProperties::e_from_p_rho(), e_from_p_rho_template(), LinearFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), CaloricallyImperfectGas::e_from_p_T(), IdealGasFluidProperties::e_from_p_T(), e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::g_from_v_e(), CaloricallyImperfectGas::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), TabulatedFluidProperties::g_from_v_e(), CaloricallyImperfectGas::gamma_from_p_T(), TabulatedFluidProperties::generateTabulatedData(), LinearFluidProperties::h_from_p_T(), StiffenedGasFluidProperties::h_from_p_T(), LeadLithiumFluidProperties::h_from_p_T(), LeadBismuthFluidProperties::h_from_p_T(), LeadFluidProperties::h_from_p_T(), CaloricallyImperfectGas::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), henryConstant(), LeadBismuthFluidProperties::k_from_p_T(), LeadLithiumFluidProperties::k_from_p_T(), LeadFluidProperties::k_from_p_T(), CaloricallyImperfectGas::k_from_p_T(), IdealGasFluidProperties::k_from_p_T(), CaloricallyImperfectGas::k_from_v_e(), TemperaturePressureFunctionFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), k_from_v_e_template(), LeadBismuthFluidProperties::mu_from_p_T(), LeadLithiumFluidProperties::mu_from_p_T(), LeadFluidProperties::mu_from_p_T(), CaloricallyImperfectGas::mu_from_v_e(), TemperaturePressureFunctionFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), StiffenedGasFluidProperties::p_from_h_s(), CaloricallyImperfectGas::p_from_h_s(), IdealGasFluidProperties::p_from_h_s(), StiffenedGasFluidProperties::p_from_T_v(), CaloricallyImperfectGas::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), LinearFluidProperties::p_from_v_e(), LeadLithiumFluidProperties::p_from_v_e(), LeadFluidProperties::p_from_v_e(), LeadBismuthFluidProperties::p_from_v_e(), LinearTestFluidProperties::p_from_v_e(), CaloricallyImperfectGas::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), TemperaturePressureFunctionFluidProperties::p_from_v_e(), SimpleFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), p_from_v_e_template(), SimpleFluidProperties::p_from_v_h(), SinglePhaseFluidProperties::p_T_from_v_e(), p_T_from_v_e(), SinglePhaseFluidProperties::rho_e_from_p_T(), StiffenedGasFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), CaloricallyImperfectGas::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), TestSinglePhaseFluidProperties::rho_from_p_T(), LinearTestFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), LinearFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), rho_T_from_v_e(), StiffenedGasFluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_h_p(), IdealGasFluidProperties::s_from_h_p(), s_from_h_p(), CaloricallyImperfectGas::s_from_p_T(), IdealGasFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), CaloricallyImperfectGas::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), IdealGasFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), T_drhodT_from_p_rho(), TabulatedFluidProperties::T_from_h_s(), LeadBismuthFluidProperties::T_from_p_h(), LeadLithiumFluidProperties::T_from_p_h(), LeadFluidProperties::T_from_p_h(), TemperaturePressureFunctionFluidProperties::T_from_p_h(), CaloricallyImperfectGas::T_from_p_h(), SimpleFluidProperties::T_from_p_h(), T_from_p_h(), NaKFluidProperties::T_from_p_rho(), LeadLithiumFluidProperties::T_from_p_rho(), LeadBismuthFluidProperties::T_from_p_rho(), LeadFluidProperties::T_from_p_rho(), TemperaturePressureFunctionFluidProperties::T_from_p_rho(), FlibeFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), FlinakFluidProperties::T_from_p_rho(), SimpleFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_s(), TemperaturePressureFunctionFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), SinglePhaseFluidProperties::v_e_from_p_T(), LeadBismuthFluidProperties::v_from_p_T(), LeadLithiumFluidProperties::v_from_p_T(), LeadFluidProperties::v_from_p_T(), vaporPressure(), SinglePhaseFluidProperties::vaporPressure(), vaporTemperature(), SinglePhaseFluidProperties::vaporTemperature(), and TabulatedFluidProperties::writeTabulatedData().

◆ p [2/10]

e e e e s SinglePhaseFluidProperties::p
inherited

Definition at line 192 of file SinglePhaseFluidProperties.h.

◆ p [3/10]

e e e e s T T SinglePhaseFluidProperties::p
inherited

Definition at line 196 of file SinglePhaseFluidProperties.h.

◆ p [4/10]

e e e e s T T T SinglePhaseFluidProperties::p
inherited

Definition at line 198 of file SinglePhaseFluidProperties.h.

◆ p [5/10]

e e e e s T T T T SinglePhaseFluidProperties::p
inherited

Definition at line 200 of file SinglePhaseFluidProperties.h.

◆ p [6/10]

e e e e s T T T T T SinglePhaseFluidProperties::p
inherited

Definition at line 202 of file SinglePhaseFluidProperties.h.

◆ p [7/10]

e e e e s T T T T T rho v v SinglePhaseFluidProperties::p
inherited

Definition at line 208 of file SinglePhaseFluidProperties.h.

◆ p [8/10]

e e e e s T T T T T rho v v T e p SinglePhaseFluidProperties::p
inherited

Definition at line 214 of file SinglePhaseFluidProperties.h.

◆ p [9/10]

e e e e s T T T T T rho v v T e p T SinglePhaseFluidProperties::p
inherited

Definition at line 216 of file SinglePhaseFluidProperties.h.

◆ p [10/10]

e e e e s T T T T T rho v v T e p T T SinglePhaseFluidProperties::p
inherited

Definition at line 218 of file SinglePhaseFluidProperties.h.

◆ rho

e e e e s T SinglePhaseFluidProperties::rho
inherited

Definition at line 194 of file SinglePhaseFluidProperties.h.

Referenced by HeliumFluidProperties::beta_from_p_T(), TemperaturePressureFunctionFluidProperties::beta_from_p_T(), FlinakFluidProperties::beta_from_p_T(), StiffenedGasFluidProperties::c2_from_p_rho(), HeliumFluidProperties::c_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_p_T(), LeadFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_p_T(), LeadBismuthFluidProperties::cv_from_p_T(), TemperaturePressureFunctionFluidProperties::cv_from_p_T(), TestSinglePhaseFluidProperties::e_from_p_rho(), LinearTestFluidProperties::e_from_p_rho(), LinearFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), LeadLithiumFluidProperties::e_from_p_rho(), LeadBismuthFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), LeadFluidProperties::e_from_p_rho(), e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), TemperaturePressureFunctionFluidProperties::e_from_p_rho(), FlibeFluidProperties::e_from_p_rho(), FlinakFluidProperties::e_from_p_rho(), HeliumFluidProperties::e_from_p_rho(), e_from_p_rho_template(), NaKFluidProperties::e_from_p_T(), LinearFluidProperties::e_from_p_T(), NaClFluidProperties::e_from_p_T(), SalineMoltenSaltFluidProperties::e_from_p_T(), LinearFluidProperties::h_from_p_T(), TemperaturePressureFunctionFluidProperties::h_from_p_T(), k_from_p_T_template(), CO2FluidProperties::mu_from_p_T(), NitrogenFluidProperties::mu_from_p_T(), NaKFluidProperties::mu_from_p_T(), HydrogenFluidProperties::mu_from_p_T(), mu_from_p_T(), mu_from_p_T_template(), mu_from_v_e(), p_from_v_e_template(), p_T_from_v_e(), SinglePhaseFluidProperties::rho_e_from_p_T(), StiffenedGasFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), TestSinglePhaseFluidProperties::rho_from_p_T(), LinearTestFluidProperties::rho_from_p_T(), SodiumSaturationFluidProperties::rho_from_p_T(), PBSodiumFluidProperties::rho_from_p_T(), HelmholtzFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), NaKFluidProperties::rho_from_p_T(), LinearFluidProperties::rho_from_p_T(), CO2FluidProperties::rho_from_p_T(), NaClFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), SalineMoltenSaltFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), rho_from_p_T(), SimpleFluidProperties::rho_from_p_T(), TemperaturePressureFunctionFluidProperties::rho_from_p_T(), FlibeFluidProperties::rho_from_p_T(), FlinakFluidProperties::rho_from_p_T(), HeliumFluidProperties::rho_from_p_T(), rho_from_p_T_template(), NitrogenFluidProperties::rho_mu_from_p_T(), HydrogenFluidProperties::rho_mu_from_p_T(), CO2FluidProperties::rho_mu_from_p_T(), rho_mu_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), rho_T_from_v_e(), T_drhodT_from_p_rho(), LeadBismuthFluidProperties::T_from_p_rho(), LeadLithiumFluidProperties::T_from_p_rho(), LeadFluidProperties::T_from_p_rho(), TemperaturePressureFunctionFluidProperties::T_from_p_rho(), FlibeFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), FlinakFluidProperties::T_from_p_rho(), SimpleFluidProperties::T_from_p_rho(), SinglePhaseFluidProperties::v_e_from_p_T(), TabulatedFluidProperties::v_from_p_T(), and TemperaturePressureFunctionFluidProperties::v_from_p_T().

◆ T [1/2]

e e e e s T T T T T rho SinglePhaseFluidProperties::T
inherited

Definition at line 204 of file SinglePhaseFluidProperties.h.

Referenced by LinearFluidProperties::beta_from_p_T(), IdealGasFluidProperties::beta_from_p_T(), LeadBismuthFluidProperties::bulk_modulus_from_p_T(), LeadLithiumFluidProperties::bulk_modulus_from_p_T(), LeadFluidProperties::bulk_modulus_from_p_T(), LeadLithiumFluidProperties::c_from_p_T(), CaloricallyImperfectGas::c_from_p_T(), c_from_p_T(), IdealGasFluidProperties::c_from_p_T(), c_from_p_T_template(), IdealGasFluidProperties::c_from_v_e(), LeadBismuthFluidProperties::c_from_v_e(), LeadLithiumFluidProperties::c_from_v_e(), LeadFluidProperties::c_from_v_e(), CaloricallyImperfectGas::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::checkInputVariables(), TabulatedFluidProperties::checkInputVariablesVE(), LeadBismuthFluidProperties::cp_from_p_T(), LeadLithiumFluidProperties::cp_from_p_T(), LeadFluidProperties::cp_from_p_T(), CaloricallyImperfectGas::cp_from_p_T(), IdealGasFluidProperties::cp_from_p_T(), TemperaturePressureFunctionFluidProperties::cp_from_p_T(), cp_from_p_T_template(), CaloricallyImperfectGas::cp_from_T(), CaloricallyImperfectGas::cp_from_v_e(), LeadLithiumFluidProperties::cp_from_v_e(), LeadBismuthFluidProperties::cp_from_v_e(), LeadFluidProperties::cp_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), cp_from_v_e(), LeadFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_p_T(), LeadBismuthFluidProperties::cv_from_p_T(), CaloricallyImperfectGas::cv_from_p_T(), IdealGasFluidProperties::cv_from_p_T(), cv_from_p_T_template(), CaloricallyImperfectGas::cv_from_T(), CaloricallyImperfectGas::cv_from_T_v(), CaloricallyImperfectGas::cv_from_v_e(), LeadLithiumFluidProperties::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), cv_from_v_e(), d2gamma1_dpi2(), d2gamma1_dpitau(), d2gamma1_dtau2(), d2gamma2_dpi2(), d2gamma2_dpitau(), d2gamma2_dtau2(), d2gamma5_dpi2(), d2gamma5_dpitau(), d2gamma5_dtau2(), d2phi3_ddelta2(), d2phi3_ddeltatau(), d2phi3_dtau2(), densityRegion3(), dgamma1_dpi(), dgamma1_dtau(), dgamma2_dpi(), dgamma2_dtau(), dgamma5_dpi(), dgamma5_dtau(), dphi3_ddelta(), dphi3_dtau(), TabulatedFluidProperties::e_from_p_rho(), LeadLithiumFluidProperties::e_from_p_rho(), LeadBismuthFluidProperties::e_from_p_rho(), LeadFluidProperties::e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), LinearFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), CaloricallyImperfectGas::e_from_p_T(), LeadFluidProperties::e_from_p_T(), IdealGasFluidProperties::e_from_p_T(), e_from_p_T_template(), CaloricallyImperfectGas::e_from_T(), StiffenedGasFluidProperties::e_from_T_v(), CaloricallyImperfectGas::e_from_T_v(), IdealGasFluidProperties::e_from_T_v(), HeliumFluidProperties::e_from_T_v(), CaloricallyImperfectGas::e_from_v_h(), e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::g_from_v_e(), CaloricallyImperfectGas::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), TabulatedFluidProperties::g_from_v_e(), gamma1(), gamma2(), gamma5(), CaloricallyImperfectGas::gamma_from_p_T(), LinearFluidProperties::h_from_p_T(), StiffenedGasFluidProperties::h_from_p_T(), LeadLithiumFluidProperties::h_from_p_T(), LeadBismuthFluidProperties::h_from_p_T(), LeadFluidProperties::h_from_p_T(), CaloricallyImperfectGas::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), h_from_p_T_template(), CaloricallyImperfectGas::h_from_T(), StiffenedGasFluidProperties::h_from_T_v(), CaloricallyImperfectGas::h_from_T_v(), IdealGasFluidProperties::h_from_T_v(), LeadLithiumFluidProperties::h_from_v_e(), LeadBismuthFluidProperties::h_from_v_e(), LeadFluidProperties::h_from_v_e(), henryConstant(), LeadBismuthFluidProperties::k_from_p_T(), LeadLithiumFluidProperties::k_from_p_T(), LeadFluidProperties::k_from_p_T(), CaloricallyImperfectGas::k_from_p_T(), IdealGasFluidProperties::k_from_p_T(), k_from_p_T_template(), k_from_rho_T_template(), CaloricallyImperfectGas::k_from_v_e(), LeadBismuthFluidProperties::k_from_v_e(), LeadLithiumFluidProperties::k_from_v_e(), LeadFluidProperties::k_from_v_e(), TemperaturePressureFunctionFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), HeliumFluidProperties::k_from_v_e(), SinglePhaseFluidProperties::makeZeroAndOne(), LeadBismuthFluidProperties::mu_from_p_T(), CaloricallyImperfectGas::mu_from_p_T(), LeadLithiumFluidProperties::mu_from_p_T(), LeadFluidProperties::mu_from_p_T(), IdealGasFluidProperties::mu_from_p_T(), mu_from_p_T_template(), mu_from_rho_T_template(), CaloricallyImperfectGas::mu_from_v_e(), LeadLithiumFluidProperties::mu_from_v_e(), LeadBismuthFluidProperties::mu_from_v_e(), LeadFluidProperties::mu_from_v_e(), TemperaturePressureFunctionFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), mu_from_v_e(), CaloricallyImperfectGas::p_from_h_s(), StiffenedGasFluidProperties::p_from_T_v(), CaloricallyImperfectGas::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), HeliumFluidProperties::p_from_T_v(), CaloricallyImperfectGas::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), TemperaturePressureFunctionFluidProperties::p_from_v_e(), p_from_v_e_template(), SimpleFluidProperties::p_from_v_h(), SinglePhaseFluidProperties::p_T_from_h_s(), SinglePhaseFluidProperties::p_T_from_v_e(), SinglePhaseFluidProperties::p_T_from_v_h(), p_T_from_v_h(), phi3(), SinglePhaseFluidProperties::rho_e_from_p_T(), StiffenedGasFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), CaloricallyImperfectGas::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), TestSinglePhaseFluidProperties::rho_from_p_T(), LinearTestFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), LinearFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), rho_from_p_T_template(), SinglePhaseFluidProperties::rho_mu_from_p_T(), CaloricallyImperfectGas::s_from_h_p(), TabulatedFluidProperties::s_from_h_p(), s_from_h_p(), CaloricallyImperfectGas::s_from_p_T(), IdealGasFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), StiffenedGasFluidProperties::s_from_T_v(), CaloricallyImperfectGas::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), CaloricallyImperfectGas::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), subregionVolume(), T_drhodT_from_p_rho(), TabulatedFluidProperties::T_from_h_s(), LeadLithiumFluidProperties::T_from_p_h(), LeadBismuthFluidProperties::T_from_p_h(), LeadFluidProperties::T_from_p_h(), HelmholtzFluidProperties::T_from_p_h(), TemperaturePressureFunctionFluidProperties::T_from_p_h(), CaloricallyImperfectGas::T_from_p_h(), IdealGasFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_h(), T_from_p_h(), NaKFluidProperties::T_from_p_rho(), LeadLithiumFluidProperties::T_from_p_rho(), LeadBismuthFluidProperties::T_from_p_rho(), LeadFluidProperties::T_from_p_rho(), TemperaturePressureFunctionFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), SimpleFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_s(), LinearFluidProperties::T_from_v_e(), LeadLithiumFluidProperties::T_from_v_e(), LinearTestFluidProperties::T_from_v_e(), LeadBismuthFluidProperties::T_from_v_e(), LeadFluidProperties::T_from_v_e(), CaloricallyImperfectGas::T_from_v_e(), TemperaturePressureFunctionFluidProperties::T_from_v_e(), IdealGasFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), HeliumFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_h(), tempXY(), SinglePhaseFluidProperties::v_e_from_p_T(), LeadLithiumFluidProperties::v_from_p_T(), LeadBismuthFluidProperties::v_from_p_T(), LeadFluidProperties::v_from_p_T(), SinglePhaseFluidProperties::vaporPressure(), vaporPressureTemplate(), vaporTemperature(), SinglePhaseFluidProperties::vaporTemperature(), and CaloricallyImperfectGas::Z_from_T().

◆ T [2/2]

e e e e s T T T T T rho v SinglePhaseFluidProperties::T
inherited

Definition at line 206 of file SinglePhaseFluidProperties.h.

◆ v [1/5]

SinglePhaseFluidProperties::v
inherited

Definition at line 182 of file SinglePhaseFluidProperties.h.

Referenced by StiffenedGasFluidProperties::c_from_v_e(), LinearFluidProperties::c_from_v_e(), TestSinglePhaseFluidProperties::c_from_v_e(), IdealGasFluidProperties::c_from_v_e(), LeadBismuthFluidProperties::c_from_v_e(), LeadLithiumFluidProperties::c_from_v_e(), LeadFluidProperties::c_from_v_e(), CaloricallyImperfectGas::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), c_from_v_e(), SimpleFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::checkInputVariablesVE(), LinearFluidProperties::cp_from_v_e(), StiffenedGasFluidProperties::cp_from_v_e(), CaloricallyImperfectGas::cp_from_v_e(), TestSinglePhaseFluidProperties::cp_from_v_e(), LeadBismuthFluidProperties::cp_from_v_e(), LeadLithiumFluidProperties::cp_from_v_e(), LeadFluidProperties::cp_from_v_e(), IdealGasFluidProperties::cp_from_v_e(), SimpleFluidProperties::cp_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), FlibeFluidProperties::cp_from_v_e(), FlinakFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), HeliumFluidProperties::cp_from_v_e(), cp_from_v_e(), FlibeFluidProperties::cv_from_p_T(), FlinakFluidProperties::cv_from_p_T(), StiffenedGasFluidProperties::cv_from_v_e(), LinearFluidProperties::cv_from_v_e(), TestSinglePhaseFluidProperties::cv_from_v_e(), CaloricallyImperfectGas::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadLithiumFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), IdealGasFluidProperties::cv_from_v_e(), SimpleFluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), FlibeFluidProperties::cv_from_v_e(), FlinakFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), cv_from_v_e(), HeliumFluidProperties::cv_from_v_e(), HeliumFluidProperties::e_from_p_rho(), SodiumSaturationFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), FlibeFluidProperties::e_from_p_T(), FlinakFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_T_v(), CaloricallyImperfectGas::e_from_T_v(), HeliumFluidProperties::e_from_T_v(), LinearFluidProperties::e_from_v_h(), CaloricallyImperfectGas::e_from_v_h(), StiffenedGasFluidProperties::e_from_v_h(), IdealGasFluidProperties::e_from_v_h(), e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::g_from_v_e(), CaloricallyImperfectGas::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), TabulatedFluidProperties::g_from_v_e(), CaloricallyImperfectGas::gamma_from_v_e(), TabulatedFluidProperties::generateVETabulatedData(), LeadBismuthFluidProperties::h_from_v_e(), LeadLithiumFluidProperties::h_from_v_e(), LeadFluidProperties::h_from_v_e(), StiffenedGasFluidProperties::k_from_v_e(), CaloricallyImperfectGas::k_from_v_e(), TestSinglePhaseFluidProperties::k_from_v_e(), LeadBismuthFluidProperties::k_from_v_e(), LeadLithiumFluidProperties::k_from_v_e(), LeadFluidProperties::k_from_v_e(), TemperaturePressureFunctionFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), FlibeFluidProperties::k_from_v_e(), FlinakFluidProperties::k_from_v_e(), HeliumFluidProperties::k_from_v_e(), k_from_v_e(), k_from_v_e_template(), LinearTestFluidProperties::mu_from_v_e(), TestSinglePhaseFluidProperties::mu_from_v_e(), CaloricallyImperfectGas::mu_from_v_e(), LeadBismuthFluidProperties::mu_from_v_e(), LeadLithiumFluidProperties::mu_from_v_e(), LeadFluidProperties::mu_from_v_e(), TemperaturePressureFunctionFluidProperties::mu_from_v_e(), FlibeFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), FlinakFluidProperties::mu_from_v_e(), mu_from_v_e(), HeliumFluidProperties::mu_from_v_e(), CaloricallyImperfectGas::p_from_h_s(), StiffenedGasFluidProperties::p_from_T_v(), CaloricallyImperfectGas::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), HeliumFluidProperties::p_from_T_v(), TestConservedVarFluidProperties::p_from_v_e(), LinearFluidProperties::p_from_v_e(), LeadBismuthFluidProperties::p_from_v_e(), LeadFluidProperties::p_from_v_e(), LeadLithiumFluidProperties::p_from_v_e(), LinearTestFluidProperties::p_from_v_e(), CaloricallyImperfectGas::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), SodiumSaturationFluidProperties::p_from_v_e(), TemperaturePressureFunctionFluidProperties::p_from_v_e(), p_from_v_e(), SimpleFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), p_from_v_e_template(), SimpleFluidProperties::p_from_v_h(), SinglePhaseFluidProperties::p_T_from_v_e(), p_T_from_v_e(), SinglePhaseFluidProperties::p_T_from_v_h(), p_T_from_v_h(), rho_T_from_v_e(), CaloricallyImperfectGas::s_from_h_p(), CaloricallyImperfectGas::s_from_p_T(), StiffenedGasFluidProperties::s_from_T_v(), CaloricallyImperfectGas::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), TestSinglePhaseFluidProperties::s_from_v_e(), CaloricallyImperfectGas::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), LinearFluidProperties::T_from_v_e(), LeadLithiumFluidProperties::T_from_v_e(), LeadBismuthFluidProperties::T_from_v_e(), LinearTestFluidProperties::T_from_v_e(), LeadFluidProperties::T_from_v_e(), CaloricallyImperfectGas::T_from_v_e(), TemperaturePressureFunctionFluidProperties::T_from_v_e(), SodiumSaturationFluidProperties::T_from_v_e(), IdealGasFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), HeliumFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_e(), T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_h(), SinglePhaseFluidProperties::v_e_from_p_T(), StiffenedGasFluidProperties::v_e_spndl_from_T(), CaloricallyImperfectGas::v_e_spndl_from_T(), IdealGasFluidProperties::v_e_spndl_from_T(), SodiumSaturationFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), v_from_p_T(), LeadLithiumFluidProperties::v_from_p_T(), LeadBismuthFluidProperties::v_from_p_T(), LeadFluidProperties::v_from_p_T(), TemperaturePressureFunctionFluidProperties::v_from_p_T(), FlibeFluidProperties::v_from_p_T(), FlinakFluidProperties::v_from_p_T(), v_from_p_T_template(), and TabulatedFluidProperties::writeTabulatedData().

◆ v [2/5]

e SinglePhaseFluidProperties::v
inherited

Definition at line 184 of file SinglePhaseFluidProperties.h.

◆ v [3/5]

e e SinglePhaseFluidProperties::v
inherited

Definition at line 186 of file SinglePhaseFluidProperties.h.

◆ v [4/5]

e e e SinglePhaseFluidProperties::v
inherited

Definition at line 188 of file SinglePhaseFluidProperties.h.

◆ v [5/5]

e e e e s T T T T T rho v v T SinglePhaseFluidProperties::v
inherited

Definition at line 210 of file SinglePhaseFluidProperties.h.


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