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.
1.8.14