https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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 | Static Private Member Functions | Private Attributes | List of all members
CheckNaNsTabulatedFluidProperties Class Reference

Exposes TabulatedBicubicFluidProperties::checkNaNs and the specific volume grid for testing. More...

#include <CheckNaNsTabulatedFluidProperties.h>

Inheritance diagram for CheckNaNsTabulatedFluidProperties:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 CheckNaNsTabulatedFluidProperties (const InputParameters &parameters)
 
void setSpecificVolumeGrid (const std::vector< Real > &v)
 Set the specific volume grid and its bounds.
 
void checkNaNs (Real min_1, Real max_1, Real min_2, Real max_2, unsigned int i, Real &variable_1, Real &variable_2, unsigned int &num_nans_1, unsigned int &num_nans_2)
 If Newton Method jacobian produces NaNs, set variable to min or max depending on situation.
 
virtual void constructInterpolation () override
 
virtual void initialSetup () override
 
virtual std::string fluidName () const override
 Fluid name.
 
virtual Real molarMass () const override
 Molar mass [kg/mol].
 
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 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
 
virtual Real rho_from_p_s (Real p, Real s) const override
 
virtual void rho_from_p_s (Real p, Real s, Real &rho, Real &drho_dp, Real &drho_ds) 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
 
virtual void v_from_p_T (Real pressure, Real temperature, Real &v, Real &dv_dp, Real &dv_dT) const override
 
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
 
virtual void e_from_p_T (Real pressure, Real temperature, Real &e, Real &de_dp, Real &de_dT) const override
 
virtual Real e_from_p_rho (Real pressure, Real rho) const override
 
virtual ADReal e_from_p_rho (const ADReal &pressure, const ADReal &rho) const override
 
virtual void e_from_p_rho (Real pressure, Real rho, Real &e, Real &de_dp, Real &de_drho) const override
 
virtual Real T_from_p_rho (Real pressure, Real rho) const
 
virtual ADReal T_from_p_rho (const ADReal &pressure, const ADReal &rho) const
 
virtual void T_from_p_rho (Real pressure, Real rho, Real &T, Real &dT_dp, Real &dT_drho) const
 
virtual Real h_from_p_T (Real p, Real T) const override
 
virtual ADReal h_from_p_T (const ADReal &pressure, const ADReal &temperature) const override
 
virtual void h_from_p_T (Real pressure, Real temperature, Real &h, Real &dh_dp, Real &dh_dT) const override
 
virtual Real mu_from_p_T (Real pressure, Real temperature) const override
 
virtual void mu_from_p_T (Real pressure, Real temperature, Real &mu, Real &dmu_dp, Real &dmu_dT) const override
 
virtual Real cp_from_p_T (Real pressure, Real temperature) const override
 
virtual void cp_from_p_T (Real pressure, Real temperature, Real &cp, Real &dcp_dp, Real &dcp_dT) const override
 
virtual Real cv_from_p_T (Real pressure, Real temperature) const override
 
virtual void cv_from_p_T (Real pressure, Real temperature, Real &cv, Real &dcv_dp, Real &dcv_dT) const override
 
virtual Real c_from_p_T (Real pressure, Real temperature) const override
 
virtual void c_from_p_T (Real pressure, Real temperature, Real &c, Real &dc_dp, Real &dc_dT) const override
 
virtual Real k_from_p_T (Real pressure, Real temperature) const override
 
virtual void k_from_p_T (Real pressure, Real temperature, Real &k, Real &dk_dp, Real &dk_dT) const override
 
virtual Real s_from_p_T (Real pressure, Real temperature) const override
 
virtual void s_from_p_T (Real p, Real T, Real &s, Real &ds_dp, Real &ds_dT) const override
 
virtual std::vector< Real > henryCoefficients () const override
 The following routines are simply forwarded to the 'fp' companion FluidProperties as they are not included in the tabulations presently.
 
virtual Real vaporPressure (Real temperature) const override
 Vapor pressure.
 
virtual void vaporPressure (Real temperature, Real &psat, Real &dpsat_dT) const override
 
virtual ADReal vaporPressure (const ADReal &T) const
 
virtual Real vaporTemperature (Real pressure) const override
 Vapor temperature.
 
virtual void vaporTemperature (Real pressure, Real &Tsat, Real &dTsat_dp) const override
 
virtual ADReal vaporTemperature (const ADReal &p) const
 
virtual Real T_from_p_h (Real pressure, Real enthalpy) const override
 
virtual ADReal T_from_p_h (const ADReal &pressure, const ADReal &enthalpy) const override
 
virtual Real triplePointPressure () const override
 Triple point pressure.
 
virtual Real triplePointTemperature () const override
 Triple point temperature.
 
virtual Real criticalPressure () const override
 Critical pressure.
 
virtual Real criticalTemperature () const override
 Critical temperature.
 
virtual Real criticalDensity () const override
 Critical density.
 
virtual Real p_from_v_e (Real v, Real e) const override
 Derivatives like dc_dv & dc_de are computed using the chain rule dy/dx(p,T) = dy/dp * dp/dx + dy/dT * dT/dx where y = c, cp, cv... & x = v, e.
 
virtual void p_from_v_e (Real v, Real e, Real &p, Real &dp_dv, Real &dp_de) const override
 
virtual void p_from_v_e (const ADReal &v, const ADReal &e, ADReal &p, ADReal &dp_dv, ADReal &dp_de) const override
 
virtual Real T_from_v_e (Real v, Real e) const override
 
virtual void T_from_v_e (Real v, Real e, Real &T, Real &dT_dv, Real &dT_de) const override
 
virtual void T_from_v_e (const ADReal &v, const ADReal &e, ADReal &p, ADReal &dp_dv, ADReal &dp_de) const override
 
virtual Real c_from_v_e (Real v, Real e) const override
 
virtual void c_from_v_e (Real v, Real e, Real &c, Real &dc_dv, Real &dc_de) const override
 
virtual Real cp_from_v_e (Real v, Real e) const override
 
virtual void cp_from_v_e (Real v, Real e, Real &cp, Real &dcp_dv, Real &dcp_de) const override
 
virtual Real cv_from_v_e (Real v, Real e) const override
 
virtual void cv_from_v_e (Real v, Real e, Real &cv, Real &dcv_dv, Real &dcv_de) const override
 
virtual Real mu_from_v_e (Real v, Real e) const override
 
virtual void mu_from_v_e (Real v, Real e, Real &mu, Real &dmu_dv, Real &dmu_de) const override
 
virtual Real k_from_v_e (Real v, Real e) const override
 
virtual void k_from_v_e (Real v, Real e, Real &k, Real &dk_dv, Real &dk_de) const override
 
virtual Real g_from_v_e (Real v, Real e) const override
 
virtual Real e_from_v_h (Real v, Real h) const override
 
virtual void e_from_v_h (Real v, Real h, Real &e, Real &de_dv, Real &de_dh) const override
 
virtual Real T_from_h_s (Real h, Real s) const
 
virtual Real T_from_p_s (Real p, Real s) const
 
virtual void T_from_p_s (Real p, Real s, Real &T, Real &dT_dp, Real &dT_ds) const
 
virtual Real s_from_v_e (Real v, Real e) const override
 
virtual void s_from_v_e (Real v, Real e, Real &s, Real &ds_dv, Real &ds_de) const override
 
virtual Real s_from_h_p (Real h, Real pressure) const override
 
virtual void s_from_h_p (Real h, Real pressure, Real &s, Real &ds_dh, Real &ds_dp) const override
 
virtual Real criticalInternalEnergy () const
 Critical specific internal energy.
 
virtual Real e_spndl_from_v (Real v) const
 Specific internal energy from temperature and specific volume.
 
virtual void v_e_spndl_from_T (Real T, Real &v, Real &e) const
 Specific internal energy from temperature and specific volume.
 
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 (Real p, Real T, Real &rho, Real &mu) const
 Combined methods.
 
