Fluid state base class using a persistent set of primary variables for multiphase, single and multicomponent cases. More...
#include <PorousFlowFluidStateBaseMaterial.h>
Public Types | |
typedef DerivativeMaterialPropertyNameInterface::SymbolName | SymbolName |
Public Member Functions | |
PorousFlowFluidStateBaseMaterialTempl (const InputParameters ¶meters) | |
const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialProperty (const std::string &name) |
const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialPropertyByName (const std::string &name) |
void | validateDerivativeMaterialPropertyBase (const std::string &base) |
const MaterialPropertyName | derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
void | validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true) |
void | validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true) |
void | validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
const MaterialPropertyName | propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Member Functions | |
virtual void | initQpStatefulProperties () override |
virtual void | computeQpProperties () override |
virtual void | setMaterialVectorSize () const |
Size material property vectors and initialise with zeros. More... | |
virtual void | thermophysicalProperties ()=0 |
Calculates all required thermophysical properties and derivatives for each phase and fluid component. More... | |
GenericReal< is_ad > | genericValue (const ADReal &value) |
Templated method that takes an ADReal value, and returns the raw value when is_ad = false, and the AD value when is_ad = true. More... | |
template<> | |
GenericReal< false > | genericValue (const ADReal &value) |
template<> | |
GenericReal< true > | genericValue (const ADReal &value) |
Protected Attributes | |
const Real | _T_c2k |
Conversion from degrees Celsius to degrees Kelvin. More... | |
bool | _is_initqp |
Flag to indicate whether stateful properties should be computed. More... | |
std::vector< FluidStateProperties > | _fsp |
FluidStateProperties data for each fluid component in each fluid phase. More... | |
const PorousFlowCapillaryPressure & | _pc |
Capillary pressure UserObject. More... | |
const std::string | _sfx |
Suffix to append to material property names (either qp or nodal as required) More... | |
GenericMaterialProperty< std::vector< std::vector< Real > >, is_ad > & | _mass_frac |
Mass fraction matrix (indexing is fluid component in fluid phase) More... | |
GenericMaterialProperty< std::vector< std::vector< RealGradient > >, is_ad > *const | _grad_mass_frac_qp |
Gradient of the mass fraction matrix (only defined at the qps) More... | |
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > *const | _dmass_frac_dvar |
Derivative of the mass fraction matrix with respect to the Porous Flow variables. More... | |
GenericMaterialProperty< std::vector< Real >, is_ad > & | _fluid_density |
Fluid density of each phase. More... | |
MaterialProperty< std::vector< std::vector< Real > > > *const | _dfluid_density_dvar |
Derivative of the fluid density for each phase wrt PorousFlow variables. More... | |
GenericMaterialProperty< std::vector< Real >, is_ad > & | _fluid_viscosity |
Viscosity of each phase. More... | |
MaterialProperty< std::vector< std::vector< Real > > > *const | _dfluid_viscosity_dvar |
Derivative of the fluid viscosity for each phase wrt PorousFlow variables. More... | |
GenericMaterialProperty< std::vector< Real >, is_ad > & | _fluid_enthalpy |
Enthalpy of each phase. More... | |
MaterialProperty< std::vector< std::vector< Real > > > *const | _dfluid_enthalpy_dvar |
Derivative of the fluid enthalpy for each phase wrt PorousFlow variables. More... | |
GenericMaterialProperty< std::vector< Real >, is_ad > & | _fluid_internal_energy |
Internal energy of each phase. More... | |
MaterialProperty< std::vector< std::vector< Real > > > *const | _dfluid_internal_energy_dvar |
Derivative of the fluid internal energy for each phase wrt PorousFlow variables. More... | |
usingPorousFlowVariableBaseMembers | |
const unsigned int | _num_phases |
Number of phases. More... | |
const unsigned int | _num_components |
Number of components. More... | |
const unsigned int | _num_pf_vars |
Number of PorousFlow variables. More... | |
GenericMaterialProperty< std::vector< Real >, is_ad > & | _porepressure |
Computed nodal or quadpoint values of porepressure of the phases. More... | |
MaterialProperty< std::vector< std::vector< Real > > > *const | _dporepressure_dvar |
d(porepressure)/d(PorousFlow variable) More... | |
GenericMaterialProperty< std::vector< RealGradient >, is_ad > *const | _gradp_qp |
Grad(p) at the quadpoints. More... | |
MaterialProperty< std::vector< std::vector< Real > > > *const | _dgradp_qp_dgradv |
d(grad porepressure)/d(grad PorousFlow variable) at the quadpoints More... | |
MaterialProperty< std::vector< std::vector< RealGradient > > > *const | _dgradp_qp_dv |
d(grad porepressure)/d(PorousFlow variable) at the quadpoints More... | |
GenericMaterialProperty< std::vector< Real >, is_ad > & | _saturation |
Computed nodal or qp saturation of the phases. More... | |
MaterialProperty< std::vector< std::vector< Real > > > *const | _dsaturation_dvar |
d(saturation)/d(PorousFlow variable) More... | |
GenericMaterialProperty< std::vector< RealGradient >, is_ad > *const | _grads_qp |
Grad(s) at the quadpoints. More... | |
MaterialProperty< std::vector< std::vector< Real > > > *const | _dgrads_qp_dgradv |
d(grad saturation)/d(grad PorousFlow variable) at the quadpoints More... | |
MaterialProperty< std::vector< std::vector< RealGradient > > > *const | _dgrads_qp_dv |
d(grad saturation)/d(PorousFlow variable) at the quadpoints More... | |
Fluid state base class using a persistent set of primary variables for multiphase, single and multicomponent cases.
Definition at line 22 of file PorousFlowFluidStateBaseMaterial.h.
PorousFlowFluidStateBaseMaterialTempl< is_ad >::PorousFlowFluidStateBaseMaterialTempl | ( | const InputParameters & | parameters | ) |
Definition at line 30 of file PorousFlowFluidStateBaseMaterial.C.
|
overrideprotectedvirtual |
Reimplemented from PorousFlowVariableBaseTempl< is_ad >.
Reimplemented in PorousFlowFluidStateTempl< is_ad >, and PorousFlowFluidStateSingleComponentTempl< is_ad >.
Definition at line 121 of file PorousFlowFluidStateBaseMaterial.C.
Referenced by PorousFlowFluidStateSingleComponentTempl< is_ad >::computeQpProperties(), and PorousFlowFluidStateTempl< is_ad >::computeQpProperties().
|
protected |
Templated method that takes an ADReal value, and returns the raw value when is_ad = false, and the AD value when is_ad = true.
value | AD value |
|
protected |
Definition at line 76 of file PorousFlowFluidStateBaseMaterial.C.
|
protected |
Definition at line 83 of file PorousFlowFluidStateBaseMaterial.C.
|
overrideprotectedvirtual |
Reimplemented from PorousFlowVariableBaseTempl< is_ad >.
Reimplemented in PorousFlowFluidStateTempl< is_ad >, and PorousFlowFluidStateSingleComponentTempl< is_ad >.
Definition at line 90 of file PorousFlowFluidStateBaseMaterial.C.
Referenced by PorousFlowFluidStateSingleComponentTempl< is_ad >::initQpStatefulProperties(), and PorousFlowFluidStateTempl< is_ad >::initQpStatefulProperties().
|
protectedvirtual |
Size material property vectors and initialise with zeros.
Reimplemented in PorousFlowFluidStateSingleComponentTempl< is_ad >.
Definition at line 149 of file PorousFlowFluidStateBaseMaterial.C.
Referenced by PorousFlowFluidStateSingleComponentTempl< is_ad >::setMaterialVectorSize().
|
protectedpure virtual |
Calculates all required thermophysical properties and derivatives for each phase and fluid component.
Implemented in PorousFlowFluidStateTempl< is_ad >, and PorousFlowFluidStateSingleComponentTempl< is_ad >.
|
static |
Definition at line 15 of file PorousFlowFluidStateBaseMaterial.C.
Referenced by PorousFlowFluidStateSingleComponentTempl< is_ad >::validParams(), and PorousFlowFluidStateTempl< is_ad >::validParams().
|
protected |
Derivative of the fluid density for each phase wrt PorousFlow variables.
Definition at line 70 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Derivative of the fluid enthalpy for each phase wrt PorousFlow variables.
Definition at line 78 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Derivative of the fluid internal energy for each phase wrt PorousFlow variables.
Definition at line 82 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Derivative of the fluid viscosity for each phase wrt PorousFlow variables.
Definition at line 74 of file PorousFlowFluidStateBaseMaterial.h.
|
protectedinherited |
d(grad porepressure)/d(grad PorousFlow variable) at the quadpoints
Definition at line 51 of file PorousFlowVariableBase.h.
|
protectedinherited |
d(grad porepressure)/d(PorousFlow variable) at the quadpoints
Definition at line 54 of file PorousFlowVariableBase.h.
|
protectedinherited |
d(grad saturation)/d(grad PorousFlow variable) at the quadpoints
Definition at line 66 of file PorousFlowVariableBase.h.
|
protectedinherited |
d(grad saturation)/d(PorousFlow variable) at the quadpoints
Definition at line 69 of file PorousFlowVariableBase.h.
|
protected |
Derivative of the mass fraction matrix with respect to the Porous Flow variables.
Definition at line 66 of file PorousFlowFluidStateBaseMaterial.h.
|
protectedinherited |
d(porepressure)/d(PorousFlow variable)
Definition at line 45 of file PorousFlowVariableBase.h.
|
protectedinherited |
d(saturation)/d(PorousFlow variable)
Definition at line 60 of file PorousFlowVariableBase.h.
|
protected |
Fluid density of each phase.
Definition at line 68 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Enthalpy of each phase.
Definition at line 76 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Internal energy of each phase.
Definition at line 80 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Viscosity of each phase.
Definition at line 72 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
FluidStateProperties data for each fluid component in each fluid phase.
Definition at line 55 of file PorousFlowFluidStateBaseMaterial.h.
Referenced by PorousFlowFluidStateBaseMaterialTempl< is_ad >::PorousFlowFluidStateBaseMaterialTempl().
|
protected |
Gradient of the mass fraction matrix (only defined at the qps)
Definition at line 64 of file PorousFlowFluidStateBaseMaterial.h.
|
protectedinherited |
Grad(p) at the quadpoints.
Definition at line 48 of file PorousFlowVariableBase.h.
|
protectedinherited |
Grad(s) at the quadpoints.
Definition at line 63 of file PorousFlowVariableBase.h.
|
protected |
Flag to indicate whether stateful properties should be computed.
Definition at line 53 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Mass fraction matrix (indexing is fluid component in fluid phase)
Definition at line 62 of file PorousFlowFluidStateBaseMaterial.h.
|
protectedinherited |
Number of components.
Definition at line 36 of file PorousFlowVariableBase.h.
Referenced by PorousFlowFluidStateBaseMaterialTempl< is_ad >::PorousFlowFluidStateBaseMaterialTempl().
|
protectedinherited |
Number of PorousFlow variables.
Definition at line 39 of file PorousFlowVariableBase.h.
|
protectedinherited |
Number of phases.
Definition at line 33 of file PorousFlowVariableBase.h.
Referenced by PorousFlow2PhaseHysPS::computeQpProperties(), PorousFlow1PhaseFullySaturatedTempl< is_ad >::PorousFlow1PhaseFullySaturatedTempl(), PorousFlow1PhaseHysP::PorousFlow1PhaseHysP(), PorousFlow1PhaseMD_Gaussian::PorousFlow1PhaseMD_Gaussian(), PorousFlow1PhasePTempl< is_ad >::PorousFlow1PhasePTempl(), PorousFlow2PhaseHysPP::PorousFlow2PhaseHysPP(), PorousFlow2PhaseHysPS::PorousFlow2PhaseHysPS(), PorousFlow2PhasePPTempl< is_ad >::PorousFlow2PhasePPTempl(), PorousFlowFluidStateBaseMaterialTempl< is_ad >::PorousFlowFluidStateBaseMaterialTempl(), PorousFlowFluidStateSingleComponentTempl< is_ad >::PorousFlowFluidStateSingleComponentTempl(), and PorousFlowFluidStateTempl< is_ad >::PorousFlowFluidStateTempl().
|
protected |
Capillary pressure UserObject.
Definition at line 57 of file PorousFlowFluidStateBaseMaterial.h.
|
protectedinherited |
Computed nodal or quadpoint values of porepressure of the phases.
Definition at line 42 of file PorousFlowVariableBase.h.
Referenced by PorousFlow1PhaseMD_Gaussian::buildPS(), PorousFlow1PhaseHysP::buildQpPPSS(), PorousFlow2PhaseHysPP::buildQpPPSS(), PorousFlow2PhaseHysPS::buildQpPPSS(), and PorousFlow1PhaseMD_Gaussian::computeQpProperties().
|
protectedinherited |
Computed nodal or qp saturation of the phases.
Definition at line 57 of file PorousFlowVariableBase.h.
Referenced by PorousFlow1PhaseMD_Gaussian::buildPS(), PorousFlow1PhaseHysP::buildQpPPSS(), PorousFlow2PhaseHysPP::buildQpPPSS(), PorousFlow2PhaseHysPS::buildQpPPSS(), PorousFlowHystereticInfo::computeQpProperties(), PorousFlow1PhaseMD_Gaussian::computeQpProperties(), and PorousFlowHystereticInfo::initQpStatefulProperties().
|
protected |
Suffix to append to material property names (either qp or nodal as required)
Definition at line 59 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Conversion from degrees Celsius to degrees Kelvin.
Definition at line 51 of file PorousFlowFluidStateBaseMaterial.h.
|
protected |
Definition at line 84 of file PorousFlowFluidStateBaseMaterial.h.