Material designed to provide the porosity in PorousFlow simulations porosity_ref + P_coeff * (P - P_ref) + T_coeff * (T - T_ref) + epv_coeff * (epv - epv_ref), where P is the effective porepressure, T is the temperature and epv is the volumetric strain. More...
#include <PorousFlowPorosityLinear.h>
Public Types | |
typedef DerivativeMaterialPropertyNameInterface::SymbolName | SymbolName |
Public Member Functions | |
PorousFlowPorosityLinear (const InputParameters ¶meters) | |
virtual void | initialSetup () override |
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 |
Protected Attributes | |
const bool | _strain_at_nearest_qp |
When calculating nodal porosity, use the strain at the nearest quadpoint to the node. More... | |
const Real | _porosity_min |
If the linear relationship produces porosity < _porosity_min, then porosity is set to _porosity_min. More... | |
const VariableValue & | _phi_ref |
Porosity at reference porepressure, temperature and volumetric strain. More... | |
const VariableValue & | _P_ref |
Reference effective porepressure. More... | |
const VariableValue & | _T_ref |
Reference temperature. More... | |
const VariableValue & | _epv_ref |
Reference volumetric strain. More... | |
const Real | _P_coeff |
coefficient of effective porepressure More... | |
const Real | _T_coeff |
coefficient of temperature More... | |
const Real | _epv_coeff |
coefficient of volumetric strain More... | |
const bool | _uses_volstrain |
whether epv_coeff has been set More... | |
const OptionalMaterialProperty< Real > & | _vol_strain_qp |
Strain (first const means we never want to dereference and change the value, second means we'll always be pointing to the same address after initialization (like a reference)) More... | |
const OptionalMaterialProperty< std::vector< RealGradient > > & | _dvol_strain_qp_dvar |
d(strain)/(dvar) (first const means we never want to dereference and change the value, second means we'll always be pointing to the same address after initialization (like a reference)) More... | |
const bool | _uses_pf |
whether P_coeff has been set More... | |
const OptionalMaterialProperty< Real > & | _pf_nodal |
Effective porepressure at the quadpoints or nodes. More... | |
const OptionalMaterialProperty< Real > & | _pf_qp |
const MaterialProperty< Real > * | _pf |
const OptionalMaterialProperty< std::vector< Real > > & | _dpf_dvar_nodal |
d(effective porepressure)/(d porflow variable) More... | |
const OptionalMaterialProperty< std::vector< Real > > & | _dpf_dvar_qp |
const MaterialProperty< std::vector< Real > > * | _dpf_dvar |
const bool | _uses_T |
whether T_coeff has been set More... | |
const OptionalMaterialProperty< Real > & | _temperature_nodal |
Temperature at the quadpoints or nodes. More... | |
const OptionalMaterialProperty< Real > & | _temperature_qp |
const MaterialProperty< Real > * | _temperature |
const OptionalMaterialProperty< std::vector< Real > > & | _dtemperature_dvar_nodal |
d(temperature)/(d porflow variable) More... | |
const OptionalMaterialProperty< std::vector< Real > > & | _dtemperature_dvar_qp |
const MaterialProperty< std::vector< Real > > * | _dtemperature_dvar |
const Real | _zero_modifier |
If the linear relationship produces porosity < _porosity_min, then porosity is set to _porosity_min. This means the derivatives of it will be zero. However, this gives poor NR convergence, so the derivatives are set to _zero_modifier * (values that are relevant for porosity_min) to hint to the NR that porosity is not always constant. More... | |
GenericMaterialProperty< Real, is_ad > & | _porosity |
Computed porosity at the nodes or quadpoints. More... | |
MaterialProperty< std::vector< Real > > *const | _dporosity_dvar |
d(porosity)/d(PorousFlow variable) More... | |
MaterialProperty< std::vector< RealGradient > > *const | _dporosity_dgradvar |
d(porosity)/d(grad PorousFlow variable) More... | |
const unsigned int | _num_phases |
Number of phases. More... | |
const unsigned int | _num_components |
Number of fluid components. More... | |
const unsigned int | _num_var |
Number of PorousFlow variables. More... | |
Material designed to provide the porosity in PorousFlow simulations porosity_ref + P_coeff * (P - P_ref) + T_coeff * (T - T_ref) + epv_coeff * (epv - epv_ref), where P is the effective porepressure, T is the temperature and epv is the volumetric strain.
Definition at line 19 of file PorousFlowPorosityLinear.h.
PorousFlowPorosityLinear::PorousFlowPorosityLinear | ( | const InputParameters & | parameters | ) |
Definition at line 68 of file PorousFlowPorosityLinear.C.
|
overrideprotectedvirtual |
Definition at line 138 of file PorousFlowPorosityLinear.C.
|
overridevirtual |
Definition at line 105 of file PorousFlowPorosityLinear.C.
|
overrideprotectedvirtual |
Definition at line 130 of file PorousFlowPorosityLinear.C.
|
static |
Definition at line 15 of file PorousFlowPorosityLinear.C.
|
protected |
Definition at line 79 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
d(effective porepressure)/(d porflow variable)
Definition at line 77 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
Definition at line 78 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protectedinherited |
d(porosity)/d(grad PorousFlow variable)
Definition at line 33 of file PorousFlowPorosityBase.h.
Referenced by computeQpProperties(), and PorousFlowPorosityHMBiotModulus::computeQpProperties().
|
protectedinherited |
d(porosity)/d(PorousFlow variable)
Definition at line 30 of file PorousFlowPorosityBase.h.
Referenced by computeQpProperties(), and PorousFlowPorosityHMBiotModulus::computeQpProperties().
|
protected |
Definition at line 92 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
d(temperature)/(d porflow variable)
Definition at line 90 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
Definition at line 91 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
d(strain)/(dvar) (first const means we never want to dereference and change the value, second means we'll always be pointing to the same address after initialization (like a reference))
Definition at line 66 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties(), and initialSetup().
|
protected |
coefficient of volumetric strain
Definition at line 57 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().
|
protected |
Reference volumetric strain.
Definition at line 48 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().
|
protectedinherited |
Number of fluid components.
Definition at line 30 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowMassFractionAqueousEquilibriumChemistry::computeQpProperties(), PorousFlowAqueousPreDisChemistry::PorousFlowAqueousPreDisChemistry(), PorousFlowDiffusivityBaseTempl< is_ad >::PorousFlowDiffusivityBaseTempl(), and PorousFlowMassFractionTempl< is_ad >::PorousFlowMassFractionTempl().
|
protectedinherited |
Number of phases.
Definition at line 27 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowDiffusivityBaseTempl< is_ad >::PorousFlowDiffusivityBaseTempl(), PorousFlowDiffusivityConstTempl< is_ad >::PorousFlowDiffusivityConstTempl(), PorousFlowJoinerTempl< is_ad >::PorousFlowJoinerTempl(), PorousFlowMassFractionTempl< is_ad >::PorousFlowMassFractionTempl(), PorousFlowThermalConductivityFromPorosityTempl< is_ad >::PorousFlowThermalConductivityFromPorosityTempl(), PorousFlowThermalConductivityIdealTempl< is_ad >::PorousFlowThermalConductivityIdealTempl(), and PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity().
|
protectedinherited |
Number of PorousFlow variables.
Definition at line 33 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowVolumetricStrain::computeQpProperties(), PorousFlowAqueousPreDisChemistry::computeQpProperties(), PorousFlowMassFractionAqueousEquilibriumChemistry::computeQpProperties(), computeQpProperties(), PorousFlowPorosityHMBiotModulus::computeQpProperties(), PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::computeQpProperties(), PorousFlowPorosityExponentialBase::computeQpProperties(), PorousFlowAqueousPreDisChemistry::initQpStatefulProperties(), and initQpStatefulProperties().
|
protected |
coefficient of effective porepressure
Definition at line 51 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().
|
protected |
Reference effective porepressure.
Definition at line 42 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().
|
protected |
Definition at line 74 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
Effective porepressure at the quadpoints or nodes.
Definition at line 72 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
Definition at line 73 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
Porosity at reference porepressure, temperature and volumetric strain.
Definition at line 39 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties(), and initQpStatefulProperties().
|
protectedinherited |
Computed porosity at the nodes or quadpoints.
Definition at line 27 of file PorousFlowPorosityBase.h.
Referenced by computeQpProperties(), PorousFlowPorosityHMBiotModulus::computeQpProperties(), PorousFlowPorosityExponentialBase::computeQpProperties(), initQpStatefulProperties(), and PorousFlowPorosityExponentialBase::initQpStatefulProperties().
|
protected |
If the linear relationship produces porosity < _porosity_min, then porosity is set to _porosity_min.
Definition at line 36 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().
|
protected |
When calculating nodal porosity, use the strain at the nearest quadpoint to the node.
Definition at line 33 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().
|
protected |
coefficient of temperature
Definition at line 54 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().
|
protected |
Reference temperature.
Definition at line 45 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().
|
protected |
Definition at line 87 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
Temperature at the quadpoints or nodes.
Definition at line 85 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
Definition at line 86 of file PorousFlowPorosityLinear.h.
Referenced by initialSetup().
|
protected |
whether P_coeff has been set
Definition at line 69 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties(), and initialSetup().
|
protected |
whether T_coeff has been set
Definition at line 82 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties(), and initialSetup().
|
protected |
whether epv_coeff has been set
Definition at line 60 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties(), and initialSetup().
|
protected |
Strain (first const means we never want to dereference and change the value, second means we'll always be pointing to the same address after initialization (like a reference))
Definition at line 63 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties(), and initialSetup().
|
protected |
If the linear relationship produces porosity < _porosity_min, then porosity is set to _porosity_min. This means the derivatives of it will be zero. However, this gives poor NR convergence, so the derivatives are set to _zero_modifier * (values that are relevant for porosity_min) to hint to the NR that porosity is not always constant.
Definition at line 95 of file PorousFlowPorosityLinear.h.
Referenced by computeQpProperties().