virtual void rho_mu_from_p_T (Real p, Real T, Real &rho, Real &drho_dp, Real &drho_dT, Real &mu, Real &dmu_dp, Real &dmu_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.
 
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.
 
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.
 
template<>
std::pair< Real, Real > makeZeroAndOne (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
 
virtual Real spatialValue (const Point &) const
 
virtual const std::vector< Point > spatialPoints () const
 
void setPrimaryThreadCopy (UserObject *primary)
 
UserObject * primaryThreadCopy ()
 
SubProblem & getSubProblem () const
 
bool shouldDuplicateInitialExecution () 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)
 
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< MooseObject > getSharedPtr ()
 
std::shared_ptr< const MooseObject > getSharedPtr () const
 
bool isKokkosObject () const
 
MooseApp & getMooseApp () 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 InputParameters & parameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (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 mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) 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 timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnum & getExecuteOnEnum () const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const T & getUserObject (const std::string &param_name, bool is_dependency=true) const
 
const T & getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectBase & getUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectBase & getUserObjectBaseByName (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)
 
std::pair< Moose::Kokkos::MaterialProperty< T, dimension >, std::set< SubdomainID > > getKokkosBlockMaterialProperty (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< SubdomainID > getMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryID > getMaterialPropertyBoundaryIDs (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)
 
MaterialBase & getMaterial (const std::string &name)
 
MaterialBase & getMaterial (const std::string &name)
 
MaterialBase & getMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBase & getMaterialByName (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 Function & getFunction (const std::string &name) const
 
const Function & getFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
Moose::Kokkos::Function getKokkosFunction (const std::string &name) const
 
const T & getKokkosFunction (const std::string &name) const
 
Moose::Kokkos::Function getKokkosFunctionByName (const FunctionName &name) const
 
const T & getKokkosFunctionByName (const FunctionName &name) const
 
bool hasKokkosFunction (const std::string &param_name) const
 
bool hasKokkosFunctionByName (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 VectorPostprocessorValue & getVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueOldByName (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
 
T & getSampler (const std::string &name)
 
Sampler & getSampler (const std::string &name)
 
T & getSamplerByName (const SamplerName &name)
 
Sampler & getSamplerByName (const SamplerName &name)
 
virtual void meshChanged ()
 
virtual void meshDisplaced ()
 
PerfGraph & perfGraph ()
 
const PostprocessorValue & getPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValue & getPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValue & getPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOlderByName (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 Distribution & getDistribution (const std::string &name) const
 
const T & getDistribution (const std::string &name) const
 
const Distribution & getDistribution (const std::string &name) const
 
const T & getDistribution (const std::string &name) const
 
const Distribution & getDistributionByName (const DistributionName &name) const
 
const T & getDistributionByName (const std::string &name) const
 
const Distribution & getDistributionByName (const DistributionName &name) const
 
const T & getDistributionByName (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, const bool show_trace=true)
 
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, NameFunc &&name_func)
 
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)
 
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  OOBBehavior {
  Ignore , Throw , DeclareInvalid , WarnInvalid ,
  SetToClosestBound
}
 Enum specifying all the behavior on out of bounds data options. More...
 

Protected Member Functions

void reshapeData2D (unsigned int nrow, unsigned int ncol, const std::vector< Real > &vec, std::vector< std::vector< Real > > &mat)
 Forms a 2D matrix from a single std::vector.
 
void checkOutofBounds (Real min, Real max, Real &variable, unsigned int &num_out_bounds)
 If values go out of user defined range during Newton Method inversion, set variable to min or max depending on situation.
 
void outputWarnings (unsigned int num_nans_p, unsigned int num_nans_T, unsigned int num_out_bounds_p, unsigned int num_out_bounds_T, unsigned int convergence_failures, unsigned int number_points, std::string variable_set)
 
void writeTabulatedData (std::string file_name)
 Writes tabulated data to a file.
 
template<typename T >
void checkInputVariables (T &pressure, T &temperature) const
 Checks that the inputs are within the range of the tabulated data, and throws an error if they are not.
 
template<typename T >
void checkInputVariablesVE (T &v, T &e) const
 Checks that the inputs are within the range of the tabulated data, and throws an error if they are not.
 
virtual void checkInitialGuess (bool post_reading_tabulation) const
 Checks initial guess for Newton Method.
 
void readFileTabulationData (bool use_pT)
 Read tabulation data from file.
 
void checkFileTabulationGrids (std::vector< Real > &v1, std::vector< Real > &v2, const std::string &file_name, const std::string &v1_name, const std::string &v2_name)
 Check that the tabulation grids in the file are correct (no repeats etc)
 
virtual void generateTabulatedData ()
 Generates a table of fluid properties by looping over pressure and temperature and calculating properties using the FluidProperties UserObject _fp.
 
virtual void generateVETabulatedData ()
 Generates a table of fluid properties by looping over specific volume and internal energy and calculating properties using the FluidProperties UserObject _fp.
 
void computePropertyIndicesInInterpolationVectors ()
 Retrieves the index for each property in the vector of interpolations.
 
void createVGridVector ()
 Create (or reset) the grid vectors for the specific volume and internal energy interpolations The order of priority for determining the range boundaries in v and e:
 
void createVEGridVectors ()
 
void createVHGridVectors ()
 Create (or reset) the grid vectors for the specific volume and enthalpy interpolation The order of priority for determining the range boundaries in v and h:
 
void missingVEInterpolationError (const std::string &function_name) const
 Standardized error message for missing interpolation.
 
void TabulationNotImplementedError (const std::string &desired_routine) const
 Utility to forward errors related to fluid properties methods not implemented.
 
void NeedTabulationOrFPError (const std::string &desired_routine, const std::string &needed_property) const
 Utility to forward errors related to fluid properties needing more data for their computation This should generally be used as an 'else' condition to if (_interpolate_property) / else if (_fp)
 
void NeedTabulationError (const std::string &needed_property) const
 Utility to forward errors related to properties being requested for tabulation, but no tabulation is present This should generally be used as an 'else' condition to if (_interpolate_needed_property)
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &name) const override
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override
 
virtual void addUserObjectDependencyHelper (const UserObjectBase &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 ReporterContextBase & getReporterContextBaseByName (const ReporterName &reporter_name) const
 
const ReporterName & getReporterName (const std::string &param_name) const
 
T & declareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const T & getRestartableData (const std::string &data_name) const
 
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 
const T & getMeshProperty (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 VariableValue & coupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledScalarValue (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 VariableValue & coupledVectorTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
const VariableValue & coupledMatrixTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagScalarValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::Scalar< const Real > kokkosCoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalar * getScalarVar (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 T & getReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const T & getReporterValueByName (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.
 
template<typename T >
static std::pair< T, T > makeZeroAndOne (const T &)
 Given a type example, this method returns zero and unity representations of that type (first and second members of returned pair respectively)
 
static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

FileName _file_name_in
 File name of input tabulated data file.
 
FileName _file_name_ve_in
 File name of input (v,e) tabulated data file.
 
FileName _file_name_out
 File name of output tabulated data file.
 
FileName _file_name_ve_out
 File name of output (v,e) tabulated data file.
 
const bool _save_file
 Whether to save a generated fluid properties file to disk.
 
std::vector< Real > _pressure
 Pressure vector.
 
std::vector< Real > _temperature
 Temperature vector.
 
std::vector< Real > _specific_volume
 Specific volume vector.
 
std::vector< Real > _internal_energy
 Specific internal energy vector.
 
std::vector< Real > _enthalpy
 Specific enthalpy vector.
 
const bool _create_direct_pT_interpolations
 Whether the object has direct (p,T) interpolations (whether created from file or from _fp)
 
const bool _create_direct_ve_interpolations
 Whether the object has direct (v,e) interpolations (whether created from file or from _fp)
 
std::vector< std::vector< Real > > _properties
 Tabulated fluid properties (read from file OR computed from _fp)
 
std::vector< std::vector< Real > > _properties_ve
 Tabulated fluid properties in (v,e) (read from file OR computed from _fp)
 
std::vector< std::unique_ptr< BidimensionalInterpolation > > _property_ipol
 Vector of bi-dimensional interpolation of fluid properties.
 
std::vector< std::unique_ptr< BidimensionalInterpolation > > _property_ve_ipol
 Vector of bi-dimensional interpolation of fluid properties directly in (v,e)
 
Real _temperature_min
 Minimum temperature in tabulated data.
 
Real _temperature_max
 Maximum temperature in tabulated data.
 
Real _pressure_min
 Minimum pressure in tabulated data.
 
Real _pressure_max
 Maximum pressure in tabulated data.
 
unsigned int _num_T
 Number of temperature points in the tabulated data.
 
unsigned int _num_p
 Number of pressure points in the tabulated data.
 
const SinglePhaseFluidProperties *const _fp
 SinglePhaseFluidPropertiesPT UserObject.
 
const bool _allow_fp_and_tabulation
 Whether to allow a fp object when a tabulation is in use.
 
MultiMooseEnum _interpolated_properties_enum
 Properties to be interpolated entered in the input file.
 
std::vector< std::string > _interpolated_properties
 List of properties to be interpolated.
 
bool _interpolate_density
 Set of flags to note whether a property is to be interpolated.
 
bool _interpolate_enthalpy
 
bool _interpolate_internal_energy
 
bool _interpolate_viscosity
 
bool _interpolate_k
 
bool _interpolate_c
 
bool _interpolate_cp
 
bool _interpolate_cv
 
bool _interpolate_entropy
 
bool _interpolate_pressure
 
bool _interpolate_temperature
 
unsigned int _density_idx
 Index of each property.
 
unsigned int _enthalpy_idx
 
unsigned int _internal_energy_idx
 
unsigned int _viscosity_idx
 
unsigned int _k_idx
 
unsigned int _c_idx
 
unsigned int _cp_idx
 
unsigned int _cv_idx
 
unsigned int _entropy_idx
 
unsigned int _p_idx
 
unsigned int _T_idx
 
MooseUtils::DelimitedFileReader _csv_reader
 The MOOSE delimited file reader.
 
bool _construct_pT_from_ve
 if the lookup table p(v, e) and T(v, e) should be constructed
 
bool _construct_pT_from_vh
 if the lookup table p(v, h) and T(v, h) should be constructed
 
bool _initial_setup_done
 keeps track of whether initialSetup has been performed
 
unsigned int _num_v
 Number of specific volume points in the tabulated data.
 
unsigned int _num_e
 Number of internal energy points in tabulated data.
 
bool _log_space_v
 log-space the specific volume interpolation grid axis instead of linear
 
bool _log_space_e
 log-space the internal energy interpolation grid axis instead of linear
 
bool _log_space_h
 log-space the enthalpy interpolation grid axis instead of linear
 
MooseEnum _OOBBehavior
 User-selected out-of-bounds behavior.
 
std::unique_ptr< BidimensionalInterpolation > _T_from_v_e_ipol
 Bi-dimensional interpolation of temperature from (v,e)
 
std::unique_ptr< BidimensionalInterpolation > _p_from_v_e_ipol
 Bi-dimensional interpolation of pressure from (v,e)
 
std::unique_ptr< BidimensionalInterpolation > _T_from_v_h_ipol
 Bi-dimensional interpolation of temperature from (v,h)
 
std::unique_ptr< BidimensionalInterpolation > _p_from_v_h_ipol
 Bidimensional interpolation of pressure from (v,h)
 
bool _e_bounds_specified
 Whether the specific internal energy bounds were set by the user.
 
bool _v_bounds_specified
 Whether the specific volume bounds were set by the user.
 
Real _e_min
 Minimum internal energy in tabulated data (can be user-specified)
 
Real _e_max
 Maximum internal energy in tabulated data (can be user-specified)
 
Real _v_min
 Minimum specific volume in tabulated data (can be user-specified)
 
Real _v_max
 Maximum specific volume in tabulated data (can be user-specified)
 
Real _h_min
 Minimum specific enthalpy in tabulated data.
 
Real _h_max
 Maximum specific enthalpy in tabulated data.
 
const Real _tolerance
 Newton's method may be used to convert between variable sets.
 
const Real _T_initial_guess
 Initial guess for temperature (or temperature used to compute the initial guess)
 
const Real _p_initial_guess
 Initial guess for pressure (or pressure used to compute the initial guess)
 
const unsigned int _max_newton_its
 Maximum number of iterations for the variable conversion newton solves.
 
const bool _verbose_newton
 Whether to output information about newton solves to console.
 
const Real _T_c2k
 Conversion of temperature from Celsius to Kelvin.
 
const bool _allow_imperfect_jacobians
 Flag to set unimplemented Jacobian entries to zero.
 
const Moose::CoordinateSystemType & _coord_sys
 
const THREAD_ID _tid
 
SubProblem & _subproblem
 
FEProblemBase & _fe_problem
 
SystemBase & _sys
 
Assembly & _assembly
 
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

void unimplementedDerivativeMethod (const std::string &property_function_name) const
 
const Moose::FunctionBase * getKokkosFunctionByNameHelper (const FunctionName &name) const
 
const UserObjectBase & getUserObjectFromFEProblem (const UserObjectName &object_name, const THREAD_ID tid=0) const
 
const T & castUserObject (const UserObjectBase &uo_base, const std::string &param_name="") const
 
void mooseObjectError (const std::string &param_name, std::stringstream &oss) const
 
const std::string & userObjectType (const UserObjectBase &uo) const
 
const std::string & userObjectName (const UserObjectBase &uo) const
 
const PostprocessorName & getPostprocessorNameInternal (const std::string &param_name, const unsigned int index, const bool allow_default_value=true) const
 
bool isDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
PostprocessorValue getDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
void checkParam (const std::string &param_name, const unsigned int index=std::numeric_limits< unsigned int >::max()) const
 
bool postprocessorsAdded () const
 
const VectorPostprocessorValue & getVectorPostprocessorByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name, bool broadcast, std::size_t t_index) const
 
const VectorPostprocessorContext< VectorPostprocessorValue > & getVectorPostprocessorContextByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool vectorPostprocessorsAdded () const
 
bool reportersAdded () const
 
void possiblyCheckHasReporter (const ReporterName &reporter_name, const std::string &param_name="") const
 
RestartableDataValue & registerRestartableDataOnApp (std::unique_ptr< RestartableDataValue > data, THREAD_ID tid) const
 
void registerRestartableNameWithFilterOnApp (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 
RestartableData< T > & declareRestartableDataHelper (const std::string &data_name, void *context, Args &&... args) const
 
virtual std::string meshPropertyPrefix (const std::string &data_name) const
 
const RestartableDataValue & getMeshPropertyInternal (const std::string &data_name, const std::string &prefix) const
 
void mooseErrorInternal (Args &&... args) const
 
const VariableValue * getDefaultValue (const std::string &var_name) const
 
const ADVariableValue * getADDefaultValue (const std::string &var_name) const
 
void checkVar (const std::string &var_name) const
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagScalarVariable (const std::string &var_name, const std::string &tag_name, unsigned int comp) const
 
Moose::MaterialDataType getMaterialDataType (const std::set< BoundaryID > &boundary_ids) const
 
unsigned int getMaxQps () const
 
void addConsumedPropertyName (const MooseObjectName &obj_name, const std::string &prop_name)
 
const PostprocessorValue & getPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 

Private Attributes

UserObject * _primary_thread_copy
 
std::set< std::string > _supplied_uo
 
const ParallelParamObject & _parent
 
const MooseBase & _si_moose_base
 
const FEProblemBase * _si_problem
 
ExecFlagEnum _empty_execute_enum
 
const MooseObject & _fni_object
 
const InputParameters & _fni_params
 
FEProblemBase & _fni_feproblem
 
const THREAD_ID _fni_tid
 
const MooseObject & _uoi_moose_object
 
const FEProblemBase & _uoi_feproblem
 
const THREAD_ID _uoi_tid
 
const MooseObject & _ppi_moose_object
 
const InputParameters & _ppi_params
 
const FEProblemBase & _ppi_feproblem
 
std::map< PostprocessorName, std::unique_ptr< PostprocessorValue > > _default_values
 
const bool _broadcast_by_default
 
const MooseObject & _vpi_moose_object
 
const FEProblemBase & _vpi_feproblem
 
const THREAD_ID _vpi_tid
 
const InputParameters & _ri_params
 
FEProblemBase & _ri_fe_problem_base
 
const ReporterData & _ri_reporter_data
 
const MooseObject & _ri_moose_object
 
const InputParameters & _dni_params
 
FEProblemBase & _dni_feproblem
 
const MooseObject *const _dni_moose_object_ptr
 
const InputParameters & _si_params
 
FEProblemBase & _si_feproblem
 
THREAD_ID _si_tid
 
const RestartableDataMapName _metaname
 
std::string _restartable_name
 
MooseApp & _meta_data_app
 
const MooseObject *const _meta_data_object
 
const InputParameters & _sc_parameters
 
const std::string & _sc_name
 
const bool _sc_is_implicit
 
std::unordered_map< std::string, std::vector< MooseVariableScalar * > > _coupled_scalar_vars
 
std::unordered_map< std::string, std::unique_ptr< VariableValue > > _default_value
 
std::unordered_map< std::string, std::unique_ptr< ADVariableValue > > _dual_default_value
 
std::vector< MooseVariableScalar * > _coupled_moose_scalar_vars
 
std::unordered_map< std::string, std::vector< MooseVariableFieldBase * > > _sc_coupled_vars
 
std::set< TagID > _sc_coupleable_vector_tags
 
std::set< TagID > _sc_coupleable_matrix_tags
 
const MooseObject & _mi_moose_object
 
const bool _mi_boundary_restricted
 
const std::set< SubdomainID > & _mi_block_ids
 
const std::set< BoundaryID > & _mi_boundary_ids
 
std::vector< std::unique_ptr< OptionalMaterialPropertyProxyBase< MaterialPropertyInterface > > > _optional_property_proxies
 
const std::string _ti_name
 
 propfunc (p, v, e) propfunc(T
 Compute a fluid property given for the state defined by two given properties.
 
e 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 T e propfuncWithDefault (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
 
e 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 T e h
 

Detailed Description

Exposes TabulatedBicubicFluidProperties::checkNaNs and the specific volume grid for testing.

Definition at line 18 of file CheckNaNsTabulatedFluidProperties.h.

Member Enumeration Documentation

◆ OOBBehavior

enum TabulatedFluidProperties::OOBBehavior
protectedinherited

Enum specifying all the behavior on out of bounds data options.

Enumerator
Ignore 
Throw 
DeclareInvalid 
WarnInvalid 
SetToClosestBound 

Definition at line 383 of file TabulatedFluidProperties.h.

Constructor & Destructor Documentation

◆ CheckNaNsTabulatedFluidProperties()

CheckNaNsTabulatedFluidProperties::CheckNaNsTabulatedFluidProperties ( const InputParameters &  parameters)

Definition at line 20 of file CheckNaNsTabulatedFluidProperties.C.

23{
24}
const InputParameters & parameters() const
Class for fluid properties read from a file.

Member Function Documentation

◆ c_from_p_T() [1/2]

Real TabulatedFluidProperties::c_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Definition at line 1030 of file TabulatedFluidProperties.C.

1031{
1033 {
1034 checkInputVariables(pressure, temperature);
1035 return _property_ipol[_c_idx]->sample(pressure, temperature);
1036 }
1037 else
1038 {
1039 if (_fp)
1040 return _fp->c_from_p_T(pressure, temperature);
1041 else
1042 NeedTabulationOrFPError("c_from_p_T", "c");
1043 }
1044}
const SinglePhaseFluidProperties *const _fp
SinglePhaseFluidPropertiesPT UserObject.
void checkInputVariables(T &pressure, T &temperature) const
Checks that the inputs are within the range of the tabulated data, and throws an error if they are no...
const bool _create_direct_pT_interpolations
Whether the object has direct (p,T) interpolations (whether created from file or from _fp)
void NeedTabulationOrFPError(const std::string &desired_routine, const std::string &needed_property) const
Utility to forward errors related to fluid properties needing more data for their computation This sh...
std::vector< std::unique_ptr< BidimensionalInterpolation > > _property_ipol
Vector of bi-dimensional interpolation of fluid properties.

Referenced by TabulatedFluidProperties::c_from_v_e(), and TabulatedFluidProperties::c_from_v_e().

◆ c_from_p_T() [2/2]

void TabulatedFluidProperties::c_from_p_T ( Real  pressure,
Real  temperature,
Real &  c,
Real &  dc_dp,
Real &  dc_dT 
) const
overridevirtualinherited

Definition at line 1047 of file TabulatedFluidProperties.C.

1049{
1051 {
1052 checkInputVariables(pressure, temperature);
1053 _property_ipol[_c_idx]->sampleValueAndDerivatives(pressure, temperature, c, dc_dp, dc_dT);
1054 }
1055 else
1056 {
1057 if (_fp)
1058 _fp->c_from_p_T(pressure, temperature, c, dc_dp, dc_dT);
1059 else
1060 NeedTabulationOrFPError("c_from_p_T with derivatives", "c");
1061 }
1062}

◆ c_from_v_e() [1/2]

Real TabulatedFluidProperties::c_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

Definition at line 1489 of file TabulatedFluidProperties.C.

1490{
1492 missingVEInterpolationError(__PRETTY_FUNCTION__);
1494
1496 return _property_ve_ipol[_c_idx]->sample(v, e);
1497 else if (_construct_pT_from_ve)
1498 {
1499 Real p = _p_from_v_e_ipol->sample(v, e);
1500 Real T = _T_from_v_e_ipol->sample(v, e);
1501 return c_from_p_T(p, T);
1502 }
1503 else if (_fp)
1504 return _fp->c_from_v_e(v, e);
1505 else
1506 NeedTabulationOrFPError("c_from_v_e", "c");
1507}
std::unique_ptr< BidimensionalInterpolation > _T_from_v_e_ipol
Bi-dimensional interpolation of temperature from (v,e)
void missingVEInterpolationError(const std::string &function_name) const
Standardized error message for missing interpolation.
const bool _create_direct_ve_interpolations
Whether the object has direct (v,e) interpolations (whether created from file or from _fp)
std::vector< std::unique_ptr< BidimensionalInterpolation > > _property_ve_ipol
Vector of bi-dimensional interpolation of fluid properties directly in (v,e)
std::unique_ptr< BidimensionalInterpolation > _p_from_v_e_ipol
Bi-dimensional interpolation of pressure from (v,e)
void checkInputVariablesVE(T &v, T &e) const
Checks that the inputs are within the range of the tabulated data, and throws an error if they are no...
bool _construct_pT_from_ve
if the lookup table p(v, e) and T(v, e) should be constructed
virtual Real c_from_p_T(Real pressure, Real temperature) const override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Referenced by TabulatedFluidProperties::writeTabulatedData().

◆ c_from_v_e() [2/2]

void TabulatedFluidProperties::c_from_v_e ( Real  v,
Real  e,
Real &  c,
Real &  dc_dv,
Real &  dc_de 
) const
overridevirtualinherited

Definition at line 1510 of file TabulatedFluidProperties.C.

1511{
1513 missingVEInterpolationError(__PRETTY_FUNCTION__);
1515
1517 _property_ve_ipol[_c_idx]->sampleValueAndDerivatives(v, e, c, dc_dv, dc_de);
1518 else if (_construct_pT_from_ve)
1519 {
1520 Real p, dp_dv, dp_de;
1521 _p_from_v_e_ipol->sampleValueAndDerivatives(v, e, p, dp_dv, dp_de);
1522 Real T, dT_dv, dT_de;
1523 _T_from_v_e_ipol->sampleValueAndDerivatives(v, e, T, dT_dv, dT_de);
1524 Real dc_dp, dc_dT;
1525 c_from_p_T(p, T, c, dc_dp, dc_dT);
1526 dc_dv = dc_dp * dp_dv + dc_dT * dT_dv;
1527 dc_de = dc_dp * dp_de + dc_dT * dT_de;
1528 }
1529 else if (_fp)
1530 _fp->c_from_v_e(v, e, c, dc_dv, dc_de);
1531 else
1532 NeedTabulationOrFPError("c_from_v_e with derivatives", "c");
1533}

◆ checkFileTabulationGrids()

void TabulatedFluidProperties::checkFileTabulationGrids ( std::vector< Real > &  v1,
std::vector< Real > &  v2,
const std::string &  file_name,
const std::string &  v1_name,
const std::string &  v2_name 
)
protectedinherited

Check that the tabulation grids in the file are correct (no repeats etc)

Parameters
v1the first grid axis (pressure for pT grid)
v2the second grid axis (temperature for pT grid)
file_namethe name of the tabulation file

Definition at line 2510 of file TabulatedFluidProperties.C.

2515{
2516 // NOTE: We kept the comments in terms of pressure & temperature for clarity
2517 // Pressure (v1) and temperature (v2) data contains duplicates due to the csv format.
2518 // First, check that pressure (v1) is monotonically increasing
2519 if (!std::is_sorted(v1.begin(), v1.end()))
2520 mooseError("The column data for ", v1_name, " is not monotonically increasing in ", file_name);
2521
2522 // The first pressure (v1) value is repeated for each temperature (v2) value. Counting the
2523 // number of repeats provides the number of temperature (v2) values
2524 auto num_v2 = std::count(v1.begin(), v1.end(), v1.front());
2525
2526 // Now remove the duplicates in the pressure (v1) vector
2527 auto last_unique = std::unique(v1.begin(), v1.end());
2528 v1.erase(last_unique, v1.end());
2529
2530 // Check that the number of rows in the csv file is equal to _num_v1 * _num_v2
2531 // v2 is currently the same size as the column_data (will get trimmed at the end)
2532 if (v2.size() != v1.size() * libMesh::cast_int<unsigned int>(num_v2))
2533 mooseError("The number of rows in ",
2534 file_name,
2535 " is not equal to the number of unique ",
2536 v1_name,
2537 " values ",
2538 v1.size(),
2539 " multiplied by the number of unique ",
2540 v2_name,
2541 " values ",
2542 num_v2);
2543
2544 // Need to make sure that the temperature (v2) values are provided in ascending order
2545 std::vector<Real> base_v2(v2.begin(), v2.begin() + num_v2);
2546 if (!std::is_sorted(base_v2.begin(), base_v2.end()))
2547 mooseError("The column data for ", v2_name, " is not monotonically increasing in ", file_name);
2548
2549 // Need to make sure that the temperature (v2) are repeated for each pressure (v1) grid point
2550 auto it_v2 = v2.begin() + num_v2;
2551 for (const auto i : make_range(v1.size() - 1))
2552 {
2553 std::vector<Real> repeated_v2(it_v2, it_v2 + num_v2);
2554 if (repeated_v2 != base_v2)
2555 mooseError(v2_name,
2556 " values for ",
2557 v1_name,
2558 " ",
2559 v1[i + 1],
2560 " are not identical to values for ",
2561 v1[0]);
2562
2563 std::advance(it_v2, num_v2);
2564 }
2565
2566 // At this point, all temperature (v2) data has been provided in ascending order
2567 // identically for each pressure (v1) value, so we can just keep the first range
2568 v2.erase(v2.begin() + num_v2, v2.end());
2569}
void mooseError(Args &&... args) const
IntRange< T > make_range(T beg, T end)

Referenced by TabulatedFluidProperties::readFileTabulationData().

◆ checkInitialGuess()

void TabulatedFluidProperties::checkInitialGuess ( bool  post_reading_tabulation) const
protectedvirtualinherited

Checks initial guess for Newton Method.

Parameters
post_reading_tabulationwhether the check is performed at construction (false) or after reading a file tabulation (true)

Definition at line 2319 of file TabulatedFluidProperties.C.

2320{
2321 // First condition applies when generating a tabulation
2322 // Second condition applies when using a pre-generated loaded tabulation
2323 if ((!post_reading_tabulation && _fp && (_construct_pT_from_ve || _construct_pT_from_vh)) ||
2324 (post_reading_tabulation && (_file_name_in != "" || _file_name_ve_in != "") &&
2325 (_create_direct_ve_interpolations || isParamSetByUser("T_initial_guess") ||
2326 isParamSetByUser("p_initial_guess"))))
2327 {
2328 if (_p_initial_guess < _pressure_min || _p_initial_guess > _pressure_max)
2329 mooseWarning("Pressure initial guess for (p,T), (v,e) conversions " +
2331 " is outside the range of tabulated "
2332 "pressure (" +
2334
2335 if (_T_initial_guess < _temperature_min || _T_initial_guess > _temperature_max)
2336 mooseWarning("Temperature initial guess for (p,T), (v,e) conversions " +
2338 " is outside the range of tabulated "
2339 "temperature (" +
2341 ").");
2342 }
2343}
bool isParamSetByUser(const std::string &name) const
void mooseWarning(Args &&... args) const
const Real _T_initial_guess
Initial guess for temperature (or temperature used to compute the initial guess)
const Real _p_initial_guess
Initial guess for pressure (or pressure used to compute the initial guess)
FileName _file_name_ve_in
File name of input (v,e) tabulated data file.
Real _temperature_max
Maximum temperature in tabulated data.
FileName _file_name_in
File name of input tabulated data file.
bool _construct_pT_from_vh
if the lookup table p(v, h) and T(v, h) should be constructed
Real _pressure_max
Maximum pressure in tabulated data.
Real _temperature_min
Minimum temperature in tabulated data.
Real _pressure_min
Minimum pressure in tabulated data.
std::string stringify(const T &t)

Referenced by TabulatedFluidProperties::readFileTabulationData(), and TabulatedFluidProperties::TabulatedFluidProperties().

◆ checkInputVariables()

template<typename T >
template void TabulatedFluidProperties::checkInputVariables ( T &  pressure,
T &  temperature 
) const
protectedinherited

Checks that the inputs are within the range of the tabulated data, and throws an error if they are not.

Parameters
pressureinput pressure (Pa)
temperatureinput temperature (K)

Definition at line 2233 of file TabulatedFluidProperties.C.

2234{
2235 using std::max, std::min;
2236
2237 if (_OOBBehavior == Ignore)
2238 return;
2239 else if (MooseUtils::absoluteFuzzyGreaterThan(_pressure_min, pressure, libMesh::TOLERANCE) ||
2240 MooseUtils::absoluteFuzzyGreaterThan(pressure, _pressure_max, libMesh::TOLERANCE))
2241 {
2242 if (_OOBBehavior == Throw)
2243 throw MooseException("Pressure " + Moose::stringify(pressure) +
2244 " is outside the range of tabulated pressure (" +
2247
2248 else
2249 {
2250 pressure = max(_pressure_min, min(pressure, _pressure_max));
2252 flagInvalidSolution("Pressure out of bounds");
2253 else if (_OOBBehavior == WarnInvalid)
2254 flagSolutionWarning("Pressure out of bounds");
2255 }
2256 }
2257
2258 if (MooseUtils::absoluteFuzzyGreaterThan(_temperature_min, temperature, libMesh::TOLERANCE) ||
2259 MooseUtils::absoluteFuzzyGreaterThan(temperature, _temperature_max, libMesh::TOLERANCE))
2260 {
2261 if (_OOBBehavior == Throw)
2262 throw MooseException("Temperature " + Moose::stringify(temperature) +
2263 " is outside the range of tabulated temperature (" +
2266 else
2267 {
2268 temperature = max(T(_temperature_min), min(temperature, T(_temperature_max)));
2270 flagInvalidSolution("Temperature out of bounds");
2271 else if (_OOBBehavior == WarnInvalid)
2272 flagSolutionWarning("Temperature out of bounds");
2273 }
2274 }
2275}
MooseEnum _OOBBehavior
User-selected out-of-bounds behavior.
auto max(const L &left, const R &right)
auto min(const L &left, const R &right)
static constexpr Real TOLERANCE

Referenced by TabulatedFluidProperties::c_from_p_T(), TabulatedFluidProperties::c_from_p_T(), TabulatedFluidProperties::cp_from_p_T(), TabulatedFluidProperties::cp_from_p_T(), TabulatedFluidProperties::cv_from_p_T(), TabulatedFluidProperties::cv_from_p_T(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::k_from_p_T(), TabulatedFluidProperties::k_from_p_T(), TabulatedFluidProperties::mu_from_p_T(), TabulatedFluidProperties::mu_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), and TabulatedFluidProperties::v_from_p_T().

◆ checkInputVariablesVE()

template<typename T >
template void TabulatedFluidProperties::checkInputVariablesVE ( T &  v,
T &  e 
) const
protectedinherited

Checks that the inputs are within the range of the tabulated data, and throws an error if they are not.

Parameters
vspecific volume (m3/kg)
especific internal energy (J/kg)

Definition at line 2279 of file TabulatedFluidProperties.C.

2280{
2281 using std::max, std::min;
2282
2283 if (_OOBBehavior == Ignore)
2284 return;
2285 else if (e < _e_min || e > _e_max)
2286 {
2287 if (_OOBBehavior == Throw)
2288 throw MooseException("Specific internal energy " + Moose::stringify(e) +
2289 " is outside the range of tabulated specific internal energies (" +
2291 else
2292 {
2293 e = max(_e_min, min(e, _e_max));
2295 flagInvalidSolution("Specific internal energy out of bounds");
2296 else if (_OOBBehavior == WarnInvalid)
2297 flagSolutionWarning("Specific internal energy out of bounds");
2298 }
2299 }
2300
2301 if (v < _v_min || v > _v_max)
2302 {
2303 if (_OOBBehavior == Throw)
2304 throw MooseException("Specific volume " + Moose::stringify(v) +
2305 " is outside the range of tabulated specific volumes (" +
2307 else
2308 {
2309 v = max(T(_v_min), min(v, T(_v_max)));
2311 flagInvalidSolution("Specific volume out of bounds");
2312 else if (_OOBBehavior == WarnInvalid)
2313 flagSolutionWarning("Specific volume out of bounds");
2314 }
2315 }
2316}
Real _v_min
Minimum specific volume in tabulated data (can be user-specified)
Real _v_max
Maximum specific volume in tabulated data (can be user-specified)
Real _e_min
Minimum internal energy in tabulated data (can be user-specified)
Real _e_max
Maximum internal energy in tabulated data (can be user-specified)

Referenced by TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TabulatedFluidProperties::g_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), and TabulatedFluidProperties::T_from_v_e().

◆ checkNaNs()

void TabulatedBicubicFluidProperties::checkNaNs ( Real  min_1,
Real  max_1,
Real  min_2,
Real  max_2,
unsigned int  i,
Real &  variable_1,
Real &  variable_2,
unsigned int &  num_nans_1,
unsigned int &  num_nans_2 
)

If Newton Method jacobian produces NaNs, set variable to min or max depending on situation.

Parameters
min_1minimum value of pressure
max_1maximum value of pressure
min_2minimum value of temperature
max_2maximum value of temperature
itrack iteration to get correct data point
variable_1pressure value
variable_2temperature value
num_nans_1track number of nans produced for pressure
num_nans_2track number of nans produced for temperature

Definition at line 121 of file TabulatedBicubicFluidProperties.C.

281{
282 // replace nan values with pmax or pmin
283 if (std::isnan(variable_1))
284 {
285 if (_specific_volume[i] >= ((_v_min + _v_max) / 2))
286 variable_1 = min_1;
287 else
288 variable_1 = max_1;
289 num_nans_1++;
290 }
291 // replace nan values with Tmax or Tmin
292 if (std::isnan(variable_2))
293 {
294 if (_specific_volume[i] >= ((_v_min + _v_max) / 2))
295 variable_2 = max_2;
296 else
297 variable_2 = min_2;
298 num_nans_2++;
299 }
300}
std::vector< Real > _specific_volume
Specific volume vector.

◆ checkOutofBounds()

void TabulatedBicubicFluidProperties::checkOutofBounds ( Real  min,
Real  max,
Real &  variable,
unsigned int &  num_out_bounds 
)
protectedinherited

If values go out of user defined range during Newton Method inversion, set variable to min or max depending on situation.

Parameters
minminimum value of variable
maxmaximum value of variable
variablevariable of interest (pressure or temperature)
num_out_boundstrack number of values out of user defined bounds

Definition at line 303 of file TabulatedBicubicFluidProperties.C.

307{
308 if (variable < min)
309 {
310 variable = min;
311 num_out_bounds++;
312 }
313 else if (variable > max)
314 {
315 variable = max;
316 num_out_bounds++;
317 }
318}

◆ computePropertyIndicesInInterpolationVectors()

void TabulatedFluidProperties::computePropertyIndicesInInterpolationVectors ( )
protectedinherited

Retrieves the index for each property in the vector of interpolations.

Definition at line 2572 of file TabulatedFluidProperties.C.

2573{
2574 // At this point, all properties read or generated are able to be used by
2575 // TabulatedFluidProperties. Now set flags and indexes for each property in
2576 //_interpolated_properties to use in property calculations
2577 for (std::size_t i = 0; i < _interpolated_properties.size(); ++i)
2578 {
2579 if (_interpolated_properties[i] == "density")
2580 {
2581 _interpolate_density = true;
2582 _density_idx = i;
2583 }
2584 else if (_interpolated_properties[i] == "enthalpy")
2585 {
2586 _interpolate_enthalpy = true;
2587 _enthalpy_idx = i;
2588 }
2589 else if (_interpolated_properties[i] == "internal_energy")
2590 {
2593 }
2594 else if (_interpolated_properties[i] == "viscosity")
2595 {
2597 _viscosity_idx = i;
2598 }
2599 else if (_interpolated_properties[i] == "k")
2600 {
2601 _interpolate_k = true;
2602 _k_idx = i;
2603 }
2604 else if (_interpolated_properties[i] == "c")
2605 {
2606 _interpolate_c = true;
2607 _c_idx = i;
2608 }
2609 else if (_interpolated_properties[i] == "cp")
2610 {
2611 _interpolate_cp = true;
2612 _cp_idx = i;
2613 }
2614 else if (_interpolated_properties[i] == "cv")
2615 {
2616 _interpolate_cv = true;
2617 _cv_idx = i;
2618 }
2619 else if (_interpolated_properties[i] == "entropy")
2620 {
2621 _interpolate_entropy = true;
2622 _entropy_idx = i;
2623 }
2624 else if (_interpolated_properties[i] == "pressure")
2625 {
2626 _interpolate_pressure = true;
2627 _p_idx = i;
2628 }
2629 else if (_interpolated_properties[i] == "temperature")
2630 {
2632 _T_idx = i;
2633 }
2634 else
2635 mooseError("Specified property '" + _interpolated_properties[i] +
2636 "' is present in the tabulation but is not currently leveraged by the code in the "
2637 "TabulatedFluidProperties. If it is spelled correctly, then please contact a "
2638 "MOOSE or fluid properties module developer.");
2639 }
2640}
std::vector< std::string > _interpolated_properties
List of properties to be interpolated.
unsigned int _density_idx
Index of each property.
bool _interpolate_density
Set of flags to note whether a property is to be interpolated.

Referenced by TabulatedFluidProperties::initialSetup().

◆ constructInterpolation()

void TabulatedBicubicFluidProperties::constructInterpolation ( )
overridevirtualinherited

Implements TabulatedFluidProperties.

Definition at line 41 of file TabulatedBicubicFluidProperties.C.

42{
43 // Construct bicubic interpolants from tabulated data
44 std::vector<std::vector<Real>> data_matrix;
45
47 {
48 _property_ipol.resize(_properties.size());
49 for (const auto i : index_range(_property_ipol))
50 {
51 reshapeData2D(_num_p, _num_T, _properties[i], data_matrix);
53 std::make_unique<BicubicInterpolation>(_pressure, _temperature, data_matrix);
54 }
55 }
56
58 {
59 _property_ve_ipol.resize(_properties_ve.size());
60
61 for (const auto i : index_range(_property_ve_ipol))
62 {
63 reshapeData2D(_num_v, _num_e, _properties_ve[i], data_matrix);
65 std::make_unique<BicubicInterpolation>(_specific_volume, _internal_energy, data_matrix);
66 }
67 }
68
69 bool conversion_succeeded = true;
70 unsigned int fail_counter_ve = 0;
71 unsigned int fail_counter_vh = 0;
72 // Create interpolations of (p,T) from (v,e)
74 {
75 // Grids in specific volume and internal energy can be either linear or logarithmic
76 // NOTE: this could have been called already when generating tabulated data
78
79 // initialize vectors for interpolation
80 std::vector<std::vector<Real>> p_from_v_e(_num_v);
81 std::vector<std::vector<Real>> T_from_v_e(_num_v);
82
83 unsigned int num_p_nans_ve = 0, num_T_nans_ve = 0, num_p_out_bounds_ve = 0,
84 num_T_out_bounds_ve = 0;
85
86 for (unsigned int i = 0; i < _num_v; ++i)
87 {
88 Real p_guess = _p_initial_guess;
89 Real T_guess = _T_initial_guess;
90 p_from_v_e[i].resize(_num_e);
91 T_from_v_e[i].resize(_num_e);
92 for (unsigned int j = 0; j < _num_e; ++j)
93 {
94 Real p_ve, T_ve;
95 // Using an input fluid property instead of the tabulation will get more exact inversions
96 if (_fp)
99 p_guess,
100 T_guess,
101 p_ve,
102 T_ve,
103 conversion_succeeded);
104 else
105 {
106 // The inversion may step outside of the domain of definition of the interpolations,
107 // which are restricted to the range of the input CSV file
108 const auto old_error_behavior = _OOBBehavior;
112 p_guess,
113 T_guess,
114 p_ve,
115 T_ve,
116 conversion_succeeded);
117 _OOBBehavior = old_error_behavior;
118 // track number of times convergence failed
119 if (!conversion_succeeded)
120 ++fail_counter_ve;
121 }
122
123 // check for NaNs in Newton Method
128 i,
129 p_ve,
130 T_ve,
131 num_p_nans_ve,
132 num_T_nans_ve);
133
134 // replace out of bounds pressure values with pmax or pmin
135 checkOutofBounds(_pressure_min, _pressure_max, p_ve, num_p_out_bounds_ve);
136 // replace out of bounds temperature values with Tmax or Tmin
137 checkOutofBounds(_temperature_min, _temperature_max, T_ve, num_T_out_bounds_ve);
138
139 p_from_v_e[i][j] = p_ve;
140 T_from_v_e[i][j] = T_ve;
141
142 p_guess = p_ve;
143 T_guess = T_ve;
144 }
145 }
146 // output warning if nans or values out of bounds
147 outputWarnings(num_p_nans_ve,
148 num_T_nans_ve,
149 num_p_out_bounds_ve,
150 num_T_out_bounds_ve,
151 fail_counter_ve,
152 _num_e * _num_v,
153 "(v,e)");
154
155 // the bicubic interpolation object are init'ed now
157 std::make_unique<BicubicInterpolation>(_specific_volume, _internal_energy, p_from_v_e);
159 std::make_unique<BicubicInterpolation>(_specific_volume, _internal_energy, T_from_v_e);
160 }
161
162 // Create interpolations of (p,T) from (v,h)
164 {
165 // Grids in specific volume and enthalpy can be either linear or logarithmic
166 // NOTE: the specific volume grid could have been created when generating tabulated data
168
169 // initialize vectors for interpolation
170 std::vector<std::vector<Real>> p_from_v_h(_num_v);
171 std::vector<std::vector<Real>> T_from_v_h(_num_v);
172
173 unsigned int num_p_nans_vh = 0, num_T_nans_vh = 0, num_p_out_bounds_vh = 0,
174 num_T_out_bounds_vh = 0;
175
176 for (unsigned int i = 0; i < _num_v; ++i)
177 {
178 Real p_guess = _p_initial_guess;
179 Real T_guess = _T_initial_guess;
180 p_from_v_h[i].resize(_num_e);
181 T_from_v_h[i].resize(_num_e);
182 for (unsigned int j = 0; j < _num_e; ++j)
183 {
184 Real p_vh, T_vh;
185 // Using an input fluid property instead of the tabulation will get more exact inversions
186 if (_fp)
188 _enthalpy[j],
189 p_guess,
190 T_guess,
191 p_vh,
192 T_vh,
193 conversion_succeeded);
194 else
195 {
196 // The inversion may step outside of the domain of definition of the interpolations,
197 // which are restricted to the range of the input CSV file
198 const auto old_error_behavior = _OOBBehavior;
201 _enthalpy[j],
202 p_guess,
203 T_guess,
204 p_vh,
205 T_vh,
206 conversion_succeeded);
207 _OOBBehavior = old_error_behavior;
208 // track number of times convergence failed
209 if (!conversion_succeeded)
210 ++fail_counter_vh;
211 }
212
213 // check for NaNs in Newton Method
218 i,
219 p_vh,
220 T_vh,
221 num_p_nans_vh,
222 num_T_nans_vh);
223
224 // replace out of bounds pressure values with pmax or pmin
225 checkOutofBounds(_pressure_min, _pressure_max, p_vh, num_p_out_bounds_vh);
226 // replace out of bounds temperature values with Tmax or Tmin
227 checkOutofBounds(_temperature_min, _temperature_max, T_vh, num_T_out_bounds_vh);
228
229 p_from_v_h[i][j] = p_vh;
230 T_from_v_h[i][j] = T_vh;
231
232 p_guess = p_vh;
233 T_guess = T_vh;
234 }
235 }
236 // output warnings if nans our values out of bounds
237 outputWarnings(num_p_nans_vh,
238 num_T_nans_vh,
239 num_p_out_bounds_vh,
240 num_T_out_bounds_vh,
241 fail_counter_vh,
242 _num_e * _num_v,
243 "(v,h)");
244
245 // the bicubic interpolation object are init'ed now
247 std::make_unique<BicubicInterpolation>(_specific_volume, _enthalpy, p_from_v_h);
249 std::make_unique<BicubicInterpolation>(_specific_volume, _enthalpy, T_from_v_h);
250 }
251}
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 ...
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 ...
void checkNaNs(Real min_1, Real max_1, Real min_2, Real max_2, unsigned int i, Real &variable_1, Real &variable_2, unsigned int &num_nans_1, unsigned int &num_nans_2)
If Newton Method jacobian produces NaNs, set variable to min or max depending on situation.
void reshapeData2D(unsigned int nrow, unsigned int ncol, const std::vector< Real > &vec, std::vector< std::vector< Real > > &mat)
Forms a 2D matrix from a single std::vector.
void outputWarnings(unsigned int num_nans_p, unsigned int num_nans_T, unsigned int num_out_bounds_p, unsigned int num_out_bounds_T, unsigned int convergence_failures, unsigned int number_points, std::string variable_set)
void checkOutofBounds(Real min, Real max, Real &variable, unsigned int &num_out_bounds)
If values go out of user defined range during Newton Method inversion, set variable to min or max dep...
unsigned int _num_T
Number of temperature points in the tabulated data.
std::vector< Real > _internal_energy
Specific internal energy vector.
std::vector< std::vector< Real > > _properties_ve
Tabulated fluid properties in (v,e) (read from file OR computed from _fp)
unsigned int _num_v
Number of specific volume points in the tabulated data.
std::vector< Real > _temperature
Temperature vector.
std::unique_ptr< BidimensionalInterpolation > _p_from_v_h_ipol
Bidimensional interpolation of pressure from (v,h)
std::vector< Real > _enthalpy
Specific enthalpy vector.
void createVHGridVectors()
Create (or reset) the grid vectors for the specific volume and enthalpy interpolation The order of pr...
unsigned int _num_p
Number of pressure points in the tabulated data.
unsigned int _num_e
Number of internal energy points in tabulated data.
virtual Real p_from_v_e(Real v, Real e) const override
Derivatives like dc_dv & dc_de are computed using the chain rule dy/dx(p,T) = dy/dp * dp/dx + dy/dT *...
virtual Real T_from_v_e(Real v, Real e) const override
std::unique_ptr< BidimensionalInterpolation > _T_from_v_h_ipol
Bi-dimensional interpolation of temperature from (v,h)
std::vector< std::vector< Real > > _properties
Tabulated fluid properties (read from file OR computed from _fp)
std::vector< Real > _pressure
Pressure vector.
auto index_range(const T &sizable)

◆ cp_from_p_T() [1/2]

Real TabulatedFluidProperties::cp_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Definition at line 1065 of file TabulatedFluidProperties.C.

1066{
1068 {
1069 checkInputVariables(pressure, temperature);
1070 return _property_ipol[_cp_idx]->sample(pressure, temperature);
1071 }
1072 else
1073 {
1074 if (_fp)
1075 return _fp->cp_from_p_T(pressure, temperature);
1076 else
1077 NeedTabulationOrFPError("cp_from_p_T", "c");
1078 }
1079}

Referenced by TabulatedFluidProperties::cp_from_v_e(), and TabulatedFluidProperties::cp_from_v_e().

◆ cp_from_p_T() [2/2]

void TabulatedFluidProperties::cp_from_p_T ( Real  pressure,
Real  temperature,
Real &  cp,
Real &  dcp_dp,
Real &  dcp_dT 
) const
overridevirtualinherited

Definition at line 1082 of file TabulatedFluidProperties.C.

1084{
1086 {
1087 checkInputVariables(pressure, temperature);
1088 _property_ipol[_cp_idx]->sampleValueAndDerivatives(pressure, temperature, cp, dcp_dp, dcp_dT);
1089 }
1090 else
1091 {
1092 if (_fp)
1093 _fp->cp_from_p_T(pressure, temperature, cp, dcp_dp, dcp_dT);
1094 else
1095 NeedTabulationOrFPError("cp_from_p_T with derivatives", "cp");
1096 }
1097}

◆ cp_from_v_e() [1/2]

Real TabulatedFluidProperties::cp_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

Definition at line 1536 of file TabulatedFluidProperties.C.

1537{
1539 missingVEInterpolationError(__PRETTY_FUNCTION__);
1541
1543 return _property_ve_ipol[_cp_idx]->sample(v, e);
1544 else if (_construct_pT_from_ve)
1545 {
1546 Real p = _p_from_v_e_ipol->sample(v, e);
1547 Real T = _T_from_v_e_ipol->sample(v, e);
1548 return cp_from_p_T(p, T);
1549 }
1550 else if (_fp)
1551 return _fp->cp_from_v_e(v, e);
1552 else
1553 NeedTabulationOrFPError("cp_from_v_e", "cp");
1554}
virtual Real cp_from_p_T(Real pressure, Real temperature) const override

Referenced by TabulatedFluidProperties::writeTabulatedData().

◆ cp_from_v_e() [2/2]

void TabulatedFluidProperties::cp_from_v_e ( Real  v,
Real  e,
Real &  cp,
Real &  dcp_dv,
Real &  dcp_de 
) const
overridevirtualinherited

Definition at line 1557 of file TabulatedFluidProperties.C.

1558{
1560 missingVEInterpolationError(__PRETTY_FUNCTION__);
1562
1564 _property_ve_ipol[_cp_idx]->sampleValueAndDerivatives(v, e, cp, dcp_dv, dcp_de);
1565 else if (_construct_pT_from_ve)
1566 {
1567 Real p, dp_dv, dp_de;
1568 _p_from_v_e_ipol->sampleValueAndDerivatives(v, e, p, dp_dv, dp_de);
1569 Real T, dT_dv, dT_de;
1570 _T_from_v_e_ipol->sampleValueAndDerivatives(v, e, T, dT_dv, dT_de);
1571 Real dcp_dp, dcp_dT;
1572 cp_from_p_T(p, T, cp, dcp_dp, dcp_dT);
1573 dcp_dv = dcp_dp * dp_dv + dcp_dT * dT_dv;
1574 dcp_de = dcp_dp * dp_de + dcp_dT * dT_de;
1575 }
1576 else if (_fp)
1577 _fp->cp_from_v_e(v, e, cp, dcp_dv, dcp_de);
1578 else
1579 NeedTabulationOrFPError("cp_from_v_e with derivatives", "cp");
1580}

◆ createVEGridVectors()

void TabulatedFluidProperties::createVEGridVectors ( )
protectedinherited

Definition at line 2696 of file TabulatedFluidProperties.C.

2697{
2700 {
2701 // if csv exists, get max and min values from csv file
2703 {
2704 _e_min = *std::min_element(_properties[_internal_energy_idx].begin(),
2706 _e_max = *std::max_element(_properties[_internal_energy_idx].begin(),
2708 }
2709 else if (_fp)
2710 {
2711 // extreme values of internal energy for the grid bounds
2712 Real e1 = _fp->e_from_p_T(_pressure_min, _temperature_min);
2713 Real e2 = _fp->e_from_p_T(_pressure_max, _temperature_min);
2714 Real e3 = _fp->e_from_p_T(_pressure_min, _temperature_max);
2715 Real e4 = _fp->e_from_p_T(_pressure_max, _temperature_max);
2716 _e_min = std::min({e1, e2, e3, e4});
2717 _e_max = std::max({e1, e2, e3, e4});
2718 }
2719 else
2720 mooseWarning("Unable to compute grid bounds in internal energy. Please specify the e_min/max "
2721 "parameters");
2722 }
2723
2724 // Create e grid for interpolation
2725 _internal_energy.resize(_num_e);
2726 if (_log_space_e)
2727 {
2728 // incrementing the exponent linearly will yield a log-spaced grid after taking the value to
2729 // the power of 10
2730 if (_e_min < 0)
2731 mooseError("Logarithmic grid in specific energy can only be used with a positive specific "
2732 "energy. Current minimum: " +
2733 std::to_string(_e_min));
2734 Real de = (std::log10(_e_max) - std::log10(_e_min)) / ((Real)_num_e - 1);
2735 Real log_e_min = std::log10(_e_min);
2736 for (const auto j : make_range(_num_e))
2737 _internal_energy[j] = std::pow(10, log_e_min + j * de);
2738 }
2739 else
2740 {
2741 Real de = (_e_max - _e_min) / ((Real)_num_e - 1);
2742 for (const auto j : make_range(_num_e))
2743 _internal_energy[j] = _e_min + j * de;
2744 }
2745}
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
void createVGridVector()
Create (or reset) the grid vectors for the specific volume and internal energy interpolations The ord...
bool _log_space_e
log-space the internal energy interpolation grid axis instead of linear
bool _e_bounds_specified
Whether the specific internal energy bounds were set by the user.

Referenced by TabulatedBicubicFluidProperties::constructInterpolation(), TabulatedFluidProperties::generateVETabulatedData(), and TabulatedFluidProperties::initialSetup().

◆ createVGridVector()

void TabulatedFluidProperties::createVGridVector ( )
protectedinherited

Create (or reset) the grid vectors for the specific volume and internal energy interpolations The order of priority for determining the range boundaries in v and e:

  • if user-specified, use _v_min/max and _e_min/max
  • if reading a (v,e) interpolation, the bounds of that range
  • if a _fp exist find the min/max v/e from T_min/max and p_min/max

Definition at line 2643 of file TabulatedFluidProperties.C.

2644{
2645 mooseAssert(_file_name_ve_in.empty(), "We should be reading the specific volume grid from file");
2647 {
2648 // if csv exists, get max and min values from csv file
2650 {
2651 Real rho_max =
2652 *std::max_element(_properties[_density_idx].begin(), _properties[_density_idx].end());
2653 Real rho_min =
2654 *std::min_element(_properties[_density_idx].begin(), _properties[_density_idx].end());
2655 _v_max = 1 / rho_min;
2656 _v_min = 1 / rho_max;
2657 }
2658 else if (_fp)
2659 {
2660 // extreme values of specific volume for the grid bounds
2661 Real v1 = _fp->v_from_p_T(_pressure_min, _temperature_min);
2662 Real v2 = _fp->v_from_p_T(_pressure_max, _temperature_min);
2663 Real v3 = _fp->v_from_p_T(_pressure_min, _temperature_max);
2664 Real v4 = _fp->v_from_p_T(_pressure_max, _temperature_max);
2665 _v_min = std::min({v1, v2, v3, v4});
2666 _v_max = std::max({v1, v2, v3, v4});
2667 }
2668 else
2669 mooseWarning("Unable to compute grid bounds in specific volume. Please specify the v_min/max "
2670 "parameters");
2671
2672 // Prevent changing the bounds of the grid
2673 _v_bounds_specified = true;
2674 }
2675
2676 // Create v grid for interpolation
2677 _specific_volume.resize(_num_v);
2678 if (_log_space_v)
2679 {
2680 // incrementing the exponent linearly will yield a log-spaced grid after taking the value to
2681 // the power of 10
2682 Real dv = (std::log10(_v_max) - std::log10(_v_min)) / ((Real)_num_v - 1);
2683 Real log_v_min = std::log10(_v_min);
2684 for (unsigned int j = 0; j < _num_v; ++j)
2685 _specific_volume[j] = std::pow(10, log_v_min + j * dv);
2686 }
2687 else
2688 {
2689 Real dv = (_v_max - _v_min) / ((Real)_num_v - 1);
2690 for (unsigned int j = 0; j < _num_v; ++j)
2691 _specific_volume[j] = _v_min + j * dv;
2692 }
2693}
bool _log_space_v
log-space the specific volume interpolation grid axis instead of linear
bool _v_bounds_specified
Whether the specific volume bounds were set by the user.

Referenced by TabulatedFluidProperties::createVEGridVectors(), and TabulatedFluidProperties::createVHGridVectors().

◆ createVHGridVectors()

void TabulatedFluidProperties::createVHGridVectors ( )
protectedinherited

Create (or reset) the grid vectors for the specific volume and enthalpy interpolation The order of priority for determining the range boundaries in v and h:

  • if user-specified, use _v_min/max and _e_min/max
  • if a _fp exist find the min/max v/e from T_min/max and p_min/max
  • if reading a (p,T) tabulation, the bounds of the enthalpy grid
  • if reading a (v,e) tabulation, the bounds of the enthalpy grid

Definition at line 2748 of file TabulatedFluidProperties.C.

2749{
2750 if (_file_name_ve_in.empty())
2752 if (_fp)
2753 {
2754 // extreme values of enthalpy for the grid bounds
2755 Real h1 = _fp->h_from_p_T(_pressure_min, _temperature_min);
2756 Real h2 = _fp->h_from_p_T(_pressure_max, _temperature_min);
2757 Real h3 = _fp->h_from_p_T(_pressure_min, _temperature_max);
2758 Real h4 = _fp->h_from_p_T(_pressure_max, _temperature_max);
2759 _h_min = std::min({h1, h2, h3, h4});
2760 _h_max = std::max({h1, h2, h3, h4});
2761 }
2762 // if csv exists, get max and min values from csv file
2763 else if (_properties.size())
2764 {
2765 _h_max = *max_element(_properties[_enthalpy_idx].begin(), _properties[_enthalpy_idx].end());
2766 _h_min = *min_element(_properties[_enthalpy_idx].begin(), _properties[_enthalpy_idx].end());
2767 }
2768 else if (_properties_ve.size())
2769 {
2770 _h_max = *max_element(_properties[_enthalpy_idx].begin(), _properties[_enthalpy_idx].end());
2771 _h_min = *min_element(_properties[_enthalpy_idx].begin(), _properties[_enthalpy_idx].end());
2772 }
2773 else
2774 mooseError("Need a source to compute the enthalpy grid bounds: either a FP object, or a (p,T) "
2775 "tabulation file or a (v,e) tabulation file");
2776
2777 // Create h grid for interpolation
2778 // enthalpy & internal energy use same # grid points
2779 _enthalpy.resize(_num_e);
2780 if (_log_space_h)
2781 {
2782 // incrementing the exponent linearly will yield a log-spaced grid after taking the value to
2783 // the power of 10
2784 if (_h_min < 0)
2785 mooseError("Logarithmic grid in specific energy can only be used with a positive enthalpy. "
2786 "Current minimum: " +
2787 std::to_string(_h_min));
2788 Real dh = (std::log10(_h_max) - std::log10(_h_min)) / ((Real)_num_e - 1);
2789 Real log_h_min = std::log10(_h_min);
2790 for (const auto j : make_range(_num_e))
2791 _enthalpy[j] = std::pow(10, log_h_min + j * dh);
2792 }
2793 else
2794 {
2795 Real dh = (_h_max - _h_min) / ((Real)_num_e - 1);
2796 for (const auto j : make_range(_num_e))
2797 _enthalpy[j] = _h_min + j * dh;
2798 }
2799}
Real _h_min
Minimum specific enthalpy in tabulated data.
Real _h_max
Maximum specific enthalpy in tabulated data.
bool _log_space_h
log-space the enthalpy interpolation grid axis instead of linear

◆ criticalDensity()

Real TabulatedFluidProperties::criticalDensity ( ) const
overridevirtualinherited

Critical density.

Returns
critical density (kg/m^3)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1374 of file TabulatedFluidProperties.C.

1375{
1376 if (_fp)
1377 return _fp->criticalDensity();
1378 else
1379 TabulationNotImplementedError("criticalDensity");
1380}
virtual Real criticalDensity() const
Critical density.
void TabulationNotImplementedError(const std::string &desired_routine) const
Utility to forward errors related to fluid properties methods not implemented.

◆ criticalInternalEnergy()

Real SinglePhaseFluidProperties::criticalInternalEnergy ( ) const
virtualinherited

Critical specific internal energy.

Returns
specific internal energy (J/kg)

Reimplemented in CaloricallyImperfectGas, IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 320 of file SinglePhaseFluidProperties.C.

321{
322 return e_from_p_rho(criticalPressure(), criticalDensity());
323}
virtual Real criticalPressure() const
Critical pressure.

◆ criticalPressure()

Real TabulatedFluidProperties::criticalPressure ( ) const
overridevirtualinherited

Critical pressure.

Returns
critical pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1354 of file TabulatedFluidProperties.C.

1355{
1356
1357 if (_fp)
1358 return _fp->criticalPressure();
1359 else
1360 TabulationNotImplementedError("criticalPressure");
1361}

◆ criticalTemperature()

Real TabulatedFluidProperties::criticalTemperature ( ) const
overridevirtualinherited

Critical temperature.

Returns
critical temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1364 of file TabulatedFluidProperties.C.

1365{
1366
1367 if (_fp)
1368 return _fp->criticalTemperature();
1369 else
1370 TabulationNotImplementedError("criticalTemperature");
1371}
virtual Real criticalTemperature() const
Critical temperature.

◆ cv_from_p_T() [1/2]

Real TabulatedFluidProperties::cv_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Definition at line 1100 of file TabulatedFluidProperties.C.

1101{
1103 {
1104 checkInputVariables(pressure, temperature);
1105 return _property_ipol[_cv_idx]->sample(pressure, temperature);
1106 }
1107 else
1108 {
1109 if (_fp)
1110 return _fp->cv_from_p_T(pressure, temperature);
1111 else
1112 NeedTabulationOrFPError("cv_from_p_T", "cv");
1113 }
1114}

Referenced by TabulatedFluidProperties::cv_from_v_e(), and TabulatedFluidProperties::cv_from_v_e().

◆ cv_from_p_T() [2/2]

void TabulatedFluidProperties::cv_from_p_T ( Real  pressure,
Real  temperature,
Real &  cv,
Real &  dcv_dp,
Real &  dcv_dT 
) const
overridevirtualinherited

Definition at line 1117 of file TabulatedFluidProperties.C.

1119{
1120 if (_interpolate_cv)
1121 {
1122 checkInputVariables(pressure, temperature);
1123 _property_ipol[_cv_idx]->sampleValueAndDerivatives(pressure, temperature, cv, dcv_dp, dcv_dT);
1124 }
1125 else
1126 {
1127 if (_fp)
1128 _fp->cv_from_p_T(pressure, temperature, cv, dcv_dp, dcv_dT);
1129 else
1130 NeedTabulationOrFPError("cv_from_p_T with derivatives", "cv");
1131 }
1132}

◆ cv_from_v_e() [1/2]

Real TabulatedFluidProperties::cv_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

Definition at line 1583 of file TabulatedFluidProperties.C.

1584{
1586 missingVEInterpolationError(__PRETTY_FUNCTION__);
1588
1590 return _property_ve_ipol[_cv_idx]->sample(v, e);
1591 else if (_construct_pT_from_ve)
1592 {
1593 Real p = _p_from_v_e_ipol->sample(v, e);
1594 Real T = _T_from_v_e_ipol->sample(v, e);
1595 return cv_from_p_T(p, T);
1596 }
1597 else if (_fp)
1598 return _fp->cv_from_v_e(v, e);
1599 else
1600 NeedTabulationOrFPError("cv_from_v_e", "cv");
1601}
virtual Real cv_from_p_T(Real pressure, Real temperature) const override

Referenced by TabulatedFluidProperties::writeTabulatedData().

◆ cv_from_v_e() [2/2]

void TabulatedFluidProperties::cv_from_v_e ( Real  v,
Real  e,
Real &  cv,
Real &  dcv_dv,
Real &  dcv_de 
) const
overridevirtualinherited

Definition at line 1604 of file TabulatedFluidProperties.C.

1605{
1607 missingVEInterpolationError(__PRETTY_FUNCTION__);
1609
1611 _property_ve_ipol[_cv_idx]->sampleValueAndDerivatives(v, e, cv, dcv_dv, dcv_de);
1612 else if (_construct_pT_from_ve)
1613 {
1614 Real p, dp_dv, dp_de;
1615 _p_from_v_e_ipol->sampleValueAndDerivatives(v, e, p, dp_dv, dp_de);
1616 Real T, dT_dv, dT_de;
1617 _T_from_v_e_ipol->sampleValueAndDerivatives(v, e, T, dT_dv, dT_de);
1618 Real dcv_dp, dcv_dT;
1619 cv_from_p_T(p, T, cv, dcv_dp, dcv_dT);
1620 dcv_dv = dcv_dp * dp_dv + dcv_dT * dT_dv;
1621 dcv_de = dcv_dp * dp_de + dcv_dT * dT_de;
1622 }
1623 else if (_fp)
1624 _fp->cv_from_v_e(v, e, cv, dcv_dv, dcv_de);
1625 else
1626 NeedTabulationOrFPError("cv_from_v_e with derivatives", "cv");
1627}

◆ e_from_p_rho() [1/3]

ADReal TabulatedFluidProperties::e_from_p_rho ( const ADReal &  pressure,
const ADReal &  rho 
) const
overridevirtualinherited

Definition at line 720 of file TabulatedFluidProperties.C.

721{
722 ADReal e;
723 // Use v,e data, we already have v from rho
725 {
726 auto lambda = [&](ADReal v, ADReal current_e, ADReal & new_p, ADReal & dp_dv, ADReal & dp_de)
727 { p_from_v_e(v, current_e, new_p, dp_dv, dp_de); };
728 const auto pair = FluidPropertiesUtils::NewtonSolve(1. / rho,
729 pressure,
730 /*initial guess*/ (_e_min + _e_max) / 2,
732 lambda,
733 name() + "::e_from_p_rho",
736 e = pair.first;
737 }
738 // May use rho_from_p_T with derivatives in a Newton solve
739 else
740 {
741 const auto T = T_from_p_rho(pressure, rho);
742 e = e_from_p_T(pressure, T);
743 }
744 return e;
745}
DualNumber< Real, DNDerivativeType, true > ADReal
const std::string & name() const
const bool _verbose_newton
Whether to output information about newton solves to console.
const Real _tolerance
Newton's method may be used to convert between variable sets.
const unsigned int _max_newton_its
Maximum number of iterations for the variable conversion newton solves.
virtual Real T_from_p_rho(Real pressure, Real rho) const
virtual Real e_from_p_T(Real pressure, Real temperature) const override
std::pair< T, T > NewtonSolve(const T &x, const T &y, const Real z_initial_guess, const Real tolerance, const Functor &y_from_x_z, const std::string &caller_name, const unsigned int max_its=100, const bool verbose=false)
NewtonSolve does a 1D Newton Solve to solve the equation y = f(x, z) for variable z.

◆ e_from_p_rho() [2/3]

Real TabulatedFluidProperties::e_from_p_rho ( Real  pressure,
Real  rho 
) const
overridevirtualinherited

Definition at line 748 of file TabulatedFluidProperties.C.

749{
750 Real e;
751 // Use v,e data, we already have v from rho
753 {
754 Real T_dummy = _T_initial_guess;
755 checkInputVariables(pressure, T_dummy);
756 auto lambda = [&](Real v, Real current_e, Real & new_p, Real & dp_dv, Real & dp_de)
757 { p_from_v_e(v, current_e, new_p, dp_dv, dp_de); };
758 const auto pair = FluidPropertiesUtils::NewtonSolve(1. / rho,
759 pressure,
760 /*initial guess*/ (_e_min + _e_max) / 2,
762 lambda,
763 name() + "::e_from_p_rho",
766 e = pair.first;
767 }
768 // May use rho_from_p_T with derivatives in a Newton solve
769 else
770 {
771 Real T = T_from_p_rho(pressure, rho);
772 e = e_from_p_T(pressure, T);
773 }
774 return e;
775}

Referenced by TabulatedFluidProperties::T_from_p_rho(), and TabulatedFluidProperties::T_from_p_rho().

◆ e_from_p_rho() [3/3]

void TabulatedFluidProperties::e_from_p_rho ( Real  pressure,
Real  rho,
Real &  e,
Real &  de_dp,
Real &  de_drho 
) const
overridevirtualinherited

Definition at line 778 of file TabulatedFluidProperties.C.

780{
781 // get derivatives of T wrt to pressure and density
782 Real T, dT_dp, dT_drho;
783 T_from_p_rho(pressure, rho, T, dT_dp, dT_drho);
784
785 // Get e, then derivatives of e wrt pressure and temperature
786 Real de_dp_at_const_T, de_dT;
787 e_from_p_T(pressure, T, e, de_dp_at_const_T, de_dT);
788
789 // Get the derivatives of density wrt pressure and temperature
790 Real rho_pT, drho_dp, drho_dT;
791 rho_from_p_T(pressure, T, rho_pT, drho_dp, drho_dT);
792
793 // derivatives of e wrt pressure and rho (what we want from e_from_p_rho)
794 de_drho = de_dT * dT_drho;
795 de_dp = de_dp_at_const_T - (de_drho * drho_dp);
796}
virtual Real rho_from_p_T(Real pressure, Real temperature) const override

◆ e_from_p_T() [1/3]

ADReal TabulatedFluidProperties::e_from_p_T ( const ADReal &  pressure,
const ADReal &  temperature 
) const
overridevirtualinherited

Definition at line 649 of file TabulatedFluidProperties.C.

650{
652 {
653 ADReal pressure_nc = pressure, temperature_nc = temperature;
654 checkInputVariables(pressure_nc, temperature_nc);
656 return _property_ipol[_internal_energy_idx]->sample(pressure_nc, temperature_nc);
657 else
658 NeedTabulationError("internal_energy");
659 }
661 {
662 ADReal pressure_nc = pressure, temperature_nc = temperature;
663 checkInputVariables(pressure_nc, temperature_nc);
664 const ADReal rho = rho_from_p_T(pressure_nc, temperature_nc);
665 auto lambda = [&](ADReal v, ADReal current_e, ADReal & new_T, ADReal & dT_dv, ADReal & dT_de)
666 { T_from_v_e(v, current_e, new_T, dT_dv, dT_de); };
667 const auto pair = FluidPropertiesUtils::NewtonSolve(1. / rho,
668 temperature_nc,
669 /*initial guess*/ (_e_min + _e_max) / 2,
671 lambda,
672 name() + "::e_from_p_T",
675 return pair.first;
676 }
677 else
678 {
679 if (_fp)
680 return _fp->e_from_p_T(pressure, temperature);
681 else
682 NeedTabulationOrFPError("AD e_from_p_T", "internal_energy");
683 }
684}
void NeedTabulationError(const std::string &needed_property) const
Utility to forward errors related to properties being requested for tabulation, but no tabulation is ...

◆ e_from_p_T() [2/3]

Real TabulatedFluidProperties::e_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Definition at line 613 of file TabulatedFluidProperties.C.

614{
616 {
617 checkInputVariables(pressure, temperature);
619 return _property_ipol[_internal_energy_idx]->sample(pressure, temperature);
620 else
621 NeedTabulationError("internal_energy");
622 }
624 {
625 checkInputVariables(pressure, temperature);
626 const Real rho = rho_from_p_T(pressure, temperature);
627 auto lambda = [&](Real v, Real current_e, Real & new_T, Real & dT_dv, Real & dT_de)
628 { T_from_v_e(v, current_e, new_T, dT_dv, dT_de); };
629 const auto pair = FluidPropertiesUtils::NewtonSolve(1. / rho,
630 temperature,
631 /*initial guess*/ (_e_min + _e_max) / 2,
633 lambda,
634 name() + "::e_from_p_T",
637 return pair.first;
638 }
639 else
640 {
641 if (_fp)
642 return _fp->e_from_p_T(pressure, temperature);
643 else
644 NeedTabulationOrFPError("e_from_p_T", "internal_energy");
645 }
646}

Referenced by TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_v_h(), and TabulatedFluidProperties::e_from_v_h().

◆ e_from_p_T() [3/3]

void TabulatedFluidProperties::e_from_p_T ( Real  pressure,
Real  temperature,
Real &  e,
Real &  de_dp,
Real &  de_dT 
) const
overridevirtualinherited

Definition at line 687 of file TabulatedFluidProperties.C.

689{
691 {
692 checkInputVariables(pressure, temperature);
694 _property_ipol[_internal_energy_idx]->sampleValueAndDerivatives(
695 pressure, temperature, e, de_dp, de_dT);
696 else
697 NeedTabulationError("internal_energy");
698 }
700 {
701 checkInputVariables(pressure, temperature);
702 // use finite differencing stencil
703 e = e_from_p_T(pressure, temperature);
704 // Relative steps, made absolute at zero so that they do not vanish
705 const Real dp = (pressure == 0 ? 1.0 : std::abs(pressure)) * 1e-8;
706 const Real dT = temperature * 1e-8;
707 de_dp = (e_from_p_T(pressure + dp, temperature) - e) / dp;
708 de_dT = (e_from_p_T(pressure, temperature + dT) - e) / dT;
709 }
710 else
711 {
712 if (_fp)
713 _fp->e_from_p_T(pressure, temperature, e, de_dp, de_dT);
714 else
715 NeedTabulationOrFPError("e_from_p_T with derivatives", "internal_energy");
716 }
717}

◆ e_from_v_h() [1/2]

Real TabulatedFluidProperties::e_from_v_h ( Real  v,
Real  h 
) const
overridevirtualinherited

Definition at line 1217 of file TabulatedFluidProperties.C.

1218{
1220 {
1221 const Real p = _p_from_v_h_ipol->sample(v, h);
1222 const Real T = _T_from_v_h_ipol->sample(v, h);
1223 return e_from_p_T(p, T);
1224 }
1226 {
1227 // Lambda computes h from v and the current_e
1228 auto lambda = [&](Real v, Real current_e, Real & new_h, Real & dh_dv, Real & dh_de)
1229 { h_from_v_e(v, current_e, new_h, dh_dv, dh_de); };
1231 h,
1232 /*e initial guess*/ h - _p_initial_guess * v,
1233 _tolerance,
1234 lambda,
1235 name() + "::e_from_v_h",
1238 .first;
1239 return e;
1240 }
1241 else if (_fp)
1242 return _fp->e_from_v_h(v, h);
1243 else
1244 NeedTabulationOrFPError("e_from_v_h", "internal_energy");
1245}
e e e e s T T T T T rho v v T e h

Referenced by TabulatedFluidProperties::e_from_v_h().

◆ e_from_v_h() [2/2]

void TabulatedFluidProperties::e_from_v_h ( Real  v,
Real  h,
Real &  e,
Real &  de_dv,
Real &  de_dh 
) const
overridevirtualinherited

Definition at line 1248 of file TabulatedFluidProperties.C.

1249{
1251 {
1252 Real p = 0, dp_dv = 0, dp_dh = 0;
1253 _p_from_v_h_ipol->sampleValueAndDerivatives(v, h, p, dp_dv, dp_dh);
1254 Real T = 0, dT_dv = 0, dT_dh = 0;
1255 _T_from_v_h_ipol->sampleValueAndDerivatives(v, h, T, dT_dv, dT_dh);
1256 Real de_dp, de_dT;
1257 e_from_p_T(p, T, e, de_dp, de_dT);
1258 de_dv = de_dp * dp_dv + de_dT * dT_dv;
1259 de_dh = de_dp * dp_dh + de_dT * dT_dh;
1260 }
1262 {
1263 // Lambda computes h from v and the current_e
1264 auto lambda = [&](Real v, Real current_e, Real & new_h, Real & dh_dv, Real & dh_de)
1265 { h_from_v_e(v, current_e, new_h, dh_dv, dh_de); };
1266 const auto e_data =
1268 h,
1269 /*e initial guess*/ h - _p_initial_guess * v,
1270 _tolerance,
1271 lambda,
1272 name() + "::e_from_v_h",
1275 e = e_data.first;
1276 // Finite difference approximation
1277 const auto e2 = e_from_v_h(v * (1 + TOLERANCE), h);
1278 de_dv = (e2 - e) / (TOLERANCE * v);
1279 de_dh = 1. / e_data.second;
1280 }
1281 else if (_fp)
1282 _fp->e_from_v_h(v, h, e, de_dv, de_dh);
1283 else
1284 NeedTabulationOrFPError("e_from_v_h", "internal_energy");
1285}
virtual Real e_from_v_h(Real v, Real h) const override

◆ 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 CaloricallyImperfectGas, IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 483 of file SinglePhaseFluidProperties.C.

484{
485 mooseError(__PRETTY_FUNCTION__, " not implemented.");
486}

◆ 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 TabulatedFluidProperties::fluidName ( ) const
overridevirtualinherited

Fluid name.

Returns
string representing fluid name

Reimplemented from SinglePhaseFluidProperties.

Definition at line 379 of file TabulatedFluidProperties.C.

380{
381 if (_fp)
382 return _fp->fluidName();
383 else
384 return "TabulationFromFile";
385}
e e e e s T T T T T rho v v T e p T T virtual T std::string fluidName() const
Fluid name.

◆ g_from_v_e()

Real TabulatedFluidProperties::g_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

Definition at line 1770 of file TabulatedFluidProperties.C.

1771{
1772 if (!_construct_pT_from_ve &&
1775 missingVEInterpolationError(__PRETTY_FUNCTION__);
1777
1778 Real h, T = 0, s;
1779 const bool have_direct_ve_tables =
1782 if (have_direct_ve_tables)
1783 {
1784 s = _property_ve_ipol[_entropy_idx]->sample(v, e);
1785 h = _property_ve_ipol[_enthalpy_idx]->sample(v, e);
1786 T = _property_ve_ipol[_T_idx]->sample(v, e);
1787 }
1789 {
1792 Real p = 0;
1793 bool conversion_succeeded;
1794 p_T_from_v_e(v, e, p0, T0, p, T, conversion_succeeded);
1795 s = s_from_p_T(p, T);
1796 h = h_from_p_T(p, T);
1797 }
1798 else
1799 mooseError(__PRETTY_FUNCTION__,
1800 "\nNo tabulation or fluid property 'input_fp' object to compute value");
1801 return h - T * s;
1802}
virtual Real h_from_p_T(Real p, Real T) const override
virtual Real s_from_p_T(Real pressure, Real temperature) const override
const unsigned int invalid_uint

◆ generateTabulatedData()

void TabulatedFluidProperties::generateTabulatedData ( )
protectedvirtualinherited

Generates a table of fluid properties by looping over pressure and temperature and calculating properties using the FluidProperties UserObject _fp.

Definition at line 2062 of file TabulatedFluidProperties.C.

2063{
2064 mooseAssert(_fp, "We should not try to generate (p,T) tabulated data without a _fp user object");
2065 _pressure.resize(_num_p);
2066 _temperature.resize(_num_T);
2067
2068 // Generate data for all properties entered in input file
2071
2072 for (std::size_t i = 0; i < _interpolated_properties_enum.size(); ++i)
2074
2075 for (const auto i : index_range(_properties))
2076 _properties[i].resize(_num_p * _num_T);
2077
2078 // Temperature is divided equally into _num_T segments
2079 Real delta_T = (_temperature_max - _temperature_min) / static_cast<Real>(_num_T - 1);
2080
2081 for (unsigned int j = 0; j < _num_T; ++j)
2082 _temperature[j] = _temperature_min + j * delta_T;
2083
2084 // Divide the pressure into _num_p equal segments
2085 Real delta_p = (_pressure_max - _pressure_min) / static_cast<Real>(_num_p - 1);
2086
2087 for (unsigned int i = 0; i < _num_p; ++i)
2088 _pressure[i] = _pressure_min + i * delta_p;
2089
2090 // Generate the tabulated data at the pressure and temperature points
2091 for (const auto i : index_range(_properties))
2092 {
2093 if (_interpolated_properties[i] == "density")
2094 for (unsigned int p = 0; p < _num_p; ++p)
2095 for (unsigned int t = 0; t < _num_T; ++t)
2096 _properties[i][p * _num_T + t] = _fp->rho_from_p_T(_pressure[p], _temperature[t]);
2097
2098 if (_interpolated_properties[i] == "enthalpy")
2099 for (unsigned int p = 0; p < _num_p; ++p)
2100 for (unsigned int t = 0; t < _num_T; ++t)
2101 _properties[i][p * _num_T + t] = _fp->h_from_p_T(_pressure[p], _temperature[t]);
2102
2103 if (_interpolated_properties[i] == "internal_energy")
2104 for (unsigned int p = 0; p < _num_p; ++p)
2105 for (unsigned int t = 0; t < _num_T; ++t)
2106 _properties[i][p * _num_T + t] = _fp->e_from_p_T(_pressure[p], _temperature[t]);
2107
2108 if (_interpolated_properties[i] == "viscosity")
2109 for (unsigned int p = 0; p < _num_p; ++p)
2110 for (unsigned int t = 0; t < _num_T; ++t)
2111 _properties[i][p * _num_T + t] = _fp->mu_from_p_T(_pressure[p], _temperature[t]);
2112
2113 if (_interpolated_properties[i] == "k")
2114 for (unsigned int p = 0; p < _num_p; ++p)
2115 for (unsigned int t = 0; t < _num_T; ++t)
2116 _properties[i][p * _num_T + t] = _fp->k_from_p_T(_pressure[p], _temperature[t]);
2117
2118 if (_interpolated_properties[i] == "c")
2119 for (unsigned int p = 0; p < _num_p; ++p)
2120 for (unsigned int t = 0; t < _num_T; ++t)
2121 _properties[i][p * _num_T + t] = _fp->c_from_p_T(_pressure[p], _temperature[t]);
2122
2123 if (_interpolated_properties[i] == "cv")
2124 for (unsigned int p = 0; p < _num_p; ++p)
2125 for (unsigned int t = 0; t < _num_T; ++t)
2126 _properties[i][p * _num_T + t] = _fp->cv_from_p_T(_pressure[p], _temperature[t]);
2127
2128 if (_interpolated_properties[i] == "cp")
2129 for (unsigned int p = 0; p < _num_p; ++p)
2130 for (unsigned int t = 0; t < _num_T; ++t)
2131 _properties[i][p * _num_T + t] = _fp->cp_from_p_T(_pressure[p], _temperature[t]);
2132
2133 if (_interpolated_properties[i] == "entropy")
2134 for (unsigned int p = 0; p < _num_p; ++p)
2135 for (unsigned int t = 0; t < _num_T; ++t)
2136 _properties[i][p * _num_T + t] = _fp->s_from_p_T(_pressure[p], _temperature[t]);
2137 }
2138}
unsigned int size() const
MultiMooseEnum _interpolated_properties_enum
Properties to be interpolated entered in the input file.

Referenced by TabulatedFluidProperties::initialSetup().

◆ generateVETabulatedData()

void TabulatedFluidProperties::generateVETabulatedData ( )
protectedvirtualinherited

Generates a table of fluid properties by looping over specific volume and internal energy and calculating properties using the FluidProperties UserObject _fp.

Definition at line 2141 of file TabulatedFluidProperties.C.

2142{
2143 mooseAssert(_fp, "We should not try to generate (v,e) tabulated data without a _fp user object");
2144 _specific_volume.resize(_num_v);
2145 _internal_energy.resize(_num_e);
2146
2147 // Generate data for all properties entered in input file
2150
2151 // This is filled from the user input, so it does not matter than this operation is performed
2152 // for both the (p,T) and (v,e) tabulated data generation
2153 for (std::size_t i = 0; i < _interpolated_properties_enum.size(); ++i)
2155
2156 for (const auto i : index_range(_properties_ve))
2157 _properties_ve[i].resize(_num_v * _num_e);
2158
2159 // Grids in (v,e) are not read, so we either use user input or rely on (p,T) data
2161
2162 // Generate the tabulated data at the pressure and temperature points
2163 for (const auto i : index_range(_properties_ve))
2164 {
2165 if (_interpolated_properties[i] == "density")
2166 for (unsigned int v = 0; v < _num_v; ++v)
2167 for (unsigned int e = 0; e < _num_e; ++e)
2168 _properties_ve[i][v * _num_e + e] = 1. / _specific_volume[v];
2169
2170 if (_interpolated_properties[i] == "enthalpy")
2171 for (unsigned int v = 0; v < _num_v; ++v)
2172 for (unsigned int e = 0; e < _num_e; ++e)
2173 _properties_ve[i][v * _num_e + e] =
2174 _fp->h_from_v_e(_specific_volume[v], _internal_energy[e]);
2175
2176 if (_interpolated_properties[i] == "internal_energy")
2177 for (unsigned int v = 0; v < _num_v; ++v)
2178 for (unsigned int e = 0; e < _num_e; ++e)
2179 _properties_ve[i][v * _num_e + e] = _internal_energy[e];
2180
2181 if (_interpolated_properties[i] == "viscosity")
2182 for (unsigned int v = 0; v < _num_v; ++v)
2183 for (unsigned int e = 0; e < _num_e; ++e)
2184 _properties_ve[i][v * _num_e + e] =
2185 _fp->mu_from_v_e(_specific_volume[v], _internal_energy[e]);
2186
2187 if (_interpolated_properties[i] == "k")
2188 for (unsigned int v = 0; v < _num_v; ++v)
2189 for (unsigned int e = 0; e < _num_e; ++e)
2190 _properties_ve[i][v * _num_e + e] =
2191 _fp->k_from_v_e(_specific_volume[v], _internal_energy[e]);
2192
2193 if (_interpolated_properties[i] == "c")
2194 for (unsigned int v = 0; v < _num_v; ++v)
2195 for (unsigned int e = 0; e < _num_e; ++e)
2196 _properties_ve[i][v * _num_e + e] =
2197 _fp->c_from_v_e(_specific_volume[v], _internal_energy[e]);
2198
2199 if (_interpolated_properties[i] == "cv")
2200 for (unsigned int v = 0; v < _num_v; ++v)
2201 for (unsigned int e = 0; e < _num_e; ++e)
2202 _properties_ve[i][v * _num_e + e] =
2203 _fp->cv_from_v_e(_specific_volume[v], _internal_energy[e]);
2204
2205 if (_interpolated_properties[i] == "cp")
2206 for (unsigned int v = 0; v < _num_v; ++v)
2207 for (unsigned int e = 0; e < _num_e; ++e)
2208 _properties_ve[i][v * _num_e + e] =
2209 _fp->cp_from_v_e(_specific_volume[v], _internal_energy[e]);
2210
2211 if (_interpolated_properties[i] == "entropy")
2212 for (unsigned int v = 0; v < _num_v; ++v)
2213 for (unsigned int e = 0; e < _num_e; ++e)
2214 _properties_ve[i][v * _num_e + e] =
2215 _fp->s_from_v_e(_specific_volume[v], _internal_energy[e]);
2216
2217 if (_interpolated_properties[i] == "pressure")
2218 for (unsigned int v = 0; v < _num_v; ++v)
2219 for (unsigned int e = 0; e < _num_e; ++e)
2220 _properties_ve[i][v * _num_e + e] =
2221 _fp->p_from_v_e(_specific_volume[v], _internal_energy[e]);
2222
2223 if (_interpolated_properties[i] == "temperature")
2224 for (unsigned int v = 0; v < _num_v; ++v)
2225 for (unsigned int e = 0; e < _num_e; ++e)
2226 _properties_ve[i][v * _num_e + e] =
2227 _fp->T_from_v_e(_specific_volume[v], _internal_energy[e]);
2228 }
2229}

Referenced by TabulatedFluidProperties::initialSetup().

◆ h_from_p_T() [1/3]

ADReal TabulatedFluidProperties::h_from_p_T ( const ADReal &  pressure,
const ADReal &  temperature 
) const
overridevirtualinherited

Definition at line 938 of file TabulatedFluidProperties.C.

939{
941 {
942 ADReal pressure_nc = pressure, temperature_nc = temperature;
943 checkInputVariables(pressure_nc, temperature_nc);
945 return _property_ipol[_enthalpy_idx]->sample(pressure_nc, temperature_nc);
947 {
948 ADReal v, e;
949 SinglePhaseFluidProperties::v_e_from_p_T(pressure_nc, temperature_nc, v, e);
950 return _property_ve_ipol[_enthalpy_idx]->sample(v, e);
951 }
952 else
953 NeedTabulationError("enthalpy");
954 }
955 else if (_fp) // Assuming _fp can handle ADReal types
956 return _fp->h_from_p_T(pressure, temperature);
957 else
958 NeedTabulationOrFPError("AD h_from_p_T", "enthalpy");
959}
void v_e_from_p_T(const CppType &p, const CppType &T, CppType &v, CppType &e) const

◆ h_from_p_T() [2/3]

Real TabulatedFluidProperties::h_from_p_T ( Real  p,
Real  T 
) const
overridevirtualinherited

Definition at line 912 of file TabulatedFluidProperties.C.

913{
915 {
916 checkInputVariables(pressure, temperature);
918 return _property_ipol[_enthalpy_idx]->sample(pressure, temperature);
920 {
921 Real v, e;
922 SinglePhaseFluidProperties::v_e_from_p_T(pressure, temperature, v, e);
923 return _property_ve_ipol[_enthalpy_idx]->sample(v, e);
924 }
925 else
926 NeedTabulationError("enthalpy");
927 }
928 else
929 {
930 if (_fp)
931 return _fp->h_from_p_T(pressure, temperature);
932 else
933 NeedTabulationOrFPError("h_from_p_T", "enthalpy");
934 }
935}

Referenced by TabulatedFluidProperties::g_from_v_e(), TabulatedFluidProperties::T_from_p_h(), and TabulatedFluidProperties::T_from_p_h().

◆ h_from_p_T() [3/3]

void TabulatedFluidProperties::h_from_p_T ( Real  pressure,
Real  temperature,
Real &  h,
Real &  dh_dp,
Real &  dh_dT 
) const
overridevirtualinherited

Definition at line 962 of file TabulatedFluidProperties.C.

964{
966 {
967 checkInputVariables(pressure, temperature);
969 _property_ipol[_enthalpy_idx]->sampleValueAndDerivatives(
970 pressure, temperature, h, dh_dp, dh_dT);
972 {
973 Real v, e, dv_dp, dv_dT, de_dp, de_dT;
975 pressure, temperature, v, dv_dp, dv_dT, e, de_dp, de_dT);
976 Real dh_dv, dh_de;
977 _property_ve_ipol[_enthalpy_idx]->sampleValueAndDerivatives(v, e, h, dh_dv, dh_de);
978 dh_dp = dh_dv * dv_dp + dh_de * de_dp;
979 dh_dT = dh_dv * dv_dT + dh_de * de_dT;
980 }
981 else
982 NeedTabulationError("enthalpy");
983 }
984 else
985 {
986 if (_fp)
987 _fp->h_from_p_T(pressure, temperature, h, dh_dp, dh_dT);
988 else
989 NeedTabulationOrFPError("h_from_p_T with derivatives", "enthalpy");
990 }
991}

◆ henryCoefficients()

std::vector< Real > TabulatedFluidProperties::henryCoefficients ( ) const
overridevirtualinherited

The following routines are simply forwarded to the 'fp' companion FluidProperties as they are not included in the tabulations presently.

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1288 of file TabulatedFluidProperties.C.

1289{
1290 if (_fp)
1291 return _fp->henryCoefficients();
1292 else
1293 TabulationNotImplementedError("henryCoefficients");
1294}
virtual std::vector< Real > henryCoefficients() const
Henry's law coefficients for dissolution in water.

◆ initialize()

virtual void FluidProperties::initialize ( )
inlinefinalvirtualinherited

Implements ThreadedGeneralUserObject.

Definition at line 34 of file FluidProperties.h.

34{}

◆ initialSetup()

void TabulatedFluidProperties::initialSetup ( )
overridevirtualinherited

Reimplemented from ThreadedGeneralUserObject.

Definition at line 319 of file TabulatedFluidProperties.C.

320{
322 return;
323 _initial_setup_done = true;
324
326 {
327 // If the user specified a (p, T) tabulation to read, use that
328 if (!_file_name_in.empty())
330 else
331 {
332 if (!_fp)
333 paramError("create_pT_interpolations",
334 "No FluidProperties (specified with 'input_fp' parameter) exists. Either "
335 "specify a 'input_fp' or "
336 "specify a (p, T) tabulation file with the 'fluid_property_file' parameter");
337 _console << name() + ": Generating (p, T) tabulated data\n";
338 _console << std::flush;
339
341 }
342 }
343
345 {
346 // If the user specified a (v, e) tabulation to read, use that
347 if (!_file_name_ve_in.empty())
349 else
350 {
351 if (!_fp)
352 paramError("create_ve_interpolations",
353 "No FluidProperties (specified with 'input_fp' parameter) exists. Either "
354 "specify a 'input_fp' or "
355 "specify a (v, e) tabulation file with the 'fluid_property_ve_file' parameter");
356 _console << name() + ": Generating (v, e) tabulated data\n";
357 _console << std::flush;
358
360 }
361 }
362
365
366 // Could be needed to get bounds computed from (p, T) bounds
369
370 // Write tabulated data to file
371 if (_save_file)
372 {
373 _console << name() + ": Writing tabulated data to " << _file_name_out << "\n";
375 }
376}
const ConsoleStream _console
void paramError(const std::string &param, Args... args) const
FileName _file_name_out
File name of output tabulated data file.
const bool _save_file
Whether to save a generated fluid properties file to disk.
bool _initial_setup_done
keeps track of whether initialSetup has been performed
void readFileTabulationData(bool use_pT)
Read tabulation data from file.
void computePropertyIndicesInInterpolationVectors()
Retrieves the index for each property in the vector of interpolations.
virtual void constructInterpolation()=0
void writeTabulatedData(std::string file_name)
Writes tabulated data to a file.
virtual void generateTabulatedData()
Generates a table of fluid properties by looping over pressure and temperature and calculating proper...
virtual void generateVETabulatedData()
Generates a table of fluid properties by looping over specific volume and internal energy and calcula...

◆ k_from_p_T() [1/2]

Real TabulatedFluidProperties::k_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Definition at line 1135 of file TabulatedFluidProperties.C.

1136{
1138 {
1139 checkInputVariables(pressure, temperature);
1140 return _property_ipol[_k_idx]->sample(pressure, temperature);
1141 }
1142 else
1143 {
1144 if (_fp)
1145 return _fp->k_from_p_T(pressure, temperature);
1146 else
1147 NeedTabulationOrFPError("k_from_p_T", "k");
1148 }
1149}

Referenced by TabulatedFluidProperties::k_from_v_e(), and TabulatedFluidProperties::k_from_v_e().

◆ k_from_p_T() [2/2]

void TabulatedFluidProperties::k_from_p_T ( Real  pressure,
Real  temperature,
Real &  k,
Real &  dk_dp,
Real &  dk_dT 
) const
overridevirtualinherited

Definition at line 1152 of file TabulatedFluidProperties.C.

1154{
1156 {
1157 checkInputVariables(pressure, temperature);
1158 return _property_ipol[_k_idx]->sampleValueAndDerivatives(
1159 pressure, temperature, k, dk_dp, dk_dT);
1160 }
1161 else
1162 {
1163 if (_fp)
1164 return _fp->k_from_p_T(pressure, temperature, k, dk_dp, dk_dT);
1165 else
1166 NeedTabulationOrFPError("k_from_p_T with derivatives", "k");
1167 }
1168}

◆ k_from_v_e() [1/2]

Real TabulatedFluidProperties::k_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

Definition at line 1677 of file TabulatedFluidProperties.C.

1678{
1680 missingVEInterpolationError(__PRETTY_FUNCTION__);
1682
1684 return _property_ve_ipol[_k_idx]->sample(v, e);
1685 else if (_construct_pT_from_ve)
1686 {
1687 Real T = _T_from_v_e_ipol->sample(v, e);
1688 Real p = _p_from_v_e_ipol->sample(v, e);
1689 return k_from_p_T(p, T);
1690 }
1691 else if (_fp)
1692 return _fp->k_from_v_e(v, e);
1693 else
1694 NeedTabulationOrFPError("k_from_v_e", "k");
1695}
virtual Real k_from_p_T(Real pressure, Real temperature) const override

Referenced by TabulatedFluidProperties::writeTabulatedData().

◆ k_from_v_e() [2/2]

void TabulatedFluidProperties::k_from_v_e ( Real  v,
Real  e,
Real &  k,
Real &  dk_dv,
Real &  dk_de 
) const
overridevirtualinherited

Definition at line 1698 of file TabulatedFluidProperties.C.

1699{
1701 missingVEInterpolationError(__PRETTY_FUNCTION__);
1703
1705 _property_ve_ipol[_k_idx]->sampleValueAndDerivatives(v, e, k, dk_dv, dk_de);
1706 else if (_construct_pT_from_ve)
1707 {
1708 Real p, dp_dv, dp_de;
1709 _p_from_v_e_ipol->sampleValueAndDerivatives(v, e, p, dp_dv, dp_de);
1710 Real T, dT_dv, dT_de;
1711 _T_from_v_e_ipol->sampleValueAndDerivatives(v, e, T, dT_dv, dT_de);
1712 Real dk_dp, dk_dT;
1713 k_from_p_T(p, T, k, dk_dp, dk_dT);
1714 dk_dv = dk_dp * dp_dv + dk_dT * dT_dv;
1715 dk_de = dk_dp * dp_de + dk_dT * dT_de;
1716 }
1717 else if (_fp)
1718 _fp->k_from_v_e(v, e, k, dk_dv, dk_de);
1719 else
1720 NeedTabulationOrFPError("k_from_v_e with derivatives", "k");
1721}

◆ makeZeroAndOne() [1/2]

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

Definition at line 485 of file SinglePhaseFluidProperties.h.

486{
487 return {Real{0}, Real{1}};
488}

◆ makeZeroAndOne() [2/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 478 of file SinglePhaseFluidProperties.h.

479{
480 return {T{0, 0}, T{1, 0}};
481}

Referenced by SinglePhaseFluidProperties::xyDerivatives().

◆ missingVEInterpolationError()

void TabulatedFluidProperties::missingVEInterpolationError ( const std::string &  function_name) const
protectedinherited

◆ molarMass()

Real TabulatedFluidProperties::molarMass ( ) const
overridevirtualinherited

Molar mass [kg/mol].

Returns
molar mass

Reimplemented from SinglePhaseFluidProperties.

Definition at line 388 of file TabulatedFluidProperties.C.

389{
390 if (_fp)
391 return _fp->molarMass();
392 else
394}
virtual Real molarMass() const
Molar mass [kg/mol].

◆ mu_from_p_T() [1/2]

Real TabulatedFluidProperties::mu_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Definition at line 994 of file TabulatedFluidProperties.C.

995{
997 {
998 checkInputVariables(pressure, temperature);
999 return _property_ipol[_viscosity_idx]->sample(pressure, temperature);
1000 }
1001 else
1002 {
1003 if (_fp)
1004 return _fp->mu_from_p_T(pressure, temperature);
1005 else
1006 NeedTabulationOrFPError("mu_from_p_T", "viscosity");
1007 }
1008}

Referenced by TabulatedFluidProperties::mu_from_v_e(), and TabulatedFluidProperties::mu_from_v_e().

◆ mu_from_p_T() [2/2]

void TabulatedFluidProperties::mu_from_p_T ( Real  pressure,
Real  temperature,
Real &  mu,
Real &  dmu_dp,
Real &  dmu_dT 
) const
overridevirtualinherited

Definition at line 1011 of file TabulatedFluidProperties.C.

1013{
1015 {
1016 checkInputVariables(pressure, temperature);
1017 _property_ipol[_viscosity_idx]->sampleValueAndDerivatives(
1018 pressure, temperature, mu, dmu_dp, dmu_dT);
1019 }
1020 else
1021 {
1022 if (_fp)
1023 _fp->mu_from_p_T(pressure, temperature, mu, dmu_dp, dmu_dT);
1024 else
1025 NeedTabulationOrFPError("mu_from_p_T with derivatives", "viscosity");
1026 }
1027}
const double mu

◆ mu_from_v_e() [1/2]

Real TabulatedFluidProperties::mu_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

Definition at line 1630 of file TabulatedFluidProperties.C.

1631{
1633 missingVEInterpolationError(__PRETTY_FUNCTION__);
1635
1637 return _property_ve_ipol[_viscosity_idx]->sample(v, e);
1638 else if (_construct_pT_from_ve)
1639 {
1640 Real p = _p_from_v_e_ipol->sample(v, e);
1641 Real T = _T_from_v_e_ipol->sample(v, e);
1642 return mu_from_p_T(p, T);
1643 }
1644 else if (_fp)
1645 return _fp->mu_from_v_e(v, e);
1646 else
1647 NeedTabulationOrFPError("mu_from_v_e", "viscosity");
1648}
virtual Real mu_from_p_T(Real pressure, Real temperature) const override

Referenced by TabulatedFluidProperties::writeTabulatedData().

◆ mu_from_v_e() [2/2]

void TabulatedFluidProperties::mu_from_v_e ( Real  v,
Real  e,
Real &  mu,
Real &  dmu_dv,
Real &  dmu_de 
) const
overridevirtualinherited

Definition at line 1651 of file TabulatedFluidProperties.C.

1652{
1654 missingVEInterpolationError(__PRETTY_FUNCTION__);
1656
1658 _property_ve_ipol[_viscosity_idx]->sampleValueAndDerivatives(v, e, mu, dmu_dv, dmu_de);
1659 else if (_construct_pT_from_ve)
1660 {
1661 Real p, dp_dv, dp_de;
1662 _p_from_v_e_ipol->sampleValueAndDerivatives(v, e, p, dp_dv, dp_de);
1663 Real T, dT_dv, dT_de;
1664 _T_from_v_e_ipol->sampleValueAndDerivatives(v, e, T, dT_dv, dT_de);
1665 Real dmu_dp, dmu_dT;
1666 mu_from_p_T(p, T, mu, dmu_dp, dmu_dT);
1667 dmu_dv = dmu_dp * dp_dv + dmu_dT * dT_dv;
1668 dmu_de = dmu_dp * dp_de + dmu_dT * dT_de;
1669 }
1670 else if (_fp)
1671 _fp->mu_from_v_e(v, e, mu, dmu_dv, dmu_de);
1672 else
1673 NeedTabulationOrFPError("mu_from_v_e with derivatives", "viscosity");
1674}

◆ NeedTabulationError()

void TabulatedFluidProperties::NeedTabulationError ( const std::string &  needed_property) const
protectedinherited

Utility to forward errors related to properties being requested for tabulation, but no tabulation is present This should generally be used as an 'else' condition to if (_interpolate_needed_property)

Definition at line 1922 of file TabulatedFluidProperties.C.

1923{
1924 mooseError("Property '" + needed_property +
1925 "' is marked as interpolated but neither of the following methods are active:\n- "
1926 "(p,T) interpolation created from fluid properties ('create_pT_interpolations' "
1927 "parameter)\n- a (p,T) tabulation file ('fluid_property_file')\n- (v,e) interpolation "
1928 "created from fluid properties or a (p,T) tabulation ('create_ve_interpolations' "
1929 "parameter)\n- a (v,e) tabulation file ('fluid_property_ve_file' parameter)");
1930}

Referenced by TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), and TabulatedFluidProperties::s_from_p_T().

◆ NeedTabulationOrFPError()

void TabulatedFluidProperties::NeedTabulationOrFPError ( const std::string &  desired_routine,
const std::string &  needed_property 
) const
protectedinherited

Utility to forward errors related to fluid properties needing more data for their computation This should generally be used as an 'else' condition to if (_interpolate_property) / else if (_fp)

Definition at line 1911 of file TabulatedFluidProperties.C.

1913{
1914 mooseError(
1915 "TabulatedFluidProperties can only call the function '" + desired_routine +
1916 "' when either:\n- the property '" + needed_property +
1917 "' is tabulated and listed in the 'interpolated_properties' parameter.\n- the 'input_fp' "
1918 "parameter is provided.");
1919}

Referenced by TabulatedFluidProperties::c_from_p_T(), TabulatedFluidProperties::c_from_p_T(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::cp_from_p_T(), TabulatedFluidProperties::cp_from_p_T(), TabulatedFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cv_from_p_T(), TabulatedFluidProperties::cv_from_p_T(), TabulatedFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::k_from_p_T(), TabulatedFluidProperties::k_from_p_T(), TabulatedFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TabulatedFluidProperties::mu_from_p_T(), TabulatedFluidProperties::mu_from_p_T(), TabulatedFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), and TabulatedFluidProperties::v_from_p_T().

◆ outputWarnings()

void TabulatedBicubicFluidProperties::outputWarnings ( unsigned int  num_nans_p,
unsigned int  num_nans_T,
unsigned int  num_out_bounds_p,
unsigned int  num_out_bounds_T,
unsigned int  convergence_failures,
unsigned int  number_points,
std::string  variable_set 
)
protectedinherited

Definition at line 321 of file TabulatedBicubicFluidProperties.C.

328{
329 // make string variables before mooseWarning
330 std::string while_creating =
331 "While creating (p,T) from " + variable_set + " interpolation tables,\n";
332 std::string warning_message = while_creating;
333 std::string converge_fails = "Inversion to (p,T) from " + variable_set + " failed " +
334 std::to_string(convergence_failures) + " times\n";
335 std::string p_nans = "- " + std::to_string(num_nans_p) + " nans generated out of " +
336 std::to_string(number_points) + " points for pressure\n";
337 std::string T_nans = "- " + std::to_string(num_nans_T) + " nans generated out of " +
338 std::to_string(number_points) + " points for temperature\n";
339 std::string p_oob = "- " + std::to_string(num_out_bounds_p) + " of " +
340 std::to_string(number_points) + " pressure values were out of bounds\n";
341 std::string T_oob = "- " + std::to_string(num_out_bounds_T) + " of " +
342 std::to_string(number_points) + " temperature values were out of bounds\n";
343 std::string outcome = "The pressure and temperature values were replaced with their respective "
344 "min and max values.\n";
345
346 // bounds are different depending on how the object is used
347 std::string source = (_fp ? "from input parameters" : "from tabulation file");
348
349 // if any of these do not exist, do not want to print them
350 if (convergence_failures)
351 warning_message += converge_fails;
352 if (num_nans_p)
353 warning_message += p_nans;
354 if (num_nans_T)
355 warning_message += T_nans;
356 if (num_out_bounds_p)
357 {
358 warning_message += p_oob;
359 warning_message += ("Pressure bounds " + source + ": [" + std::to_string(_pressure_min) + ", " +
360 std::to_string(_pressure_max) + "]\n");
361 }
362 if (num_out_bounds_T)
363 {
364 warning_message += T_oob;
365 warning_message += ("Temperature bounds " + source + ": [" + std::to_string(_temperature_min) +
366 ", " + std::to_string(_temperature_max) + "]\n");
367 }
368 // print warning
369 if (num_nans_p || num_nans_T || num_out_bounds_p || num_out_bounds_T || convergence_failures)
370 mooseWarning(warning_message + outcome);
371}

◆ p_from_v_e() [1/3]

void TabulatedFluidProperties::p_from_v_e ( const ADReal &  v,
const ADReal &  e,
ADReal &  p,
ADReal &  dp_dv,
ADReal &  dp_de 
) const
overridevirtualinherited

Definition at line 1417 of file TabulatedFluidProperties.C.

1419{
1421 missingVEInterpolationError(__PRETTY_FUNCTION__);
1422 ADReal vc = v, ec = e;
1423 checkInputVariablesVE(vc, ec);
1424
1426 _property_ve_ipol[_p_idx]->sampleValueAndDerivatives(vc, ec, p, dp_dv, dp_de);
1427 else if (_construct_pT_from_ve)
1428 _p_from_v_e_ipol->sampleValueAndDerivatives(vc, ec, p, dp_dv, dp_de);
1429 else if (_fp)
1430 _fp->p_from_v_e(vc, ec, p, dp_dv, dp_de);
1431 else
1432 NeedTabulationOrFPError("AD p_from_v_e with derivatives", "pressure");
1433}

◆ p_from_v_e() [2/3]

Real TabulatedFluidProperties::p_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

Derivatives like dc_dv & dc_de are computed using the chain rule dy/dx(p,T) = dy/dp * dp/dx + dy/dT * dT/dx where y = c, cp, cv... & x = v, e.

Definition at line 1383 of file TabulatedFluidProperties.C.

1384{
1386 missingVEInterpolationError(__PRETTY_FUNCTION__);
1388
1390 return _property_ve_ipol[_p_idx]->sample(v, e);
1391 else if (_construct_pT_from_ve)
1392 return _p_from_v_e_ipol->sample(v, e);
1393 else if (_fp)
1394 return _fp->p_from_v_e(v, e);
1395 else
1396 NeedTabulationOrFPError("p_from_v_e", "pressure");
1397}

Referenced by TabulatedBicubicFluidProperties::constructInterpolation(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), and TabulatedFluidProperties::writeTabulatedData().

◆ p_from_v_e() [3/3]

void TabulatedFluidProperties::p_from_v_e ( Real  v,
Real  e,
Real &  p,
Real &  dp_dv,
Real &  dp_de 
) const
overridevirtualinherited

Definition at line 1400 of file TabulatedFluidProperties.C.

1401{
1403 missingVEInterpolationError(__PRETTY_FUNCTION__);
1405
1407 _property_ve_ipol[_p_idx]->sampleValueAndDerivatives(v, e, p, dp_dv, dp_de);
1408 else if (_construct_pT_from_ve)
1409 _p_from_v_e_ipol->sampleValueAndDerivatives(v, e, p, dp_dv, dp_de);
1410 else if (_fp)
1411 _fp->p_from_v_e(v, e, p, dp_dv, dp_de);
1412 else
1413 NeedTabulationOrFPError("p_from_v_e with derivatives", "pressure");
1414}

◆ 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 599 of file SinglePhaseFluidProperties.h.

606{
607 auto h_lambda = [&](const T & pressure, const T & temperature, T & new_h, T & dh_dp, T & dh_dT)
608 { h_from_p_T(pressure, temperature, new_h, dh_dp, dh_dT); };
609 auto s_lambda = [&](const T & pressure, const T & temperature, T & new_s, T & ds_dp, T & ds_dT)
610 { s_from_p_T(pressure, temperature, new_s, ds_dp, ds_dT); };
611 try
612 {
614 s,
615 p0,
616 T0,
617 pressure,
618 temperature,
621 h_lambda,
622 s_lambda,
623 "p_T_from_h_s",
626 conversion_succeeded = true;
627 }
628 catch (MooseException &)
629 {
630 conversion_succeeded = false;
631 }
632
633 if (!conversion_succeeded)
634 mooseDoOnce(mooseWarning("Conversion from (h, s)=(", h, ", ", s, ") to (p, T) failed"));
635}
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 &f_from_x_y, const Functor2 &g_from_x_y, const std::string &caller_name="", const unsigned int max_its=100, bool debug=false)
NewtonSolve2D does a 2D Newton Solve to solve for the x and y such that: f = f_from_x_y(x,...

Referenced by TabulatedFluidProperties::T_from_h_s().

◆ p_T_from_v_e()

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 513 of file SinglePhaseFluidProperties.h.

520{
521 auto v_lambda = [&](const CppType & pressure,
522 const CppType & temperature,
523 CppType & new_v,
524 CppType & dv_dp,
525 CppType & dv_dT) { v_from_p_T(pressure, temperature, new_v, dv_dp, dv_dT); };
526 auto e_lambda = [&](const CppType & pressure,
527 const CppType & temperature,
528 CppType & new_e,
529 CppType & de_dp,
530 CppType & de_dT) { e_from_p_T(pressure, temperature, new_e, de_dp, de_dT); };
531 try
532 {
534 e,
535 p0,
536 T0,
537 p,
538 T,
541 v_lambda,
542 e_lambda,
543 "p_T_from_v_e",
546 conversion_succeeded = true;
547 }
548 catch (MooseException &)
549 {
550 conversion_succeeded = false;
551 }
552
553 if (!conversion_succeeded)
554 mooseDoOnce(mooseWarning("Conversion from (v, e)=(", v, ", ", e, ") to (p, T) failed"));
555}

Referenced by TabulatedBicubicFluidProperties::constructInterpolation(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_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().

◆ p_T_from_v_h()

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 559 of file SinglePhaseFluidProperties.h.

566{
567 auto v_lambda = [&](const T & pressure, const T & temperature, T & new_v, T & dv_dp, T & dv_dT)
568 { v_from_p_T(pressure, temperature, new_v, dv_dp, dv_dT); };
569 auto h_lambda = [&](const T & pressure, const T & temperature, T & new_h, T & dh_dp, T & dh_dT)
570 { h_from_p_T(pressure, temperature, new_h, dh_dp, dh_dT); };
571 try
572 {
574 h,
575 p0,
576 T0,
577 pressure,
578 temperature,
581 v_lambda,
582 h_lambda,
583 "p_T_from_v_h",
586 conversion_succeeded = true;
587 }
588 catch (MooseException &)
589 {
590 conversion_succeeded = false;
591 }
592
593 if (!conversion_succeeded)
594 mooseDoOnce(mooseWarning("Conversion from (v, h)=(", v, ", ", h, ") to (p, T) failed"));
595}

◆ propfunc() [1/12]

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

◆ propfunc() [2/12]

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

◆ propfunc() [3/12]

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

◆ propfunc() [4/12]

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

◆ propfunc() [5/12]

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

◆ propfunc() [6/12]

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

◆ propfunc() [7/12]

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

◆ propfunc() [8/12]

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

◆ propfunc() [9/12]

SinglePhaseFluidProperties::propfunc ( p  ,
v  ,
e   
)
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:

@begincode 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:

@begincode // 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:

@begincode 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() [10/12]

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

◆ propfunc() [11/12]

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

◆ propfunc() [12/12]

e e e e SinglePhaseFluidProperties::propfunc ( s  ,
h  ,
p   
)
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 T rho v v T e p T T SinglePhaseFluidProperties::propfuncWithDefault ( gamma  ,
v  ,
e   
)
inherited

◆ propfuncWithDefault() [3/7]

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

◆ propfuncWithDefault() [4/7]

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

◆ propfuncWithDefault() [5/7]

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

◆ propfuncWithDefault() [6/7]

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

◆ propfuncWithDefault() [7/7]

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

◆ readFileTabulationData()

void TabulatedFluidProperties::readFileTabulationData ( bool  use_pT)
protectedinherited

Read tabulation data from file.

Definition at line 2346 of file TabulatedFluidProperties.C.

2347{
2348 std::string file_name;
2349 if (use_pT)
2350 {
2351 _console << name() + ": Reading tabulated properties from " << _file_name_in << std::endl;
2352 _csv_reader.read();
2353 file_name = _file_name_in;
2354 }
2355 else
2356 {
2357 _console << name() + ": Reading tabulated properties from " << _file_name_ve_in << std::endl;
2359 _csv_reader.read();
2360 file_name = _file_name_ve_in;
2361 }
2362
2363 const std::vector<std::string> & column_names = _csv_reader.getNames();
2364
2365 // These columns form the grid and must be present in the file
2366 std::vector<std::string> required_columns;
2367 if (use_pT)
2368 required_columns = {"pressure", "temperature"};
2369 else
2370 required_columns = {"specific_volume", "internal_energy"};
2371
2372 // Check that all required columns are present
2373 for (std::size_t i = 0; i < required_columns.size(); ++i)
2374 {
2375 if (std::find(column_names.begin(), column_names.end(), required_columns[i]) ==
2376 column_names.end())
2377 mooseError("No ",
2378 required_columns[i],
2379 " data read in ",
2380 file_name,
2381 ". A column named ",
2382 required_columns[i],
2383 " must be present");
2384 }
2385
2386 // These columns can be present in the file
2387 std::vector<std::string> property_columns = {
2388 "density", "enthalpy", "viscosity", "k", "c", "cv", "cp", "entropy"};
2389 if (use_pT)
2390 property_columns.push_back("internal_energy");
2391 else
2392 {
2393 property_columns.push_back("pressure");
2394 property_columns.push_back("temperature");
2395 }
2396
2397 // Check that any property names read from the file are present in the list of possible
2398 // properties, and if they are, add them to the list of read properties
2399 for (std::size_t i = 0; i < column_names.size(); ++i)
2400 {
2401 // Only check properties not in _required_columns
2402 if (std::find(required_columns.begin(), required_columns.end(), column_names[i]) ==
2403 required_columns.end())
2404 {
2405 if (std::find(property_columns.begin(), property_columns.end(), column_names[i]) ==
2406 property_columns.end())
2407 mooseWarning(column_names[i],
2408 " read in ",
2409 file_name,
2410 " tabulation file is not one of the properties that TabulatedFluidProperties "
2411 "understands. It will be ignored.");
2412 // We could be reading a (v,e) tabulation after having read a (p,T) tabulation, do not
2413 // insert twice
2414 // Also only allow properties specified as interpolated if user passed the parameter
2415 else if (std::find(_interpolated_properties.begin(),
2417 column_names[i]) == _interpolated_properties.end() &&
2418 (!isParamSetByUser("interpolated_properties") ||
2419 _interpolated_properties_enum.contains(column_names[i])))
2420 _interpolated_properties.push_back(column_names[i]);
2421 }
2422 }
2423
2424 std::map<std::string, unsigned int> data_index;
2425 for (std::size_t i = 0; i < column_names.size(); ++i)
2426 {
2427 auto it = std::find(column_names.begin(), column_names.end(), column_names[i]);
2428 data_index[column_names[i]] = std::distance(column_names.begin(), it);
2429 }
2430
2431 const std::vector<std::vector<Real>> & column_data = _csv_reader.getData();
2432
2433 // Extract the pressure and temperature data vectors
2434 if (use_pT)
2435 {
2436 _pressure = column_data[data_index.find("pressure")->second];
2437 _temperature = column_data[data_index.find("temperature")->second];
2438 }
2439 else
2440 {
2441 _specific_volume = column_data[data_index.find("specific_volume")->second];
2442 _internal_energy = column_data[data_index.find("internal_energy")->second];
2443 }
2444
2445 if (use_pT)
2446 checkFileTabulationGrids(_pressure, _temperature, file_name, "pressure", "temperature");
2447 else
2450 file_name,
2451 "specific volume",
2452 "specific internal energy");
2453
2454 if (use_pT)
2455 {
2456 _num_p = _pressure.size();
2457 _num_T = _temperature.size();
2458
2459 // Minimum and maximum pressure and temperature. Note that _pressure and
2460 // _temperature are sorted
2461 _pressure_min = _pressure.front();
2462 _pressure_max = _pressure.back();
2465 checkInitialGuess(true);
2466
2467 // Extract the fluid property data from the file
2468 for (std::size_t i = 0; i < _interpolated_properties.size(); ++i)
2469 _properties.push_back(column_data[data_index.find(_interpolated_properties[i])->second]);
2470 }
2471 else
2472 {
2473 _num_v = _specific_volume.size();
2474 _num_e = _internal_energy.size();
2475
2476 // Minimum and maximum specific internal energy and specific volume
2477 _v_min = _specific_volume.front();
2478 _v_max = _specific_volume.back();
2479 _e_min = _internal_energy.front();
2480 _e_max = _internal_energy.back();
2481
2482 // We cannot overwrite the tabulated data grid with a grid generated from user-input for the
2483 // purpose of creating (p,T) to (v,e) interpolations
2485 paramError("construct_pT_from_ve",
2486 "Reading a (v,e) tabulation and generating (p,T) to (v,e) interpolation tables is "
2487 "not supported at this time.");
2488
2489 // Make sure we use the tabulation bounds
2490 _e_bounds_specified = true;
2491 _v_bounds_specified = true;
2492
2493 // Extract the fluid property data from the file
2495 for (std::size_t i = 0; i < _interpolated_properties.size(); ++i)
2496 _properties_ve.push_back(column_data[data_index.find(_interpolated_properties[i])->second]);
2497
2498 // Obtain the min/max T, p and check the initial guess
2499 const auto & p_col = column_data[data_index.find("pressure")->second];
2500 _pressure_min = *std::min_element(p_col.begin(), p_col.end());
2501 _pressure_max = *std::max_element(p_col.begin(), p_col.end());
2502 const auto & T_col = column_data[data_index.find("temperature")->second];
2503 _temperature_min = *std::min_element(T_col.begin(), T_col.end());
2504 _temperature_max = *std::max_element(T_col.begin(), T_col.end());
2505 checkInitialGuess(true);
2506 }
2507}
const std::vector< std::string > & getNames() const
const std::vector< std::vector< T > > & getData() const
void setFileName(const std::string &new_file)
bool contains(const std::string &value) const
void checkFileTabulationGrids(std::vector< Real > &v1, std::vector< Real > &v2, const std::string &file_name, const std::string &v1_name, const std::string &v2_name)
Check that the tabulation grids in the file are correct (no repeats etc)
MooseUtils::DelimitedFileReader _csv_reader
The MOOSE delimited file reader.
virtual void checkInitialGuess(bool post_reading_tabulation) const
Checks initial guess for Newton Method.

Referenced by TabulatedFluidProperties::initialSetup().

◆ reshapeData2D()

void TabulatedBicubicFluidProperties::reshapeData2D ( unsigned int  nrow,
unsigned int  ncol,
const std::vector< Real > &  vec,
std::vector< std::vector< Real > > &  mat 
)
protectedinherited

Forms a 2D matrix from a single std::vector.

Parameters
nrownumber of rows in the matrix
ncolnumber of columns in the matrix
vec1D vector to reshape into a 2D matrix
[out]2Dmatrix formed by reshaping vec

Definition at line 254 of file TabulatedBicubicFluidProperties.C.

258{
259 if (!vec.empty())
260 {
261 mat.resize(nrow);
262 for (unsigned int i = 0; i < nrow; ++i)
263 mat[i].resize(ncol);
264
265 for (unsigned int i = 0; i < nrow; ++i)
266 for (unsigned int j = 0; j < ncol; ++j)
267 mat[i][j] = vec[i * ncol + j];
268 }
269}

Referenced by TabulatedBicubicFluidProperties::constructInterpolation().

◆ 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 438 of file SinglePhaseFluidProperties.C.

446{
447 rho_from_p_T(p, T, rho, drho_dp, drho_dT);
448 e_from_p_T(p, T, e, de_dp, de_dT);
449}

◆ rho_from_p_s() [1/2]

Real TabulatedFluidProperties::rho_from_p_s ( Real  p,
Real  s 
) const
overridevirtualinherited

Definition at line 594 of file TabulatedFluidProperties.C.

595{
596 Real T = T_from_p_s(p, s);
597 return rho_from_p_T(p, T);
598}
virtual Real T_from_p_s(Real p, Real s) const

◆ rho_from_p_s() [2/2]

void TabulatedFluidProperties::rho_from_p_s ( Real  p,
Real  s,
Real &  rho,
Real &  drho_dp,
Real &  drho_ds 
) const
overridevirtualinherited

Definition at line 601 of file TabulatedFluidProperties.C.

603{
604 Real T, dT_dp, dT_ds;
605 T_from_p_s(p, s, T, dT_dp, dT_ds);
606 Real drho_dp_T, drho_dT;
607 rho_from_p_T(p, T, rho, drho_dp_T, drho_dT);
608 drho_dp = drho_dT * dT_dp + drho_dp_T;
609 drho_ds = drho_dT * dT_ds;
610}

◆ rho_from_p_T() [1/4]

ADReal TabulatedFluidProperties::rho_from_p_T ( const ADReal &  pressure,
const ADReal &  temperature 
) const
overridevirtualinherited

Definition at line 522 of file TabulatedFluidProperties.C.

523{
525 {
526 ADReal pressure_nc = pressure, temperature_nc = temperature;
527 checkInputVariables(pressure_nc, temperature_nc);
528 return _property_ipol[_density_idx]->sample(pressure_nc, temperature_nc);
529 }
531 return 1. / v_from_p_T(pressure, temperature);
532 else
533 {
534 if (_fp)
535 return _fp->rho_from_p_T(pressure, temperature);
536 else
537 NeedTabulationOrFPError("AD rho_from_p_T", "density");
538 }
539}
virtual Real v_from_p_T(Real pressure, Real temperature) const override

◆ rho_from_p_T() [2/4]

void TabulatedFluidProperties::rho_from_p_T ( const ADReal &  pressure,
const ADReal &  temperature,
ADReal &  rho,
ADReal &  drho_dp,
ADReal &  drho_dT 
) const
overridevirtualinherited

Definition at line 572 of file TabulatedFluidProperties.C.

577{
579 {
580 ADReal p = pressure, T = temperature;
582 _property_ipol[_density_idx]->sampleValueAndDerivatives(p, T, rho, drho_dp, drho_dT);
583 }
584 else
585 {
586 if (_fp)
587 _fp->rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
588 else
589 NeedTabulationOrFPError("AD rho_from_p_T with derivatives", "density");
590 }
591}

◆ rho_from_p_T() [3/4]

Real TabulatedFluidProperties::rho_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

◆ rho_from_p_T() [4/4]

void TabulatedFluidProperties::rho_from_p_T ( Real  pressure,
Real  temperature,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT 
) const
overridevirtualinherited

Definition at line 542 of file TabulatedFluidProperties.C.

544{
546 {
547 checkInputVariables(pressure, temperature);
548 _property_ipol[_density_idx]->sampleValueAndDerivatives(
549 pressure, temperature, rho, drho_dp, drho_dT);
550 }
552 {
553 checkInputVariables(pressure, temperature);
554 // use finite differencing stencil
555 rho = rho_from_p_T(pressure, temperature);
556 // Relative steps, made absolute at zero so that they do not vanish
557 const Real dp = (pressure == 0 ? 1.0 : std::abs(pressure)) * 1e-8;
558 const Real dT = temperature * 1e-8;
559 drho_dp = (rho_from_p_T(pressure + dp, temperature) - rho) / dp;
560 drho_dT = (rho_from_p_T(pressure, temperature + dT) - rho) / dT;
561 }
562 else
563 {
564 if (_fp)
565 _fp->rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
566 else
567 NeedTabulationOrFPError("rho_from_p_T with derivatives", "density");
568 }
569}

◆ rho_mu_from_p_T() [1/3]

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

Definition at line 473 of file SinglePhaseFluidProperties.C.

477{
478 rho = rho_from_p_T(p, T);
479 mu = mu_from_p_T(p, T);
480}

◆ rho_mu_from_p_T() [2/3]

void SinglePhaseFluidProperties::rho_mu_from_p_T ( Real  p,
Real  T,
Real &  rho,
Real &  drho_dp,
Real &  drho_dT,
Real &  mu,
Real &  dmu_dp,
Real &  dmu_dT 
) const
virtualinherited

Reimplemented in CO2FluidProperties, HydrogenFluidProperties, NitrogenFluidProperties, and Water97FluidProperties.

Definition at line 459 of file SinglePhaseFluidProperties.C.

467{
468 rho_from_p_T(p, T, rho, drho_dp, drho_dT);
469 mu_from_p_T(p, T, mu, dmu_dp, dmu_dT);
470}

◆ rho_mu_from_p_T() [3/3]

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

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 in CO2FluidProperties, HydrogenFluidProperties, NitrogenFluidProperties, and Water97FluidProperties.

Definition at line 452 of file SinglePhaseFluidProperties.C.

453{
454 rho = rho_from_p_T(p, T);
455 mu = mu_from_p_T(p, T);
456}

Referenced by PorousFlowBrineCO2::gasProperties(), PorousFlowWaterNCG::gasProperties(), and PorousFlowWaterNCG::liquidProperties().

◆ s_from_h_p() [1/2]

Real TabulatedFluidProperties::s_from_h_p ( Real  h,
Real  pressure 
) const
overridevirtualinherited

Definition at line 1885 of file TabulatedFluidProperties.C.

1886{
1887 Real T = T_from_p_h(pressure, enthalpy);
1888 return s_from_p_T(pressure, T);
1889}
virtual Real T_from_p_h(Real pressure, Real enthalpy) const override

◆ s_from_h_p() [2/2]

void TabulatedFluidProperties::s_from_h_p ( Real  h,
Real  pressure,
Real &  s,
Real &  ds_dh,
Real &  ds_dp 
) const
overridevirtualinherited

Definition at line 1892 of file TabulatedFluidProperties.C.

1894{
1895 if (_fp)
1896 _fp->s_from_h_p(h, pressure, s, ds_dh, ds_dp);
1897 else
1898 TabulationNotImplementedError("s_from_h_p with derivatives");
1899}

◆ s_from_p_T() [1/2]

void TabulatedFluidProperties::s_from_p_T ( Real  p,
Real  T,
Real &  s,
Real &  ds_dp,
Real &  ds_dT 
) const
overridevirtualinherited

Definition at line 1188 of file TabulatedFluidProperties.C.

1189{
1191 {
1194 _property_ipol[_entropy_idx]->sampleValueAndDerivatives(p, T, s, ds_dp, ds_dT);
1196 {
1197 Real v, e, dv_dp, dv_dT, de_dp, de_dT;
1198 SinglePhaseFluidProperties::v_e_from_p_T(p, T, v, dv_dp, dv_dT, e, de_dp, de_dT);
1199 Real ds_dv, ds_de;
1200 _property_ve_ipol[_entropy_idx]->sampleValueAndDerivatives(v, e, s, ds_dv, ds_de);
1201 ds_dp = ds_dv * dv_dp + ds_de * de_dp;
1202 ds_dT = ds_dv * dv_dT + ds_de * de_dT;
1203 }
1204 else
1205 NeedTabulationError("entropy");
1206 }
1207 else
1208 {
1209 if (_fp)
1210 _fp->s_from_p_T(p, T, s, ds_dp, ds_dT);
1211 else
1212 NeedTabulationOrFPError("s_from_p_T with derivatives", "entropy");
1213 }
1214}

◆ s_from_p_T() [2/2]

Real TabulatedFluidProperties::s_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Definition at line 1171 of file TabulatedFluidProperties.C.

1172{
1174 {
1175 checkInputVariables(pressure, temperature);
1176 return _property_ipol[_entropy_idx]->sample(pressure, temperature);
1177 }
1178 else
1179 {
1180 if (_fp)
1181 return _fp->s_from_p_T(pressure, temperature);
1182 else
1183 NeedTabulationOrFPError("s_from_p_T", "entropy");
1184 }
1185}

Referenced by TabulatedFluidProperties::g_from_v_e(), TabulatedFluidProperties::s_from_h_p(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::T_from_p_s(), and TabulatedFluidProperties::T_from_p_s().

◆ s_from_v_e() [1/2]

Real TabulatedFluidProperties::s_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

Definition at line 1724 of file TabulatedFluidProperties.C.

1725{
1727 missingVEInterpolationError(__PRETTY_FUNCTION__);
1729
1731 return _property_ve_ipol[_entropy_idx]->sample(v, e);
1732 else if (_construct_pT_from_ve)
1733 {
1734 Real T = _T_from_v_e_ipol->sample(v, e);
1735 Real p = _p_from_v_e_ipol->sample(v, e);
1736 return s_from_p_T(p, T);
1737 }
1738 else if (_fp)
1739 return _fp->s_from_v_e(v, e);
1740 else
1741 NeedTabulationOrFPError("s_from_v_e", "entropy");
1742}

Referenced by TabulatedFluidProperties::writeTabulatedData().

◆ s_from_v_e() [2/2]

void TabulatedFluidProperties::s_from_v_e ( Real  v,
Real  e,
Real &  s,
Real &  ds_dv,
Real &  ds_de 
) const
overridevirtualinherited

Definition at line 1745 of file TabulatedFluidProperties.C.

1746{
1748 missingVEInterpolationError(__PRETTY_FUNCTION__);
1750
1752 _property_ve_ipol[_entropy_idx]->sampleValueAndDerivatives(v, e, s, ds_dv, ds_de);
1753 else if (_construct_pT_from_ve)
1754 {
1755 Real p, T, dT_dv, dT_de, dp_dv, dp_de;
1756 _T_from_v_e_ipol->sampleValueAndDerivatives(v, e, T, dT_dv, dT_de);
1757 _p_from_v_e_ipol->sampleValueAndDerivatives(v, e, p, dp_dv, dp_de);
1758 Real ds_dp, ds_dT;
1759 s_from_p_T(p, T, s, ds_dp, ds_dT);
1760 ds_dv = ds_dp * dp_dv + ds_dT * dT_dv;
1761 ds_de = ds_dp * dp_de + ds_dT * dT_de;
1762 }
1763 else if (_fp)
1764 _fp->s_from_v_e(v, e, s, ds_dv, ds_de);
1765 else
1766 NeedTabulationOrFPError("s_from_v_e", "entropy");
1767}

◆ setSpecificVolumeGrid()

void CheckNaNsTabulatedFluidProperties::setSpecificVolumeGrid ( const std::vector< Real > &  v)

Set the specific volume grid and its bounds.

Definition at line 27 of file CheckNaNsTabulatedFluidProperties.C.

28{
30 _v_min = v.front();
31 _v_max = v.back();
32}

◆ subdomainSetup()

virtual void FluidProperties::subdomainSetup ( )
inlinefinalvirtualinherited

Reimplemented from ThreadedGeneralUserObject.

Definition at line 38 of file FluidProperties.h.

38{}

◆ T_from_h_s()

Real TabulatedFluidProperties::T_from_h_s ( Real  h,
Real  s 
) const
virtualinherited

Definition at line 1805 of file TabulatedFluidProperties.C.

1806{
1809 Real p, T;
1810 bool conversion_succeeded;
1811 p_T_from_h_s(h, s, p0, T0, p, T, conversion_succeeded);
1812 return T;
1813}
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 ...

◆ T_from_p_h() [1/2]

ADReal TabulatedFluidProperties::T_from_p_h ( const ADReal &  pressure,
const ADReal &  enthalpy 
) const
overridevirtualinherited

Definition at line 1847 of file TabulatedFluidProperties.C.

1848{
1849 using std::isnan;
1851 {
1852 auto lambda =
1853 [&](ADReal pressure, ADReal current_T, ADReal & new_h, ADReal & dh_dp, ADReal & dh_dT)
1854 {
1855 h_from_p_T(pressure.value(), current_T.value(), new_h.value(), dh_dp.value(), dh_dT.value());
1856 // Reconstruct derivatives
1857 new_h.derivatives() =
1858 dh_dp.value() * pressure.derivatives() + dh_dT.value() * current_T.derivatives();
1859 };
1861 enthalpy,
1863 _tolerance,
1864 lambda,
1865 name() + "::T_from_p_h",
1868 .first;
1869 // check for nans
1870 if (isnan(T))
1871 mooseError("Conversion from enthalpy (h = ",
1872 enthalpy,
1873 ") and pressure (p = ",
1874 pressure,
1875 ") to temperature failed to converge.");
1876 return T;
1877 }
1878 else if (_fp)
1879 return _fp->T_from_p_h(pressure, enthalpy);
1880 else
1881 NeedTabulationOrFPError("T_from_p_h", "temperature");
1882}
LIBMESH_DEVICE_INLINE bool isnan(std::complex< T > a)

◆ T_from_p_h() [2/2]

Real TabulatedFluidProperties::T_from_p_h ( Real  pressure,
Real  enthalpy 
) const
overridevirtualinherited

Definition at line 1816 of file TabulatedFluidProperties.C.

1817{
1819 {
1820 auto lambda = [&](Real pressure, Real current_T, Real & new_h, Real & dh_dp, Real & dh_dT)
1821 { h_from_p_T(pressure, current_T, new_h, dh_dp, dh_dT); };
1823 enthalpy,
1825 _tolerance,
1826 lambda,
1827 name() + "::T_from_p_h",
1830 .first;
1831 // check for nans
1832 if (std::isnan(T))
1833 mooseError("Conversion from enthalpy (h = ",
1834 enthalpy,
1835 ") and pressure (p = ",
1836 pressure,
1837 ") to temperature failed to converge.");
1838 return T;
1839 }
1840 else if (_fp)
1841 return _fp->T_from_p_h(pressure, enthalpy);
1842 else
1843 NeedTabulationOrFPError("T_from_p_h", "temperature");
1844}

Referenced by TabulatedFluidProperties::s_from_h_p().

◆ T_from_p_rho() [1/3]

ADReal TabulatedFluidProperties::T_from_p_rho ( const ADReal &  pressure,
const ADReal &  rho 
) const
virtualinherited

Definition at line 832 of file TabulatedFluidProperties.C.

833{
835 {
836 auto lambda =
837 [&](ADReal p, ADReal current_T, ADReal & new_rho, ADReal & drho_dp, ADReal & drho_dT)
838 { rho_from_p_T(p, current_T, new_rho, drho_dp, drho_dT); };
840 rho,
843 lambda,
844 name() + "::T_from_p_rho",
847 .first;
848 // check for nans
849 if (std::isnan(T.value()))
850 mooseError("Conversion from pressure (p = ",
851 pressure,
852 ") and density (rho = ",
853 rho,
854 ") to temperature failed to converge.");
855 return T;
856 }
858 return T_from_v_e(1. / rho, e_from_p_rho(pressure, rho));
859 else
860 NeedTabulationOrFPError("AD T_from_p_rho", "temperature");
861}
virtual Real e_from_p_rho(Real pressure, Real rho) const override

◆ T_from_p_rho() [2/3]

Real TabulatedFluidProperties::T_from_p_rho ( Real  pressure,
Real  rho 
) const
virtualinherited

Definition at line 799 of file TabulatedFluidProperties.C.

800{
803 {
804 checkInputVariables(pressure, T);
805 auto lambda = [&](Real p, Real current_T, Real & new_rho, Real & drho_dp, Real & drho_dT)
806 { rho_from_p_T(p, current_T, new_rho, drho_dp, drho_dT); };
808 rho,
811 lambda,
812 name() + "::T_from_p_rho",
815 .first;
816 }
818 T = T_from_v_e(1. / rho, e_from_p_rho(pressure, rho));
819 else
820 NeedTabulationOrFPError("T_from_p_rho", "temperature");
821 // check for nans
822 if (std::isnan(T))
823 mooseError("Conversion from pressure (p = ",
824 pressure,
825 ") and density (rho = ",
826 rho,
827 ") to temperature failed to converge.");
828 return T;
829}

Referenced by TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), and TabulatedFluidProperties::T_from_p_rho().

◆ T_from_p_rho() [3/3]

void TabulatedFluidProperties::T_from_p_rho ( Real  pressure,
Real  rho,
Real &  T,
Real &  dT_dp,
Real &  dT_drho 
) const
virtualinherited

Definition at line 864 of file TabulatedFluidProperties.C.

866{
867 T = T_from_p_rho(pressure, rho);
868 // Implicit differentiation of rho(p, T) = rho
869 Real rho_pT, drho_dp, drho_dT;
870 rho_from_p_T(pressure, T, rho_pT, drho_dp, drho_dT);
871 dT_dp = -drho_dp / drho_dT;
872 dT_drho = 1.0 / drho_dT;
873}

◆ T_from_p_s() [1/2]

Real TabulatedFluidProperties::T_from_p_s ( Real  p,
Real  s 
) const
virtualinherited

Definition at line 876 of file TabulatedFluidProperties.C.

877{
878 auto lambda = [&](Real p, Real current_T, Real & new_s, Real & ds_dp, Real & ds_dT)
879 { s_from_p_T(p, current_T, new_s, ds_dp, ds_dT); };
881 s,
884 lambda,
885 name() + "::T_from_p_s",
888 .first;
889 // check for nans
890 if (std::isnan(T))
891 mooseError("Conversion from pressure (p = ",
892 pressure,
893 ") and entropy (s = ",
894 s,
895 ") to temperature failed to converge.");
896 return T;
897}

Referenced by TabulatedFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), and TabulatedFluidProperties::T_from_p_s().

◆ T_from_p_s() [2/2]

void TabulatedFluidProperties::T_from_p_s ( Real  p,
Real  s,
Real &  T,
Real &  dT_dp,
Real &  dT_ds 
) const
virtualinherited

Definition at line 900 of file TabulatedFluidProperties.C.

902{
903 T = T_from_p_s(pressure, s);
904 // Implicit differentiation of s(p, T) = s
905 Real s_pT, ds_dp, ds_dT;
906 s_from_p_T(pressure, T, s_pT, ds_dp, ds_dT);
907 dT_dp = -ds_dp / ds_dT;
908 dT_ds = 1.0 / ds_dT;
909}

◆ T_from_v_e() [1/3]

void TabulatedFluidProperties::T_from_v_e ( const ADReal &  v,
const ADReal &  e,
ADReal &  p,
ADReal &  dp_dv,
ADReal &  dp_de 
) const
overridevirtualinherited

Definition at line 1470 of file TabulatedFluidProperties.C.

1472{
1474 missingVEInterpolationError(__PRETTY_FUNCTION__);
1475 ADReal vc = v, ec = e;
1476 checkInputVariablesVE(vc, ec);
1477
1479 _property_ve_ipol[_T_idx]->sampleValueAndDerivatives(vc, ec, T, dT_dv, dT_de);
1480 else if (_construct_pT_from_ve)
1481 _T_from_v_e_ipol->sampleValueAndDerivatives(vc, ec, T, dT_dv, dT_de);
1482 else if (_fp)
1483 _fp->T_from_v_e(vc, ec, T, dT_dv, dT_de);
1484 else
1485 NeedTabulationOrFPError("AD T_from_v_e with derivatives", "temperature");
1486}

◆ T_from_v_e() [2/3]

Real TabulatedFluidProperties::T_from_v_e ( Real  v,
Real  e 
) const
overridevirtualinherited

◆ T_from_v_e() [3/3]

void TabulatedFluidProperties::T_from_v_e ( Real  v,
Real  e,
Real &  T,
Real &  dT_dv,
Real &  dT_de 
) const
overridevirtualinherited

Definition at line 1453 of file TabulatedFluidProperties.C.

1454{
1456 missingVEInterpolationError(__PRETTY_FUNCTION__);
1458
1460 _property_ve_ipol[_T_idx]->sampleValueAndDerivatives(v, e, T, dT_dv, dT_de);
1461 else if (_construct_pT_from_ve)
1462 _T_from_v_e_ipol->sampleValueAndDerivatives(v, e, T, dT_dv, dT_de);
1463 else if (_fp)
1464 _fp->T_from_v_e(v, e, T, dT_dv, dT_de);
1465 else
1466 NeedTabulationOrFPError("T_from_v_e with derivatives", "temperature");
1467}

◆ TabulationNotImplementedError()

void TabulatedFluidProperties::TabulationNotImplementedError ( const std::string &  desired_routine) const
protectedinherited

Utility to forward errors related to fluid properties methods not implemented.

Definition at line 1902 of file TabulatedFluidProperties.C.

1903{
1904 mooseError("TabulatedFluidProperties can only call the function '" + desired_routine +
1905 "' when the 'input_fp' parameter is provided. It is currently not implemented using "
1906 "tabulations, and this property is simply forwarded to the FluidProperties specified "
1907 "in the 'input_fp' parameter");
1908}

Referenced by TabulatedFluidProperties::criticalDensity(), TabulatedFluidProperties::criticalPressure(), TabulatedFluidProperties::criticalTemperature(), TabulatedFluidProperties::henryCoefficients(), TabulatedFluidProperties::molarMass(), TabulatedFluidProperties::s_from_h_p(), TabulatedFluidProperties::triplePointPressure(), TabulatedFluidProperties::triplePointTemperature(), TabulatedFluidProperties::vaporPressure(), TabulatedFluidProperties::vaporPressure(), TabulatedFluidProperties::vaporTemperature(), and TabulatedFluidProperties::vaporTemperature().

◆ threadJoin()

virtual void FluidProperties::threadJoin ( const UserObject &  )
inlinefinalvirtualinherited

Reimplemented from ThreadedGeneralUserObject.

Definition at line 37 of file FluidProperties.h.

37{}

◆ triplePointPressure()

Real TabulatedFluidProperties::triplePointPressure ( ) const
overridevirtualinherited

Triple point pressure.

Returns
triple point pressure (Pa)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1334 of file TabulatedFluidProperties.C.

1335{
1336
1337 if (_fp)
1338 return _fp->triplePointPressure();
1339 else
1340 TabulationNotImplementedError("triplePointPressure");
1341}
virtual Real triplePointPressure() const
Triple point pressure.

◆ triplePointTemperature()

Real TabulatedFluidProperties::triplePointTemperature ( ) const
overridevirtualinherited

Triple point temperature.

Returns
triple point temperature (K)

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1344 of file TabulatedFluidProperties.C.

1345{
1346
1347 if (_fp)
1348 return _fp->triplePointTemperature();
1349 else
1350 TabulationNotImplementedError("triplePointTemperature");
1351}
virtual Real triplePointTemperature() const
Triple point temperature.

◆ unimplementedDerivativeMethod()

void SinglePhaseFluidProperties::unimplementedDerivativeMethod ( const std::string &  property_function_name) const
inlineprivateinherited

Definition at line 454 of file SinglePhaseFluidProperties.h.

455 {
456 const std::string message =
457 "The fluid properties class '" + type() +
458 "' has not implemented the method below, which computes derivatives of fluid properties "
459 "with regards to the flow variables. If your application requires this "
460 "method, you must either implement it or use a different fluid properties "
461 " class.\n\n" +
462 property_function_name;
463
465 mooseDoOnce(mooseWarning(message + "\nThe unimplemented derivatives for this fluid property "
466 "are currently neglected, set to 0."));
467 else
468 mooseError(message + "\n\nYou can avoid this error by neglecting the "
469 "unimplemented derivatives of fluid properties by setting the "
470 "'allow_imperfect_jacobians' parameter");
471 }
const bool _allow_imperfect_jacobians
Flag to set unimplemented Jacobian entries to zero.
const std::string & type() const

Referenced by SinglePhaseFluidProperties::vaporPressure(), and SinglePhaseFluidProperties::vaporTemperature().

◆ 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 &  dv_dp,
CppType &  dv_dT,
CppType &  e,
CppType &  de_dp,
CppType &  de_dT 
) const
inherited

Definition at line 659 of file SinglePhaseFluidProperties.h.

667{
668 CppType rho, drho_dp, drho_dT;
669 rho_from_p_T(p, T, rho, drho_dp, drho_dT);
670
671 v = 1.0 / rho;
672 const CppType dv_drho = -1.0 / (rho * rho);
673 dv_dp = dv_drho * drho_dp;
674 dv_dT = dv_drho * drho_dT;
675
676 CppType de_dp_partial, de_drho;
677 e_from_p_rho(p, rho, e, de_dp_partial, de_drho);
678 de_dp = de_dp_partial + de_drho * drho_dp;
679 de_dT = de_drho * drho_dT;
680}

◆ 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 &  e 
) const
inherited

Definition at line 639 of file SinglePhaseFluidProperties.h.

643{
644 const CppType rho = rho_from_p_T(p, T);
645 v = 1.0 / rho;
646 try
647 {
648 // more likely to not involve a Newton search
649 e = e_from_p_T(p, T);
650 }
651 catch (...)
652 {
653 e = e_from_p_rho(p, rho);
654 }
655}

Referenced by TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), and TabulatedFluidProperties::s_from_p_T().

◆ 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 CaloricallyImperfectGas, IdealGasFluidProperties, and StiffenedGasFluidProperties.

Definition at line 489 of file SinglePhaseFluidProperties.C.

490{
491 mooseError(__PRETTY_FUNCTION__, " not implemented.");
492}

◆ v_from_p_T() [1/3]

ADReal TabulatedFluidProperties::v_from_p_T ( const ADReal &  pressure,
const ADReal &  temperature 
) const
overridevirtualinherited

Definition at line 437 of file TabulatedFluidProperties.C.

438{
440 {
441 ADReal pressure_nc = pressure, temperature_nc = temperature;
442 checkInputVariables(pressure_nc, temperature_nc);
443 return 1.0 / _property_ipol[_density_idx]->sample(pressure_nc, temperature_nc);
444 }
446 {
447 ADReal pressure_nc = pressure, temperature_nc = temperature;
448 checkInputVariables(pressure_nc, temperature_nc);
449 ADReal v, e;
450 auto p_from_v_e = [&](ADReal v, ADReal e, ADReal & new_p, ADReal & dp_dv, ADReal & dp_de)
451 { this->p_from_v_e(v, e, new_p, dp_dv, dp_de); };
452 auto T_from_v_e = [&](ADReal v, ADReal e, ADReal & new_T, ADReal & dT_dv, ADReal & dT_de)
453 { this->T_from_v_e(v, e, new_T, dT_dv, dT_de); };
455 temperature_nc,
456 (_v_min + _v_max) / 2,
457 (_e_min + _e_max) / 2,
458 v,
459 e,
464 name() + "::v_from_p_T",
467 return v;
468 }
469 else
470 {
471 if (_fp)
472 return 1.0 / _fp->rho_from_p_T(pressure, temperature);
473 else
474 NeedTabulationOrFPError("AD v_from_p_T", "density");
475 }
476}

◆ v_from_p_T() [2/3]

Real TabulatedFluidProperties::v_from_p_T ( Real  pressure,
Real  temperature 
) const
overridevirtualinherited

Definition at line 397 of file TabulatedFluidProperties.C.

398{
400 {
401 checkInputVariables(pressure, temperature);
402 return 1.0 / _property_ipol[_density_idx]->sample(pressure, temperature);
403 }
405 {
406 checkInputVariables(pressure, temperature);
407 Real v, e;
408 auto p_from_v_e = [&](Real v, Real e, Real & new_p, Real & dp_dv, Real & dp_de)
409 { this->p_from_v_e(v, e, new_p, dp_dv, dp_de); };
410 auto T_from_v_e = [&](Real v, Real e, Real & new_T, Real & dT_dv, Real & dT_de)
411 { this->T_from_v_e(v, e, new_T, dT_dv, dT_de); };
413 temperature,
414 (_v_min + _v_max) / 2,
415 (_e_min + _e_max) / 2,
416 v,
417 e,
422 name() + "::v_from_p_T",
425 return v;
426 }
427 else
428 {
429 if (_fp)
430 return 1.0 / _fp->rho_from_p_T(pressure, temperature);
431 else
432 NeedTabulationOrFPError("AD v_from_p_T", "density");
433 }
434}

Referenced by TabulatedFluidProperties::rho_from_p_T(), and TabulatedFluidProperties::rho_from_p_T().

◆ v_from_p_T() [3/3]

void TabulatedFluidProperties::v_from_p_T ( Real  pressure,
Real  temperature,
Real &  v,
Real &  dv_dp,
Real &  dv_dT 
) const
overridevirtualinherited

Definition at line 479 of file TabulatedFluidProperties.C.

481{
482 Real rho = 0, drho_dp = 0, drho_dT = 0;
484 {
485 checkInputVariables(pressure, temperature);
486 _property_ipol[_density_idx]->sampleValueAndDerivatives(
487 pressure, temperature, rho, drho_dp, drho_dT);
488 }
489 else
490 {
491 if (_fp)
492 _fp->rho_from_p_T(pressure, temperature, rho, drho_dp, drho_dT);
493 else
494 NeedTabulationOrFPError("v_from_p_T with derivatives", "density");
495 }
496 // convert from rho to v
497 v = 1.0 / rho;
498 dv_dp = -drho_dp / (rho * rho);
499 dv_dT = -drho_dT / (rho * rho);
500}

◆ validParams()

InputParameters CheckNaNsTabulatedFluidProperties::validParams ( )
static

◆ vaporPressure() [1/3]

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

Definition at line 393 of file SinglePhaseFluidProperties.C.

394{
395 Real p = 0.0;
396 Real temperature = T.value();
397 Real dpdT = 0.0;
398
399 vaporPressure(temperature, p, dpdT);
400
401 ADReal result = p;
402 result.derivatives() = T.derivatives() * dpdT;
403
404 return result;
405}
virtual Real vaporPressure(Real T) const
Vapor pressure.

◆ vaporPressure() [2/3]

Real TabulatedFluidProperties::vaporPressure ( Real  T) const
overridevirtualinherited

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 1297 of file TabulatedFluidProperties.C.

1298{
1299 if (_fp)
1300 return _fp->vaporPressure(temperature);
1301 else
1302 TabulationNotImplementedError("vaporPressure");
1303}

◆ vaporPressure() [3/3]

void TabulatedFluidProperties::vaporPressure ( Real  temperature,
Real &  psat,
Real &  dpsat_dT 
) const
overridevirtualinherited

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1306 of file TabulatedFluidProperties.C.

1307{
1308 if (_fp)
1309 _fp->vaporPressure(temperature, psat, dpsat_dT);
1310 else
1311 TabulationNotImplementedError("vaporPressure");
1312}

◆ vaporTemperature() [1/3]

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

Definition at line 423 of file SinglePhaseFluidProperties.C.

424{
425 Real T = 0.0;
426 Real pressure = p.value();
427 Real dTdp = 0.0;
428
429 vaporTemperature(pressure, T, dTdp);
430
431 ADReal result = T;
432 result.derivatives() = p.derivatives() * dTdp;
433
434 return result;
435}
virtual Real vaporTemperature(Real p) const
Vapor temperature.

◆ vaporTemperature() [2/3]

Real TabulatedFluidProperties::vaporTemperature ( Real  p) const
overridevirtualinherited

Vapor temperature.

Used to delineate liquid and gas phases. Valid for pressures between the triple point pressure and the critical pressure

Parameters
pfluid pressure (Pa)
[out]saturationtemperature (K)
[out]derivativeof saturation temperature wrt pressure

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1315 of file TabulatedFluidProperties.C.

1316{
1317 if (_fp)
1318 return _fp->vaporTemperature(pressure);
1319 else
1320 TabulationNotImplementedError("vaporTemperature");
1321}

◆ vaporTemperature() [3/3]

void TabulatedFluidProperties::vaporTemperature ( Real  pressure,
Real &  Tsat,
Real &  dTsat_dp 
) const
overridevirtualinherited

Reimplemented from SinglePhaseFluidProperties.

Definition at line 1324 of file TabulatedFluidProperties.C.

1325{
1326
1327 if (_fp)
1328 _fp->vaporTemperature(pressure, Tsat, dTsat_dp);
1329 else
1330 TabulationNotImplementedError("vaporTemperature");
1331}

◆ writeTabulatedData()

void TabulatedFluidProperties::writeTabulatedData ( std::string  file_name)
protectedinherited

Writes tabulated data to a file.

Parameters
file_namename of the file to be written

Definition at line 1933 of file TabulatedFluidProperties.C.

1934{
1935 if (processor_id() == 0)
1936 {
1937 // Write out the (p, T) interpolation tables
1938 if (_file_name_out != "")
1939 {
1940 file_name = file_name.empty() ? "fluid_properties_" + name() + "_out.csv" : file_name;
1942
1943 std::ofstream file_out(file_name.c_str());
1944
1945 if (!getParam<bool>("skip_header_tabulation"))
1946 {
1947 // Write out date and fluid type
1948 time_t now = std::time(&now);
1949 file_out << "# " << (_fp ? _fp->fluidName() : "")
1950 << " properties (p,T) tabulation created by TabulatedFluidProperties on "
1951 << ctime(&now) << "\n";
1952 }
1953
1954 // Write out column names
1955 file_out << "pressure, temperature";
1956 for (std::size_t i = 0; i < _interpolated_properties.size(); ++i)
1957 if (_interpolated_properties[i] != "pressure" &&
1958 _interpolated_properties[i] != "temperature")
1959 file_out << ", " << _interpolated_properties[i];
1960 file_out << "\n";
1961
1962 // Write out the fluid property data
1963 for (unsigned int p = 0; p < _num_p; ++p)
1964 for (unsigned int t = 0; t < _num_T; ++t)
1965 {
1966 file_out << _pressure[p] << ", " << _temperature[t];
1967 for (std::size_t i = 0; i < _properties.size(); ++i)
1968 file_out << ", " << _properties[i][p * _num_T + t];
1969 file_out << "\n";
1970 }
1971
1972 file_out << std::flush;
1973 file_out.close();
1974 }
1975
1976 // Write out the (v,e) interpolation tables
1978 {
1979 const auto file_name_ve = (_file_name_ve_out == "")
1980 ? std::regex_replace(file_name, std::regex("\\.csv"), "_ve.csv")
1982 MooseUtils::checkFileWriteable(file_name_ve);
1983 std::ofstream file_out(file_name_ve.c_str());
1984
1985 // Write out date and fluid type
1986 if (!getParam<bool>("skip_header_tabulation"))
1987 {
1988 time_t now = std::time(&now);
1989 file_out << "# " << (_fp ? _fp->fluidName() : "")
1990 << " properties (v,e) tabulation created by TabulatedFluidProperties on "
1991 << ctime(&now) << "\n";
1992 }
1993
1994 // Write out column names
1995 file_out << "specific_volume, internal_energy, pressure, temperature";
1996 for (const auto i : index_range(_interpolated_properties))
1997 // Avoid writing the fixed columns twice
1998 if (_interpolated_properties[i] != "internal_energy" &&
1999 _interpolated_properties[i] != "pressure" &&
2000 _interpolated_properties[i] != "temperature")
2001 file_out << ", " << _interpolated_properties[i];
2002 file_out << "\n";
2003
2004 // Write out the fluid property data
2005 for (const auto v : make_range(_num_v))
2006 for (const auto e : make_range(_num_e))
2007 {
2008 const auto v_val = _specific_volume[v];
2009 const auto e_val = _internal_energy[e];
2010 // Use the expected source for the grid. Note that the tabulations are already created
2011 Real pressure, temperature;
2013 {
2014 pressure = _p_from_v_e_ipol->sample(v_val, e_val);
2015 temperature = _T_from_v_e_ipol->sample(v_val, e_val);
2016 }
2017 else
2018 {
2019 pressure = p_from_v_e(v_val, e_val);
2020 temperature = T_from_v_e(v_val, e_val);
2021 }
2022 file_out << v_val << ", " << e_val << ", " << pressure << ", " << temperature
2023 << (_interpolated_properties.size() ? ", " : "");
2024 for (const auto i : index_range(_interpolated_properties))
2025 {
2026 bool add_comma = true;
2027 if (i == _density_idx)
2028 file_out << 1. / v_val;
2029 else if (i == _enthalpy_idx)
2030 file_out << h_from_v_e(v_val, e_val);
2031 // Note that we could use (p,T) routine to generate this instead of (v,e)
2032 // Or could use the _properties_ve array similar to what we do for (pressure,
2033 // temperature)
2034 else if (i == _viscosity_idx)
2035 file_out << mu_from_v_e(v_val, e_val);
2036 else if (i == _k_idx)
2037 file_out << k_from_v_e(v_val, e_val);
2038 else if (i == _c_idx)
2039 file_out << c_from_v_e(v_val, e_val);
2040 else if (i == _cv_idx)
2041 file_out << cv_from_v_e(v_val, e_val);
2042 else if (i == _cp_idx)
2043 file_out << cp_from_v_e(v_val, e_val);
2044 else if (i == _entropy_idx)
2045 file_out << s_from_v_e(v_val, e_val);
2046 else
2047 add_comma = false;
2048 if (i != _interpolated_properties.size() - 1 && add_comma)
2049 file_out << ", ";
2050 }
2051
2052 file_out << "\n";
2053 }
2054
2055 file_out << std::flush;
2056 file_out.close();
2057 }
2058 }
2059}
for(PetscInt i=0;i< nvars;++i)
FileName _file_name_ve_out
File name of output (v,e) tabulated data file.
virtual Real s_from_v_e(Real v, Real e) const override
virtual Real cp_from_v_e(Real v, Real e) const override
virtual Real cv_from_v_e(Real v, Real e) const override
virtual Real mu_from_v_e(Real v, Real e) const override
virtual Real k_from_v_e(Real v, Real e) const override
virtual Real c_from_v_e(Real v, Real e) const override
processor_id_type processor_id() const
bool checkFileWriteable(const std::string &filename, bool throw_on_unwritable)
if(subdm)

Referenced by TabulatedFluidProperties::initialSetup().

◆ 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 492 of file SinglePhaseFluidProperties.h.

494{
496 const auto [zero, one] = makeZeroAndOne(x);
497
498 CompoundType x_c(x, zero);
499 auto & x_cd = x_c.derivatives();
500 x_cd[0] = one;
501 CompoundType y_c(y, zero);
502 auto & y_cd = y_c.derivatives();
503 y_cd[1] = one;
504
505 const auto z_c = z_from_x_y(x_c, y_c);
506 z = z_c.value();
507 dz_dx = z_c.derivatives()[0];
508 dz_dy = z_c.derivatives()[1];
509}
const std::vector< double > y
const std::vector< double > x
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 Number zero

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

Member Data Documentation

◆ _allow_fp_and_tabulation

const bool TabulatedFluidProperties::_allow_fp_and_tabulation
protectedinherited

Whether to allow a fp object when a tabulation is in use.

Definition at line 328 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::TabulatedFluidProperties().

◆ _allow_imperfect_jacobians

const bool FluidProperties::_allow_imperfect_jacobians
protectedinherited

◆ _c_idx

unsigned int TabulatedFluidProperties::_c_idx
protectedinherited

◆ _construct_pT_from_ve

bool TabulatedFluidProperties::_construct_pT_from_ve
protectedinherited

◆ _construct_pT_from_vh

bool TabulatedFluidProperties::_construct_pT_from_vh
protectedinherited

◆ _cp_idx

unsigned int TabulatedFluidProperties::_cp_idx
protectedinherited

◆ _create_direct_pT_interpolations

const bool TabulatedFluidProperties::_create_direct_pT_interpolations
protectedinherited

Whether the object has direct (p,T) interpolations (whether created from file or from _fp)

Definition at line 298 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::c_from_p_T(), TabulatedFluidProperties::c_from_p_T(), TabulatedBicubicFluidProperties::constructInterpolation(), TabulatedFluidProperties::cp_from_p_T(), TabulatedFluidProperties::cp_from_p_T(), TabulatedFluidProperties::cv_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::g_from_v_e(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::initialSetup(), TabulatedFluidProperties::k_from_p_T(), TabulatedFluidProperties::k_from_p_T(), TabulatedFluidProperties::mu_from_p_T(), TabulatedFluidProperties::mu_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::TabulatedFluidProperties(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), and TabulatedFluidProperties::v_from_p_T().

◆ _create_direct_ve_interpolations

const bool TabulatedFluidProperties::_create_direct_ve_interpolations
protectedinherited

Whether the object has direct (v,e) interpolations (whether created from file or from _fp)

Definition at line 300 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::checkInitialGuess(), TabulatedBicubicFluidProperties::constructInterpolation(), TabulatedFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), TabulatedFluidProperties::g_from_v_e(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::initialSetup(), TabulatedFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::TabulatedFluidProperties(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), and TabulatedFluidProperties::writeTabulatedData().

◆ _csv_reader

MooseUtils::DelimitedFileReader TabulatedFluidProperties::_csv_reader
protectedinherited

◆ _cv_idx

unsigned int TabulatedFluidProperties::_cv_idx
protectedinherited

◆ _density_idx

unsigned int TabulatedFluidProperties::_density_idx
protectedinherited

◆ _e_bounds_specified

bool TabulatedFluidProperties::_e_bounds_specified
protectedinherited

Whether the specific internal energy bounds were set by the user.

Definition at line 405 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::createVEGridVectors(), TabulatedFluidProperties::readFileTabulationData(), and TabulatedFluidProperties::TabulatedFluidProperties().

◆ _e_max

Real TabulatedFluidProperties::_e_max
protectedinherited

◆ _e_min

Real TabulatedFluidProperties::_e_min
protectedinherited

◆ _enthalpy

std::vector<Real> TabulatedFluidProperties::_enthalpy
protectedinherited

Specific enthalpy vector.

Definition at line 295 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::createVHGridVectors().

◆ _enthalpy_idx

unsigned int TabulatedFluidProperties::_enthalpy_idx
protectedinherited

◆ _entropy_idx

unsigned int TabulatedFluidProperties::_entropy_idx
protectedinherited

◆ _file_name_in

FileName TabulatedFluidProperties::_file_name_in
protectedinherited

◆ _file_name_out

FileName TabulatedFluidProperties::_file_name_out
protectedinherited

File name of output tabulated data file.

Definition at line 280 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::initialSetup(), and TabulatedFluidProperties::writeTabulatedData().

◆ _file_name_ve_in

FileName TabulatedFluidProperties::_file_name_ve_in
protectedinherited

◆ _file_name_ve_out

FileName TabulatedFluidProperties::_file_name_ve_out
protectedinherited

File name of output (v,e) tabulated data file.

Definition at line 282 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::writeTabulatedData().

◆ _fp

const SinglePhaseFluidProperties* const TabulatedFluidProperties::_fp
protectedinherited

SinglePhaseFluidPropertiesPT UserObject.

Definition at line 326 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::c_from_p_T(), TabulatedFluidProperties::c_from_p_T(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::checkInitialGuess(), TabulatedBicubicFluidProperties::constructInterpolation(), TabulatedFluidProperties::cp_from_p_T(), TabulatedFluidProperties::cp_from_p_T(), TabulatedFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TabulatedFluidProperties::createVEGridVectors(), TabulatedFluidProperties::createVGridVector(), TabulatedFluidProperties::createVHGridVectors(), TabulatedFluidProperties::criticalDensity(), TabulatedFluidProperties::criticalPressure(), TabulatedFluidProperties::criticalTemperature(), TabulatedFluidProperties::cv_from_p_T(), TabulatedFluidProperties::cv_from_p_T(), TabulatedFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), TabulatedFluidProperties::fluidName(), TabulatedFluidProperties::g_from_v_e(), TabulatedFluidProperties::generateTabulatedData(), TabulatedFluidProperties::generateVETabulatedData(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TabulatedFluidProperties::henryCoefficients(), TabulatedFluidProperties::initialSetup(), TabulatedFluidProperties::k_from_p_T(), TabulatedFluidProperties::k_from_p_T(), TabulatedFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TabulatedFluidProperties::molarMass(), TabulatedFluidProperties::mu_from_p_T(), TabulatedFluidProperties::mu_from_p_T(), TabulatedFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TabulatedBicubicFluidProperties::outputWarnings(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TabulatedFluidProperties::s_from_h_p(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), TabulatedFluidProperties::TabulatedFluidProperties(), TabulatedFluidProperties::triplePointPressure(), TabulatedFluidProperties::triplePointTemperature(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::vaporPressure(), TabulatedFluidProperties::vaporPressure(), TabulatedFluidProperties::vaporTemperature(), TabulatedFluidProperties::vaporTemperature(), and TabulatedFluidProperties::writeTabulatedData().

◆ _h_max

Real TabulatedFluidProperties::_h_max
protectedinherited

Maximum specific enthalpy in tabulated data.

Definition at line 419 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::createVHGridVectors().

◆ _h_min

Real TabulatedFluidProperties::_h_min
protectedinherited

Minimum specific enthalpy in tabulated data.

Definition at line 417 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::createVHGridVectors().

◆ _initial_setup_done

bool TabulatedFluidProperties::_initial_setup_done
protectedinherited

keeps track of whether initialSetup has been performed

Definition at line 368 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::initialSetup().

◆ _internal_energy

std::vector<Real> TabulatedFluidProperties::_internal_energy
protectedinherited

◆ _internal_energy_idx

unsigned int TabulatedFluidProperties::_internal_energy_idx
protectedinherited

◆ _interpolate_c

bool TabulatedFluidProperties::_interpolate_c
protectedinherited

◆ _interpolate_cp

bool TabulatedFluidProperties::_interpolate_cp
protectedinherited

◆ _interpolate_cv

bool TabulatedFluidProperties::_interpolate_cv
protectedinherited

◆ _interpolate_density

bool TabulatedFluidProperties::_interpolate_density
protectedinherited

◆ _interpolate_enthalpy

bool TabulatedFluidProperties::_interpolate_enthalpy
protectedinherited

◆ _interpolate_entropy

bool TabulatedFluidProperties::_interpolate_entropy
protectedinherited

◆ _interpolate_internal_energy

bool TabulatedFluidProperties::_interpolate_internal_energy
protectedinherited

◆ _interpolate_k

bool TabulatedFluidProperties::_interpolate_k
protectedinherited

◆ _interpolate_pressure

bool TabulatedFluidProperties::_interpolate_pressure
protectedinherited

◆ _interpolate_temperature

bool TabulatedFluidProperties::_interpolate_temperature
protectedinherited

◆ _interpolate_viscosity

bool TabulatedFluidProperties::_interpolate_viscosity
protectedinherited

◆ _interpolated_properties

std::vector<std::string> TabulatedFluidProperties::_interpolated_properties
protectedinherited

◆ _interpolated_properties_enum

MultiMooseEnum TabulatedFluidProperties::_interpolated_properties_enum
protectedinherited

◆ _k_idx

unsigned int TabulatedFluidProperties::_k_idx
protectedinherited

◆ _log_space_e

bool TabulatedFluidProperties::_log_space_e
protectedinherited

log-space the internal energy interpolation grid axis instead of linear

Definition at line 376 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::createVEGridVectors(), and TabulatedFluidProperties::TabulatedFluidProperties().

◆ _log_space_h

bool TabulatedFluidProperties::_log_space_h
protectedinherited

log-space the enthalpy interpolation grid axis instead of linear

Definition at line 378 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::createVHGridVectors().

◆ _log_space_v

bool TabulatedFluidProperties::_log_space_v
protectedinherited

log-space the specific volume interpolation grid axis instead of linear

Definition at line 374 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::createVGridVector(), and TabulatedFluidProperties::TabulatedFluidProperties().

◆ _max_newton_its

const unsigned int SinglePhaseFluidProperties::_max_newton_its
protectedinherited

◆ _num_e

unsigned int TabulatedFluidProperties::_num_e
protectedinherited

◆ _num_p

unsigned int TabulatedFluidProperties::_num_p
protectedinherited

◆ _num_T

unsigned int TabulatedFluidProperties::_num_T
protectedinherited

◆ _num_v

unsigned int TabulatedFluidProperties::_num_v
protectedinherited

◆ _OOBBehavior

MooseEnum TabulatedFluidProperties::_OOBBehavior
protectedinherited

◆ _p_from_v_e_ipol

std::unique_ptr<BidimensionalInterpolation> TabulatedFluidProperties::_p_from_v_e_ipol
protectedinherited

◆ _p_from_v_h_ipol

std::unique_ptr<BidimensionalInterpolation> TabulatedFluidProperties::_p_from_v_h_ipol
protectedinherited

Bidimensional interpolation of pressure from (v,h)

Definition at line 402 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::e_from_v_h(), and TabulatedFluidProperties::e_from_v_h().

◆ _p_idx

unsigned int TabulatedFluidProperties::_p_idx
protectedinherited

◆ _p_initial_guess

const Real SinglePhaseFluidProperties::_p_initial_guess
protectedinherited

◆ _pressure

std::vector<Real> TabulatedFluidProperties::_pressure
protectedinherited

◆ _pressure_max

Real TabulatedFluidProperties::_pressure_max
protectedinherited

◆ _pressure_min

Real TabulatedFluidProperties::_pressure_min
protectedinherited

◆ _properties

std::vector<std::vector<Real> > TabulatedFluidProperties::_properties
protectedinherited

◆ _properties_ve

std::vector<std::vector<Real> > TabulatedFluidProperties::_properties_ve
protectedinherited

◆ _property_ipol

std::vector<std::unique_ptr<BidimensionalInterpolation> > TabulatedFluidProperties::_property_ipol
protectedinherited

◆ _property_ve_ipol

std::vector<std::unique_ptr<BidimensionalInterpolation> > TabulatedFluidProperties::_property_ve_ipol
protectedinherited

◆ _R

const Real FluidProperties::_R = 8.3144598
staticinherited

◆ _save_file

const bool TabulatedFluidProperties::_save_file
protectedinherited

Whether to save a generated fluid properties file to disk.

Definition at line 284 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::initialSetup().

◆ _specific_volume

std::vector<Real> TabulatedFluidProperties::_specific_volume
protectedinherited

◆ _T_c2k

const Real FluidProperties::_T_c2k
protectedinherited

◆ _T_from_v_e_ipol

std::unique_ptr<BidimensionalInterpolation> TabulatedFluidProperties::_T_from_v_e_ipol
protectedinherited

◆ _T_from_v_h_ipol

std::unique_ptr<BidimensionalInterpolation> TabulatedFluidProperties::_T_from_v_h_ipol
protectedinherited

Bi-dimensional interpolation of temperature from (v,h)

Definition at line 399 of file TabulatedFluidProperties.h.

Referenced by TabulatedFluidProperties::e_from_v_h(), and TabulatedFluidProperties::e_from_v_h().

◆ _T_idx

unsigned int TabulatedFluidProperties::_T_idx
protectedinherited

◆ _T_initial_guess

const Real SinglePhaseFluidProperties::_T_initial_guess
protectedinherited

◆ _temperature

std::vector<Real> TabulatedFluidProperties::_temperature
protectedinherited

◆ _temperature_max

Real TabulatedFluidProperties::_temperature_max
protectedinherited

◆ _temperature_min

Real TabulatedFluidProperties::_temperature_min
protectedinherited

◆ _tolerance

const Real SinglePhaseFluidProperties::_tolerance
protectedinherited

◆ _v_bounds_specified

bool TabulatedFluidProperties::_v_bounds_specified
protectedinherited

◆ _v_max

Real TabulatedFluidProperties::_v_max
protectedinherited

◆ _v_min

Real TabulatedFluidProperties::_v_min
protectedinherited

◆ _verbose_newton

const bool SinglePhaseFluidProperties::_verbose_newton
protectedinherited

◆ _viscosity_idx

unsigned int TabulatedFluidProperties::_viscosity_idx
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 LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), SodiumSaturationFluidProperties::e_from_p_T(), TemperaturePressureFunctionFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), SodiumSaturationFluidProperties::e_from_p_T(), NaClFluidProperties::e_from_p_T(), NaKFluidProperties::e_from_p_T(), Water97FluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), CaloricallyImperfectGas::e_from_v_h(), HeliumFluidProperties::e_from_v_h(), IdealGasFluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), LinearFluidProperties::e_from_v_h(), CaloricallyImperfectGas::e_from_v_h(), HeliumFluidProperties::e_from_v_h(), IdealGasFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), LinearFluidProperties::e_from_v_h(), TabulatedFluidProperties::g_from_v_e(), HeliumFluidProperties::h_from_p_T(), Water97FluidProperties::h_from_p_T(), TabulatedPVTFluidProperties::h_from_p_T(), CaloricallyImperfectGas::h_from_p_T(), FlibeFluidProperties::h_from_p_T(), FlinakFluidProperties::h_from_p_T(), HeliumFluidProperties::h_from_p_T(), HelmholtzFluidProperties::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), LeadBismuthFluidProperties::h_from_p_T(), LeadFluidProperties::h_from_p_T(), LeadLithiumFluidProperties::h_from_p_T(), SodiumSaturationFluidProperties::h_from_p_T(), StiffenedGasFluidProperties::h_from_p_T(), TemperaturePressureFunctionFluidProperties::h_from_p_T(), TabulatedPVTFluidProperties::h_from_p_T(), LinearFluidProperties::h_from_p_T(), NaClFluidProperties::h_from_p_T(), NaKFluidProperties::h_from_p_T(), SimpleFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), Water97FluidProperties::h_from_p_T(), PBSodiumFluidProperties::h_from_p_T(), Water97FluidProperties::h_from_p_T_template(), CaloricallyImperfectGas::h_from_T_v(), IdealGasFluidProperties::h_from_T_v(), StiffenedGasFluidProperties::h_from_T_v(), TestTVFluidProperties::h_from_T_v(), LeadBismuthFluidProperties::h_from_v_e(), LeadFluidProperties::h_from_v_e(), LeadLithiumFluidProperties::h_from_v_e(), CaloricallyImperfectGas::p_from_h_s(), IdealGasFluidProperties::p_from_h_s(), StiffenedGasFluidProperties::p_from_h_s(), CaloricallyImperfectGas::p_from_h_s(), IdealGasFluidProperties::p_from_h_s(), StiffenedGasFluidProperties::p_from_h_s(), LeadBismuthFluidProperties::p_from_v_e(), LeadFluidProperties::p_from_v_e(), LeadLithiumFluidProperties::p_from_v_e(), SodiumSaturationFluidProperties::p_from_v_e(), LeadBismuthFluidProperties::p_from_v_e(), LeadFluidProperties::p_from_v_e(), LeadLithiumFluidProperties::p_from_v_e(), SodiumSaturationFluidProperties::p_from_v_e(), SimpleFluidProperties::p_from_v_h(), SimpleFluidProperties::p_from_v_h(), SinglePhaseFluidProperties::p_T_from_h_s(), Water97FluidProperties::p_T_from_v_h(), SinglePhaseFluidProperties::p_T_from_v_h(), Water97FluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_h_p(), IdealGasFluidProperties::s_from_h_p(), StiffenedGasFluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_h_p(), IdealGasFluidProperties::s_from_h_p(), StiffenedGasFluidProperties::s_from_h_p(), TabulatedFluidProperties::s_from_h_p(), CaloricallyImperfectGas::T_from_h(), TabulatedFluidProperties::T_from_h_s(), FlinakFluidProperties::T_from_p_h(), HeliumFluidProperties::T_from_p_h(), FlibeFluidProperties::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(), LeadBismuthFluidProperties::T_from_p_h(), LeadFluidProperties::T_from_p_h(), LeadLithiumFluidProperties::T_from_p_h(), SimpleFluidProperties::T_from_p_h(), SodiumSaturationFluidProperties::T_from_p_h(), TemperaturePressureFunctionFluidProperties::T_from_p_h(), CaloricallyImperfectGas::T_from_p_h(), IdealGasFluidProperties::T_from_p_h(), LeadBismuthFluidProperties::T_from_p_h(), LeadFluidProperties::T_from_p_h(), LeadLithiumFluidProperties::T_from_p_h(), SodiumSaturationFluidProperties::T_from_p_h(), Water97FluidProperties::T_from_p_h(), Water97FluidProperties::T_from_p_h(), SimpleFluidProperties::T_from_v_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(), Water97FluidProperties::c_from_p_T(), CaloricallyImperfectGas::c_from_p_T(), Water97FluidProperties::c_from_p_T(), CaloricallyImperfectGas::c_from_p_T(), Water97FluidProperties::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), StiffenedGasFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_p_T(), IdealGasFluidProperties::cp_from_p_T(), LeadBismuthFluidProperties::cp_from_p_T(), LeadFluidProperties::cp_from_p_T(), LeadLithiumFluidProperties::cp_from_p_T(), Water97FluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), LeadBismuthFluidProperties::cv_from_p_T(), LeadFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_p_T(), LeadBismuthFluidProperties::cv_from_p_T(), LeadFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_p_T(), IdealGasFluidProperties::cv_from_p_T(), Water97FluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), LeadLithiumFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), LeadLithiumFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), HeliumFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho(), FlibeFluidProperties::e_from_p_rho(), FlinakFluidProperties::e_from_p_rho(), HeliumFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), LeadBismuthFluidProperties::e_from_p_rho(), LeadFluidProperties::e_from_p_rho(), LeadLithiumFluidProperties::e_from_p_rho(), TemperaturePressureFunctionFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho(), TestSinglePhaseFluidProperties::e_from_p_rho(), LinearFluidProperties::e_from_p_rho(), LinearTestFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), LeadBismuthFluidProperties::e_from_p_rho(), LeadFluidProperties::e_from_p_rho(), LeadLithiumFluidProperties::e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho(), TestSinglePhaseFluidProperties::e_from_p_rho(), LinearFluidProperties::e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho_template(), Water97FluidProperties::e_from_p_rho_template(), CaloricallyImperfectGas::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_p_T(), LinearFluidProperties::e_from_p_T(), CaloricallyImperfectGas::e_from_p_T(), IdealGasFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_p_T(), TabulatedPVTFluidProperties::e_from_p_T(), LinearFluidProperties::e_from_p_T(), Water97FluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), CaloricallyImperfectGas::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), StiffenedGasFluidProperties::g_from_v_e(), TabulatedFluidProperties::g_from_v_e(), CaloricallyImperfectGas::gamma_from_p_T(), CaloricallyImperfectGas::gamma_from_p_T(), CaloricallyImperfectGas::gamma_from_p_T(), TabulatedFluidProperties::generateTabulatedData(), TabulatedPVTFluidProperties::h_from_p_T(), LinearFluidProperties::h_from_p_T(), CaloricallyImperfectGas::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), LeadBismuthFluidProperties::h_from_p_T(), LeadFluidProperties::h_from_p_T(), LeadLithiumFluidProperties::h_from_p_T(), StiffenedGasFluidProperties::h_from_p_T(), TabulatedPVTFluidProperties::h_from_p_T(), LinearFluidProperties::h_from_p_T(), Water97FluidProperties::henryConstant(), TabulatedPVTFluidProperties::interpolate(), LeadBismuthFluidProperties::k_from_p_T(), LeadFluidProperties::k_from_p_T(), LeadLithiumFluidProperties::k_from_p_T(), CaloricallyImperfectGas::k_from_p_T(), IdealGasFluidProperties::k_from_p_T(), CaloricallyImperfectGas::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TemperaturePressureFunctionFluidProperties::k_from_v_e(), CaloricallyImperfectGas::k_from_v_e(), HeliumFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), Water97FluidProperties::k_from_v_e_template(), TabulatedPVTFluidProperties::mu_from_p_T(), TabulatedPVTFluidProperties::mu_from_p_T(), LeadBismuthFluidProperties::mu_from_p_T(), LeadFluidProperties::mu_from_p_T(), LeadLithiumFluidProperties::mu_from_p_T(), CaloricallyImperfectGas::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TemperaturePressureFunctionFluidProperties::mu_from_v_e(), CaloricallyImperfectGas::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), CaloricallyImperfectGas::p_from_h_s(), IdealGasFluidProperties::p_from_h_s(), StiffenedGasFluidProperties::p_from_h_s(), CaloricallyImperfectGas::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), StiffenedGasFluidProperties::p_from_T_v(), TestTVFluidProperties::p_from_T_v(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), SimpleFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TemperaturePressureFunctionFluidProperties::p_from_v_e(), CaloricallyImperfectGas::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), LeadBismuthFluidProperties::p_from_v_e(), LeadFluidProperties::p_from_v_e(), LeadLithiumFluidProperties::p_from_v_e(), SimpleFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), LinearFluidProperties::p_from_v_e(), LinearTestFluidProperties::p_from_v_e(), Water97FluidProperties::p_from_v_e_template(), SimpleFluidProperties::p_from_v_h(), SinglePhaseFluidProperties::p_T_from_v_e(), Water97FluidProperties::p_T_from_v_e(), SinglePhaseFluidProperties::rho_e_from_p_T(), CaloricallyImperfectGas::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), SodiumSaturationFluidProperties::rho_from_p_s(), StiffenedGasFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), SodiumSaturationFluidProperties::rho_from_p_s(), StiffenedGasFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), CaloricallyImperfectGas::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), TestSinglePhaseFluidProperties::rho_from_p_T(), TabulatedPVTFluidProperties::rho_from_p_T(), LinearFluidProperties::rho_from_p_T(), LinearTestFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), TestSinglePhaseFluidProperties::rho_from_p_T(), TabulatedPVTFluidProperties::rho_from_p_T(), LinearFluidProperties::rho_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), Water97FluidProperties::rho_T_from_v_e(), Water97FluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_h_p(), IdealGasFluidProperties::s_from_h_p(), StiffenedGasFluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_h_p(), IdealGasFluidProperties::s_from_h_p(), StiffenedGasFluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_p_T(), IdealGasFluidProperties::s_from_p_T(), 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(), CaloricallyImperfectGas::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), IdealGasFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), Water97FluidProperties::T_drhodT_from_p_rho(), TabulatedFluidProperties::T_from_h_s(), SimpleFluidProperties::T_from_p_h(), SodiumSaturationFluidProperties::T_from_p_h(), TemperaturePressureFunctionFluidProperties::T_from_p_h(), CaloricallyImperfectGas::T_from_p_h(), LeadBismuthFluidProperties::T_from_p_h(), LeadFluidProperties::T_from_p_h(), LeadLithiumFluidProperties::T_from_p_h(), Water97FluidProperties::T_from_p_h(), Water97FluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_rho(), FlibeFluidProperties::T_from_p_rho(), FlinakFluidProperties::T_from_p_rho(), SimpleFluidProperties::T_from_p_rho(), TemperaturePressureFunctionFluidProperties::T_from_p_rho(), LeadBismuthFluidProperties::T_from_p_rho(), LeadFluidProperties::T_from_p_rho(), LeadLithiumFluidProperties::T_from_p_rho(), SimpleFluidProperties::T_from_p_rho(), NaKFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), NASA7IdealGasFluidProperties::T_from_p_s(), TabulatedFluidProperties::T_from_p_s(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), TemperaturePressureFunctionFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), SinglePhaseFluidProperties::v_e_from_p_T(), SinglePhaseFluidProperties::v_e_from_p_T(), LeadBismuthFluidProperties::v_from_p_T(), LeadFluidProperties::v_from_p_T(), LeadLithiumFluidProperties::v_from_p_T(), LeadBismuthFluidProperties::v_from_p_T(), LeadFluidProperties::v_from_p_T(), LeadLithiumFluidProperties::v_from_p_T(), SinglePhaseFluidProperties::vaporPressure(), SinglePhaseFluidProperties::vaporPressure(), Water97FluidProperties::vaporPressure(), SinglePhaseFluidProperties::vaporTemperature(), SinglePhaseFluidProperties::vaporTemperature(), Water97FluidProperties::vaporTemperature(), Water97FluidProperties::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 FlinakFluidProperties::beta_from_p_T(), HeliumFluidProperties::beta_from_p_T(), TemperaturePressureFunctionFluidProperties::beta_from_p_T(), StiffenedGasFluidProperties::c2_from_p_rho(), HeliumFluidProperties::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_p_T(), LeadBismuthFluidProperties::cv_from_p_T(), LeadFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_p_T(), TemperaturePressureFunctionFluidProperties::cv_from_p_T(), LeadBismuthFluidProperties::cv_from_p_T(), LeadFluidProperties::cv_from_p_T(), NaClFluidProperties::cv_from_p_T(), HeliumFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), FlibeFluidProperties::e_from_p_rho(), FlinakFluidProperties::e_from_p_rho(), HeliumFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), LeadBismuthFluidProperties::e_from_p_rho(), LeadFluidProperties::e_from_p_rho(), LeadLithiumFluidProperties::e_from_p_rho(), SodiumSaturationFluidProperties::e_from_p_rho(), TemperaturePressureFunctionFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho(), TestSinglePhaseFluidProperties::e_from_p_rho(), LinearFluidProperties::e_from_p_rho(), LinearTestFluidProperties::e_from_p_rho(), IdealGasFluidProperties::e_from_p_rho(), LeadBismuthFluidProperties::e_from_p_rho(), LeadFluidProperties::e_from_p_rho(), LeadLithiumFluidProperties::e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), SodiumSaturationFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho(), TestSinglePhaseFluidProperties::e_from_p_rho(), LinearFluidProperties::e_from_p_rho(), LinearTestFluidProperties::e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), Water97FluidProperties::e_from_p_rho_template(), Water97FluidProperties::e_from_p_rho_template(), TabulatedFluidProperties::e_from_p_T(), LinearFluidProperties::e_from_p_T(), LinearFluidProperties::e_from_p_T(), SalineMoltenSaltFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), NaClFluidProperties::e_from_p_T(), NaKFluidProperties::e_from_p_T(), TemperaturePressureFunctionFluidProperties::h_from_p_T(), LinearFluidProperties::h_from_p_T(), TemperaturePressureFunctionFluidProperties::h_from_p_T(), TabulatedPVTFluidProperties::h_from_p_T(), LinearFluidProperties::h_from_p_T(), Water97FluidProperties::k_from_p_T_template(), NaKFluidProperties::mu_from_p_T(), CO2FluidProperties::mu_from_p_T(), CO2FluidProperties::mu_from_p_T(), HydrogenFluidProperties::mu_from_p_T(), NaKFluidProperties::mu_from_p_T(), NitrogenFluidProperties::mu_from_p_T(), Water97FluidProperties::mu_from_p_T(), Water97FluidProperties::mu_from_p_T_template(), Water97FluidProperties::mu_from_v_e(), CaloricallyImperfectGas::p_from_h_s(), Water97FluidProperties::p_from_v_e_template(), Water97FluidProperties::p_T_from_v_e(), SinglePhaseFluidProperties::rho_e_from_p_T(), StiffenedGasFluidProperties::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), SodiumSaturationFluidProperties::rho_from_p_s(), StiffenedGasFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), CaloricallyImperfectGas::rho_from_p_T(), FlibeFluidProperties::rho_from_p_T(), HeliumFluidProperties::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), SodiumSaturationFluidProperties::rho_from_p_T(), FlinakFluidProperties::rho_from_p_T(), SimpleFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), TemperaturePressureFunctionFluidProperties::rho_from_p_T(), Water97FluidProperties::rho_from_p_T(), TabulatedPVTFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), FlibeFluidProperties::rho_from_p_T(), FlinakFluidProperties::rho_from_p_T(), HeliumFluidProperties::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), SodiumSaturationFluidProperties::rho_from_p_T(), TemperaturePressureFunctionFluidProperties::rho_from_p_T(), TestSinglePhaseFluidProperties::rho_from_p_T(), TabulatedPVTFluidProperties::rho_from_p_T(), LinearFluidProperties::rho_from_p_T(), LinearTestFluidProperties::rho_from_p_T(), CO2FluidProperties::rho_from_p_T(), HelmholtzFluidProperties::rho_from_p_T(), NaClFluidProperties::rho_from_p_T(), NaKFluidProperties::rho_from_p_T(), SalineMoltenSaltFluidProperties::rho_from_p_T(), SimpleFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), Water97FluidProperties::rho_from_p_T(), PBSodiumFluidProperties::rho_from_p_T(), Water97FluidProperties::rho_from_p_T_template(), SinglePhaseFluidProperties::rho_mu_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), CO2FluidProperties::rho_mu_from_p_T(), HydrogenFluidProperties::rho_mu_from_p_T(), NitrogenFluidProperties::rho_mu_from_p_T(), Water97FluidProperties::rho_mu_from_p_T(), CO2FluidProperties::rho_mu_from_p_T(), HydrogenFluidProperties::rho_mu_from_p_T(), NitrogenFluidProperties::rho_mu_from_p_T(), Water97FluidProperties::rho_mu_from_p_T(), Water97FluidProperties::rho_T_from_v_e(), SodiumSaturationFluidProperties::specific_volume_derivatives(), Water97FluidProperties::T_drhodT_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), FlibeFluidProperties::T_from_p_rho(), FlinakFluidProperties::T_from_p_rho(), LeadBismuthFluidProperties::T_from_p_rho(), LeadFluidProperties::T_from_p_rho(), LeadLithiumFluidProperties::T_from_p_rho(), SimpleFluidProperties::T_from_p_rho(), TemperaturePressureFunctionFluidProperties::T_from_p_rho(), LeadBismuthFluidProperties::T_from_p_rho(), LeadFluidProperties::T_from_p_rho(), LeadLithiumFluidProperties::T_from_p_rho(), SimpleFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), SinglePhaseFluidProperties::v_e_from_p_T(), SinglePhaseFluidProperties::v_e_from_p_T(), TemperaturePressureFunctionFluidProperties::v_from_p_T(), and TabulatedFluidProperties::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 IdealGasFluidProperties::beta_from_p_T(), IdealGasFluidProperties::beta_from_p_T(), IdealGasFluidProperties::beta_from_p_T(), LinearFluidProperties::beta_from_p_T(), LeadBismuthFluidProperties::bulk_modulus_from_p_T(), LeadFluidProperties::bulk_modulus_from_p_T(), LeadLithiumFluidProperties::bulk_modulus_from_p_T(), CaloricallyImperfectGas::c_from_p_T(), IdealGasFluidProperties::c_from_p_T(), Water97FluidProperties::c_from_p_T(), CaloricallyImperfectGas::c_from_p_T(), IdealGasFluidProperties::c_from_p_T(), LeadLithiumFluidProperties::c_from_p_T(), Water97FluidProperties::c_from_p_T(), CaloricallyImperfectGas::c_from_p_T(), IdealGasFluidProperties::c_from_p_T(), Water97FluidProperties::c_from_p_T_template(), CaloricallyImperfectGas::c_from_v_e(), IdealGasFluidProperties::c_from_v_e(), LeadBismuthFluidProperties::c_from_v_e(), LeadFluidProperties::c_from_v_e(), LeadLithiumFluidProperties::c_from_v_e(), Water97FluidProperties::c_from_v_e(), CaloricallyImperfectGas::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), IdealGasFluidProperties::c_from_v_e(), LeadBismuthFluidProperties::c_from_v_e(), LeadFluidProperties::c_from_v_e(), LeadLithiumFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), CaloricallyImperfectGas::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), IdealGasFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TabulatedFluidProperties::checkInputVariables(), TabulatedFluidProperties::checkInputVariablesVE(), NASA7IdealGasFluidProperties::checkTemperature(), NASA7IdealGasFluidProperties::checkTransportTemperature(), LeadBismuthFluidProperties::cp_from_p_T(), LeadFluidProperties::cp_from_p_T(), LeadLithiumFluidProperties::cp_from_p_T(), TemperaturePressureFunctionFluidProperties::cp_from_p_T(), CaloricallyImperfectGas::cp_from_p_T(), IdealGasFluidProperties::cp_from_p_T(), LeadBismuthFluidProperties::cp_from_p_T(), LeadFluidProperties::cp_from_p_T(), LeadLithiumFluidProperties::cp_from_p_T(), Water97FluidProperties::cp_from_p_T_template(), NASA7IdealGasFluidProperties::cp_from_T(), CaloricallyImperfectGas::cp_from_T(), CaloricallyImperfectGas::cp_from_T(), Water97FluidProperties::cp_from_v_e(), CaloricallyImperfectGas::cp_from_v_e(), LeadBismuthFluidProperties::cp_from_v_e(), LeadFluidProperties::cp_from_v_e(), LeadLithiumFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), CaloricallyImperfectGas::cp_from_v_e(), LeadBismuthFluidProperties::cp_from_v_e(), LeadFluidProperties::cp_from_v_e(), LeadLithiumFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), LeadBismuthFluidProperties::cv_from_p_T(), LeadFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_p_T(), LeadBismuthFluidProperties::cv_from_p_T(), LeadFluidProperties::cv_from_p_T(), LeadLithiumFluidProperties::cv_from_p_T(), CaloricallyImperfectGas::cv_from_p_T(), IdealGasFluidProperties::cv_from_p_T(), Water97FluidProperties::cv_from_p_T_template(), CaloricallyImperfectGas::cv_from_T(), NASA7IdealGasFluidProperties::cv_from_T(), CaloricallyImperfectGas::cv_from_T(), CaloricallyImperfectGas::cv_from_T_v(), Water97FluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), CaloricallyImperfectGas::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), LeadLithiumFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), CaloricallyImperfectGas::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), LeadLithiumFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), Water97FluidProperties::d2gamma1_dpi2(), Water97FluidProperties::d2gamma1_dpitau(), Water97FluidProperties::d2gamma1_dtau2(), Water97FluidProperties::d2gamma2_dpi2(), Water97FluidProperties::d2gamma2_dpitau(), Water97FluidProperties::d2gamma2_dtau2(), Water97FluidProperties::d2gamma5_dpi2(), Water97FluidProperties::d2gamma5_dpitau(), Water97FluidProperties::d2gamma5_dtau2(), Water97FluidProperties::d2phi3_ddelta2(), Water97FluidProperties::d2phi3_ddeltatau(), Water97FluidProperties::d2phi3_dtau2(), Water97FluidProperties::densityRegion3(), Water97FluidProperties::dgamma1_dpi(), Water97FluidProperties::dgamma1_dtau(), Water97FluidProperties::dgamma2_dpi(), Water97FluidProperties::dgamma2_dtau(), Water97FluidProperties::dgamma5_dpi(), Water97FluidProperties::dgamma5_dtau(), Water97FluidProperties::dphi3_ddelta(), Water97FluidProperties::dphi3_dtau(), TabulatedFluidProperties::e_from_p_rho(), LeadBismuthFluidProperties::e_from_p_rho(), LeadFluidProperties::e_from_p_rho(), LeadLithiumFluidProperties::e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), SimpleFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), CaloricallyImperfectGas::e_from_p_T(), CaloricallyImperfectGas::e_from_p_T(), IdealGasFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_p_T(), TabulatedPVTFluidProperties::e_from_p_T(), LinearFluidProperties::e_from_p_T(), CaloricallyImperfectGas::e_from_p_T(), IdealGasFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), StiffenedGasFluidProperties::e_from_p_T(), TabulatedPVTFluidProperties::e_from_p_T(), LinearFluidProperties::e_from_p_T(), Water97FluidProperties::e_from_p_T_template(), Water97FluidProperties::e_from_p_T_template(), NASA7IdealGasFluidProperties::e_from_T(), CaloricallyImperfectGas::e_from_T(), CaloricallyImperfectGas::e_from_T_v(), HeliumFluidProperties::e_from_T_v(), IdealGasFluidProperties::e_from_T_v(), HeliumFluidProperties::e_from_T_v(), IdealGasFluidProperties::e_from_T_v(), CaloricallyImperfectGas::e_from_T_v(), IdealGasFluidProperties::e_from_T_v(), StiffenedGasFluidProperties::e_from_T_v(), TestTVFluidProperties::e_from_T_v(), CaloricallyImperfectGas::e_from_T_v(), HeliumFluidProperties::e_from_T_v(), IdealGasFluidProperties::e_from_T_v(), StiffenedGasFluidProperties::e_from_T_v(), HeliumFluidProperties::e_from_T_v(), Water97FluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), CaloricallyImperfectGas::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), CaloricallyImperfectGas::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), StiffenedGasFluidProperties::g_from_v_e(), TabulatedFluidProperties::g_from_v_e(), Water97FluidProperties::gamma1(), Water97FluidProperties::gamma2(), Water97FluidProperties::gamma5(), CaloricallyImperfectGas::gamma_from_p_T(), CaloricallyImperfectGas::gamma_from_p_T(), CaloricallyImperfectGas::gamma_from_p_T(), NASA7IdealGasFluidProperties::gamma_from_T(), CaloricallyImperfectGas::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), LeadBismuthFluidProperties::h_from_p_T(), LeadFluidProperties::h_from_p_T(), LeadLithiumFluidProperties::h_from_p_T(), StiffenedGasFluidProperties::h_from_p_T(), TabulatedPVTFluidProperties::h_from_p_T(), LinearFluidProperties::h_from_p_T(), CaloricallyImperfectGas::h_from_p_T(), IdealGasFluidProperties::h_from_p_T(), LeadBismuthFluidProperties::h_from_p_T(), LeadFluidProperties::h_from_p_T(), LeadLithiumFluidProperties::h_from_p_T(), StiffenedGasFluidProperties::h_from_p_T(), TabulatedPVTFluidProperties::h_from_p_T(), LinearFluidProperties::h_from_p_T(), Water97FluidProperties::h_from_p_T_template(), NASA7IdealGasFluidProperties::h_from_T(), CaloricallyImperfectGas::h_from_T(), CaloricallyImperfectGas::h_from_T_v(), IdealGasFluidProperties::h_from_T_v(), StiffenedGasFluidProperties::h_from_T_v(), TestTVFluidProperties::h_from_T_v(), CaloricallyImperfectGas::h_from_T_v(), IdealGasFluidProperties::h_from_T_v(), StiffenedGasFluidProperties::h_from_T_v(), TestTVFluidProperties::h_from_T_v(), LeadBismuthFluidProperties::h_from_v_e(), LeadFluidProperties::h_from_v_e(), LeadLithiumFluidProperties::h_from_v_e(), LeadBismuthFluidProperties::h_from_v_e(), LeadFluidProperties::h_from_v_e(), LeadLithiumFluidProperties::h_from_v_e(), Water97FluidProperties::henryConstant(), LeadBismuthFluidProperties::k_from_p_T(), LeadFluidProperties::k_from_p_T(), LeadLithiumFluidProperties::k_from_p_T(), LeadBismuthFluidProperties::k_from_p_T(), LeadFluidProperties::k_from_p_T(), LeadLithiumFluidProperties::k_from_p_T(), CaloricallyImperfectGas::k_from_p_T(), IdealGasFluidProperties::k_from_p_T(), Water97FluidProperties::k_from_p_T_template(), Water97FluidProperties::k_from_rho_T_template(), NASA7IdealGasFluidProperties::k_from_T(), CaloricallyImperfectGas::k_from_v_e(), HeliumFluidProperties::k_from_v_e(), LeadBismuthFluidProperties::k_from_v_e(), LeadFluidProperties::k_from_v_e(), LeadLithiumFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TemperaturePressureFunctionFluidProperties::k_from_v_e(), CaloricallyImperfectGas::k_from_v_e(), HeliumFluidProperties::k_from_v_e(), LeadBismuthFluidProperties::k_from_v_e(), LeadFluidProperties::k_from_v_e(), LeadLithiumFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), SinglePhaseFluidProperties::makeZeroAndOne(), LeadBismuthFluidProperties::mu_from_p_T(), LeadFluidProperties::mu_from_p_T(), LeadLithiumFluidProperties::mu_from_p_T(), TabulatedPVTFluidProperties::mu_from_p_T(), CaloricallyImperfectGas::mu_from_p_T(), IdealGasFluidProperties::mu_from_p_T(), LeadBismuthFluidProperties::mu_from_p_T(), LeadFluidProperties::mu_from_p_T(), LeadLithiumFluidProperties::mu_from_p_T(), Water97FluidProperties::mu_from_p_T_template(), Water97FluidProperties::mu_from_rho_T_template(), NASA7IdealGasFluidProperties::mu_from_T(), Water97FluidProperties::mu_from_v_e(), CaloricallyImperfectGas::mu_from_v_e(), LeadBismuthFluidProperties::mu_from_v_e(), LeadFluidProperties::mu_from_v_e(), LeadLithiumFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TemperaturePressureFunctionFluidProperties::mu_from_v_e(), CaloricallyImperfectGas::mu_from_v_e(), LeadBismuthFluidProperties::mu_from_v_e(), LeadFluidProperties::mu_from_v_e(), LeadLithiumFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), CaloricallyImperfectGas::p_from_h_s(), CaloricallyImperfectGas::p_from_h_s(), HeliumFluidProperties::p_from_T_v(), CaloricallyImperfectGas::p_from_T_v(), HeliumFluidProperties::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), StiffenedGasFluidProperties::p_from_T_v(), TestTVFluidProperties::p_from_T_v(), CaloricallyImperfectGas::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), StiffenedGasFluidProperties::p_from_T_v(), TestTVFluidProperties::p_from_T_v(), HeliumFluidProperties::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), TemperaturePressureFunctionFluidProperties::p_from_v_e(), CaloricallyImperfectGas::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), Water97FluidProperties::p_from_v_e_template(), SimpleFluidProperties::p_from_v_h(), SimpleFluidProperties::p_from_v_h(), SinglePhaseFluidProperties::p_T_from_h_s(), SinglePhaseFluidProperties::p_T_from_v_e(), Water97FluidProperties::p_T_from_v_h(), SinglePhaseFluidProperties::p_T_from_v_h(), Water97FluidProperties::phi3(), SinglePhaseFluidProperties::rho_e_from_p_T(), CaloricallyImperfectGas::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), SodiumSaturationFluidProperties::rho_from_p_s(), StiffenedGasFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), IdealGasFluidProperties::rho_from_p_s(), SodiumSaturationFluidProperties::rho_from_p_s(), StiffenedGasFluidProperties::rho_from_p_s(), TabulatedFluidProperties::rho_from_p_s(), CaloricallyImperfectGas::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), TabulatedFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), TestSinglePhaseFluidProperties::rho_from_p_T(), TabulatedPVTFluidProperties::rho_from_p_T(), LinearFluidProperties::rho_from_p_T(), LinearTestFluidProperties::rho_from_p_T(), CaloricallyImperfectGas::rho_from_p_T(), IdealGasFluidProperties::rho_from_p_T(), LeadBismuthFluidProperties::rho_from_p_T(), LeadFluidProperties::rho_from_p_T(), LeadLithiumFluidProperties::rho_from_p_T(), TestSinglePhaseFluidProperties::rho_from_p_T(), LinearFluidProperties::rho_from_p_T(), LinearTestFluidProperties::rho_from_p_T(), Water97FluidProperties::rho_from_p_T_template(), SinglePhaseFluidProperties::rho_mu_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), SinglePhaseFluidProperties::rho_mu_from_p_T(), Water97FluidProperties::s_from_h_p(), Water97FluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_h_p(), TabulatedFluidProperties::s_from_h_p(), CaloricallyImperfectGas::s_from_p_T(), IdealGasFluidProperties::s_from_p_T(), SodiumSaturationFluidProperties::s_from_p_T(), 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(), StiffenedGasFluidProperties::s_from_T_v(), CaloricallyImperfectGas::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), StiffenedGasFluidProperties::s_from_T_v(), CaloricallyImperfectGas::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), Water97FluidProperties::subregionVolume(), Water97FluidProperties::T_drhodT_from_p_rho(), NASA7IdealGasFluidProperties::T_from_energy(), TabulatedFluidProperties::T_from_h_s(), TabulatedFluidProperties::T_from_p_h(), LeadLithiumFluidProperties::T_from_p_h(), SodiumSaturationFluidProperties::T_from_p_h(), TemperaturePressureFunctionFluidProperties::T_from_p_h(), CaloricallyImperfectGas::T_from_p_h(), IdealGasFluidProperties::T_from_p_h(), LeadBismuthFluidProperties::T_from_p_h(), LeadFluidProperties::T_from_p_h(), LeadLithiumFluidProperties::T_from_p_h(), Water97FluidProperties::T_from_p_h(), HelmholtzFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_h(), TabulatedFluidProperties::T_from_p_rho(), LeadLithiumFluidProperties::T_from_p_rho(), TemperaturePressureFunctionFluidProperties::T_from_p_rho(), LeadBismuthFluidProperties::T_from_p_rho(), LeadFluidProperties::T_from_p_rho(), LeadLithiumFluidProperties::T_from_p_rho(), SimpleFluidProperties::T_from_p_rho(), NaKFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), TabulatedFluidProperties::T_from_p_rho(), NASA7IdealGasFluidProperties::T_from_p_s(), TabulatedFluidProperties::T_from_p_s(), TabulatedFluidProperties::T_from_p_s(), TabulatedFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), HeliumFluidProperties::T_from_v_e(), IdealGasFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_e(), LeadLithiumFluidProperties::T_from_v_e(), TemperaturePressureFunctionFluidProperties::T_from_v_e(), CaloricallyImperfectGas::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), HeliumFluidProperties::T_from_v_e(), IdealGasFluidProperties::T_from_v_e(), LeadBismuthFluidProperties::T_from_v_e(), LeadFluidProperties::T_from_v_e(), LeadLithiumFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), LinearFluidProperties::T_from_v_e(), LinearTestFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_h(), CaloricallyImperfectGas::temperatureStep(), Water97FluidProperties::tempXY(), SinglePhaseFluidProperties::v_e_from_p_T(), SinglePhaseFluidProperties::v_e_from_p_T(), LeadBismuthFluidProperties::v_from_p_T(), LeadFluidProperties::v_from_p_T(), LeadLithiumFluidProperties::v_from_p_T(), LeadBismuthFluidProperties::v_from_p_T(), LeadFluidProperties::v_from_p_T(), LeadLithiumFluidProperties::v_from_p_T(), SinglePhaseFluidProperties::vaporPressure(), SinglePhaseFluidProperties::vaporPressure(), Water97FluidProperties::vaporPressureTemplate(), SinglePhaseFluidProperties::vaporTemperature(), SinglePhaseFluidProperties::vaporTemperature(), Water97FluidProperties::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 CaloricallyImperfectGas::c_from_v_e(), IdealGasFluidProperties::c_from_v_e(), LeadBismuthFluidProperties::c_from_v_e(), LeadFluidProperties::c_from_v_e(), LeadLithiumFluidProperties::c_from_v_e(), Water97FluidProperties::c_from_v_e(), CaloricallyImperfectGas::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), IdealGasFluidProperties::c_from_v_e(), LeadBismuthFluidProperties::c_from_v_e(), LeadFluidProperties::c_from_v_e(), LeadLithiumFluidProperties::c_from_v_e(), SimpleFluidProperties::c_from_v_e(), SodiumSaturationFluidProperties::c_from_v_e(), StiffenedGasFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TestSinglePhaseFluidProperties::c_from_v_e(), CaloricallyImperfectGas::c_from_v_e(), HeliumFluidProperties::c_from_v_e(), IdealGasFluidProperties::c_from_v_e(), SimpleFluidProperties::c_from_v_e(), SodiumSaturationFluidProperties::c_from_v_e(), StiffenedGasFluidProperties::c_from_v_e(), TabulatedFluidProperties::c_from_v_e(), TestSinglePhaseFluidProperties::c_from_v_e(), LinearFluidProperties::c_from_v_e(), TabulatedFluidProperties::checkInputVariablesVE(), SodiumSaturationFluidProperties::cp_from_p_T(), SodiumSaturationFluidProperties::cp_from_p_T(), Water97FluidProperties::cp_from_v_e(), CaloricallyImperfectGas::cp_from_v_e(), LeadBismuthFluidProperties::cp_from_v_e(), LeadFluidProperties::cp_from_v_e(), LeadLithiumFluidProperties::cp_from_v_e(), SodiumSaturationFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), TestSinglePhaseFluidProperties::cp_from_v_e(), CaloricallyImperfectGas::cp_from_v_e(), FlibeFluidProperties::cp_from_v_e(), FlinakFluidProperties::cp_from_v_e(), HeliumFluidProperties::cp_from_v_e(), IdealGasFluidProperties::cp_from_v_e(), LeadBismuthFluidProperties::cp_from_v_e(), LeadFluidProperties::cp_from_v_e(), LeadLithiumFluidProperties::cp_from_v_e(), SimpleFluidProperties::cp_from_v_e(), SodiumSaturationFluidProperties::cp_from_v_e(), StiffenedGasFluidProperties::cp_from_v_e(), TabulatedFluidProperties::cp_from_v_e(), TemperaturePressureFunctionFluidProperties::cp_from_v_e(), TestSinglePhaseFluidProperties::cp_from_v_e(), LinearFluidProperties::cp_from_v_e(), FlibeFluidProperties::cv_from_p_T(), FlinakFluidProperties::cv_from_p_T(), FlibeFluidProperties::cv_from_p_T(), FlinakFluidProperties::cv_from_p_T(), CaloricallyImperfectGas::cv_from_v_e(), Water97FluidProperties::cv_from_v_e(), FlibeFluidProperties::cv_from_v_e(), FlinakFluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), CaloricallyImperfectGas::cv_from_v_e(), FlibeFluidProperties::cv_from_v_e(), FlinakFluidProperties::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), LeadLithiumFluidProperties::cv_from_v_e(), SodiumSaturationFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TemperaturePressureFunctionFluidProperties::cv_from_v_e(), TestSinglePhaseFluidProperties::cv_from_v_e(), CaloricallyImperfectGas::cv_from_v_e(), FlibeFluidProperties::cv_from_v_e(), FlinakFluidProperties::cv_from_v_e(), HeliumFluidProperties::cv_from_v_e(), IdealGasFluidProperties::cv_from_v_e(), LeadBismuthFluidProperties::cv_from_v_e(), LeadFluidProperties::cv_from_v_e(), LeadLithiumFluidProperties::cv_from_v_e(), SimpleFluidProperties::cv_from_v_e(), SodiumSaturationFluidProperties::cv_from_v_e(), StiffenedGasFluidProperties::cv_from_v_e(), TabulatedFluidProperties::cv_from_v_e(), TestSinglePhaseFluidProperties::cv_from_v_e(), LinearFluidProperties::cv_from_v_e(), HeliumFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), HeliumFluidProperties::e_from_p_rho(), SodiumSaturationFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_rho(), TabulatedFluidProperties::e_from_p_T(), FlibeFluidProperties::e_from_p_T(), FlinakFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), SodiumSaturationFluidProperties::e_from_p_T(), FlibeFluidProperties::e_from_p_T(), FlinakFluidProperties::e_from_p_T(), LeadBismuthFluidProperties::e_from_p_T(), LeadFluidProperties::e_from_p_T(), LeadLithiumFluidProperties::e_from_p_T(), SodiumSaturationFluidProperties::e_from_p_T(), TabulatedFluidProperties::e_from_p_T(), CaloricallyImperfectGas::e_from_T_v(), HeliumFluidProperties::e_from_T_v(), StiffenedGasFluidProperties::e_from_T_v(), TestTVFluidProperties::e_from_T_v(), CaloricallyImperfectGas::e_from_T_v(), HeliumFluidProperties::e_from_T_v(), StiffenedGasFluidProperties::e_from_T_v(), Water97FluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), SimpleFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), LinearFluidProperties::e_from_v_h(), CaloricallyImperfectGas::e_from_v_h(), HeliumFluidProperties::e_from_v_h(), IdealGasFluidProperties::e_from_v_h(), StiffenedGasFluidProperties::e_from_v_h(), TabulatedFluidProperties::e_from_v_h(), LinearFluidProperties::e_from_v_h(), CaloricallyImperfectGas::g_from_v_e(), IdealGasFluidProperties::g_from_v_e(), StiffenedGasFluidProperties::g_from_v_e(), TabulatedFluidProperties::g_from_v_e(), CaloricallyImperfectGas::gamma_from_v_e(), CaloricallyImperfectGas::gamma_from_v_e(), CaloricallyImperfectGas::gamma_from_v_e(), TabulatedFluidProperties::generateVETabulatedData(), TabulatedFluidProperties::h_from_p_T(), SodiumSaturationFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), SodiumSaturationFluidProperties::h_from_p_T(), TabulatedFluidProperties::h_from_p_T(), TestTVFluidProperties::h_from_T_v(), TestTVFluidProperties::h_from_T_v(), LeadBismuthFluidProperties::h_from_v_e(), LeadFluidProperties::h_from_v_e(), LeadLithiumFluidProperties::h_from_v_e(), LeadBismuthFluidProperties::h_from_v_e(), LeadFluidProperties::h_from_v_e(), LeadLithiumFluidProperties::h_from_v_e(), Water97FluidProperties::k_from_v_e(), CaloricallyImperfectGas::k_from_v_e(), FlibeFluidProperties::k_from_v_e(), FlinakFluidProperties::k_from_v_e(), HeliumFluidProperties::k_from_v_e(), LeadBismuthFluidProperties::k_from_v_e(), LeadFluidProperties::k_from_v_e(), LeadLithiumFluidProperties::k_from_v_e(), SodiumSaturationFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TemperaturePressureFunctionFluidProperties::k_from_v_e(), Water97FluidProperties::k_from_v_e(), TestSinglePhaseFluidProperties::k_from_v_e(), CaloricallyImperfectGas::k_from_v_e(), HeliumFluidProperties::k_from_v_e(), LeadBismuthFluidProperties::k_from_v_e(), LeadFluidProperties::k_from_v_e(), LeadLithiumFluidProperties::k_from_v_e(), SodiumSaturationFluidProperties::k_from_v_e(), StiffenedGasFluidProperties::k_from_v_e(), TabulatedFluidProperties::k_from_v_e(), TestSinglePhaseFluidProperties::k_from_v_e(), Water97FluidProperties::k_from_v_e_template(), Water97FluidProperties::mu_from_v_e(), CaloricallyImperfectGas::mu_from_v_e(), FlibeFluidProperties::mu_from_v_e(), FlinakFluidProperties::mu_from_v_e(), HeliumFluidProperties::mu_from_v_e(), LeadBismuthFluidProperties::mu_from_v_e(), LeadFluidProperties::mu_from_v_e(), LeadLithiumFluidProperties::mu_from_v_e(), SodiumSaturationFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TemperaturePressureFunctionFluidProperties::mu_from_v_e(), TestSinglePhaseFluidProperties::mu_from_v_e(), LinearTestFluidProperties::mu_from_v_e(), CaloricallyImperfectGas::mu_from_v_e(), HeliumFluidProperties::mu_from_v_e(), LeadBismuthFluidProperties::mu_from_v_e(), LeadFluidProperties::mu_from_v_e(), LeadLithiumFluidProperties::mu_from_v_e(), SodiumSaturationFluidProperties::mu_from_v_e(), TabulatedFluidProperties::mu_from_v_e(), TestSinglePhaseFluidProperties::mu_from_v_e(), CaloricallyImperfectGas::p_from_h_s(), HeliumFluidProperties::p_from_T_v(), CaloricallyImperfectGas::p_from_T_v(), HeliumFluidProperties::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), StiffenedGasFluidProperties::p_from_T_v(), TestTVFluidProperties::p_from_T_v(), CaloricallyImperfectGas::p_from_T_v(), IdealGasFluidProperties::p_from_T_v(), StiffenedGasFluidProperties::p_from_T_v(), TestTVFluidProperties::p_from_T_v(), TestConservedVarFluidProperties::p_from_v_e(), CaloricallyImperfectGas::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), Water97FluidProperties::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), SimpleFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), CaloricallyImperfectGas::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), LeadBismuthFluidProperties::p_from_v_e(), LeadFluidProperties::p_from_v_e(), LeadLithiumFluidProperties::p_from_v_e(), SimpleFluidProperties::p_from_v_e(), SodiumSaturationFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), TemperaturePressureFunctionFluidProperties::p_from_v_e(), Water97FluidProperties::p_from_v_e(), LinearFluidProperties::p_from_v_e(), LinearTestFluidProperties::p_from_v_e(), CaloricallyImperfectGas::p_from_v_e(), FlibeFluidProperties::p_from_v_e(), FlinakFluidProperties::p_from_v_e(), HeliumFluidProperties::p_from_v_e(), IdealGasFluidProperties::p_from_v_e(), LeadBismuthFluidProperties::p_from_v_e(), LeadFluidProperties::p_from_v_e(), LeadLithiumFluidProperties::p_from_v_e(), SimpleFluidProperties::p_from_v_e(), SodiumSaturationFluidProperties::p_from_v_e(), TabulatedFluidProperties::p_from_v_e(), LinearFluidProperties::p_from_v_e(), Water97FluidProperties::p_from_v_e_template(), SimpleFluidProperties::p_from_v_h(), SimpleFluidProperties::p_from_v_h(), SinglePhaseFluidProperties::p_T_from_v_e(), Water97FluidProperties::p_T_from_v_e(), Water97FluidProperties::p_T_from_v_h(), SinglePhaseFluidProperties::p_T_from_v_h(), Water97FluidProperties::rho_T_from_v_e(), CaloricallyImperfectGas::s_from_h_p(), CaloricallyImperfectGas::s_from_p_T(), SodiumSaturationFluidProperties::s_from_p_T(), SodiumSaturationFluidProperties::s_from_p_T(), TabulatedFluidProperties::s_from_p_T(), CaloricallyImperfectGas::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), StiffenedGasFluidProperties::s_from_T_v(), CaloricallyImperfectGas::s_from_T_v(), IdealGasFluidProperties::s_from_T_v(), StiffenedGasFluidProperties::s_from_T_v(), CaloricallyImperfectGas::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), SodiumSaturationFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), TestSinglePhaseFluidProperties::s_from_v_e(), CaloricallyImperfectGas::s_from_v_e(), IdealGasFluidProperties::s_from_v_e(), SodiumSaturationFluidProperties::s_from_v_e(), TabulatedFluidProperties::s_from_v_e(), TestSinglePhaseFluidProperties::s_from_v_e(), setSpecificVolumeGrid(), SodiumSaturationFluidProperties::specific_volume_derivatives(), CaloricallyImperfectGas::T_from_v_e(), Water97FluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), HeliumFluidProperties::T_from_v_e(), IdealGasFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), LeadBismuthFluidProperties::T_from_v_e(), LeadFluidProperties::T_from_v_e(), LeadLithiumFluidProperties::T_from_v_e(), SodiumSaturationFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), TemperaturePressureFunctionFluidProperties::T_from_v_e(), Water97FluidProperties::T_from_v_e(), LinearTestFluidProperties::T_from_v_e(), CaloricallyImperfectGas::T_from_v_e(), FlibeFluidProperties::T_from_v_e(), FlinakFluidProperties::T_from_v_e(), HeliumFluidProperties::T_from_v_e(), IdealGasFluidProperties::T_from_v_e(), LeadBismuthFluidProperties::T_from_v_e(), LeadFluidProperties::T_from_v_e(), LeadLithiumFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_e(), SodiumSaturationFluidProperties::T_from_v_e(), TabulatedFluidProperties::T_from_v_e(), LinearFluidProperties::T_from_v_e(), SimpleFluidProperties::T_from_v_h(), SimpleFluidProperties::T_from_v_h(), SinglePhaseFluidProperties::v_e_from_p_T(), SinglePhaseFluidProperties::v_e_from_p_T(), CaloricallyImperfectGas::v_e_spndl_from_T(), IdealGasFluidProperties::v_e_spndl_from_T(), StiffenedGasFluidProperties::v_e_spndl_from_T(), TabulatedFluidProperties::v_from_p_T(), Water97FluidProperties::v_from_p_T(), FlibeFluidProperties::v_from_p_T(), FlinakFluidProperties::v_from_p_T(), LeadBismuthFluidProperties::v_from_p_T(), LeadFluidProperties::v_from_p_T(), LeadLithiumFluidProperties::v_from_p_T(), SodiumSaturationFluidProperties::v_from_p_T(), TemperaturePressureFunctionFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), TabulatedFluidProperties::v_from_p_T(), Water97FluidProperties::v_from_p_T(), Water97FluidProperties::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: