Material designed to provide the porosity in PorousFlow simulations chemistry + biot + (phi0 - reference_chemistry - biot) * exp(-vol_strain. More...
#include <PorousFlowPorosity.h>
Public Member Functions | |
PorousFlowPorosity (const InputParameters ¶meters) | |
Protected Member Functions | |
virtual Real | atNegInfinityQp () const override |
Returns "a" at the quadpoint (porosity = a + (b - a) * exp(decay)) More... | |
virtual Real | datNegInfinityQp (unsigned pvar) const override |
d(a)/d(PorousFlow variable pvar) More... | |
virtual Real | atZeroQp () const override |
Returns "b" at the quadpoint (porosity = a + (b - a) * exp(decay)) More... | |
virtual Real | datZeroQp (unsigned pvar) const override |
d(a)/d(PorousFlow variable pvar) More... | |
virtual Real | decayQp () const override |
Returns "decay" at the quadpoint (porosity = a + (b - a) * exp(decay)) More... | |
virtual Real | ddecayQp_dvar (unsigned pvar) const override |
d(decay)/d(PorousFlow variable pvar) More... | |
virtual RealGradient | ddecayQp_dgradvar (unsigned pvar) const override |
d(decay)/d(grad(PorousFlow variable pvar)) More... | |
virtual void | initQpStatefulProperties () override |
virtual void | computeQpProperties () override |
Protected Attributes | |
const bool | _mechanical |
Porosity is a function of volumetric strain. More... | |
const bool | _fluid |
Porosity is a function of effective porepressure. More... | |
const bool | _thermal |
Porosity is a function of temperature. More... | |
const bool | _chemical |
Porosity is a function of chemistry. More... | |
const VariableValue & | _phi0 |
Porosity at zero strain and zero porepressure and zero temperature. More... | |
const Real | _biot |
Biot coefficient. More... | |
const Real | _exp_coeff |
Thermal expansion coefficient of the solid porous skeleton. More... | |
const Real | _solid_bulk |
Drained bulk modulus of the porous skeleton. More... | |
const Real | _coeff |
Short-hand number (biot-1)/solid_bulk. More... | |
const VariableValue & | _t_reference |
Reference temperature. More... | |
const VariableValue & | _p_reference |
Reference porepressure. More... | |
const unsigned | _num_c_ref |
Number of reference mineral concentrations provided by user. More... | |
std::vector< const VariableValue * > | _c_reference |
Reference mineral concentrations. More... | |
const unsigned | _num_initial_c |
Number of reference mineral concentrations provided by user. More... | |
std::vector< const VariableValue * > | _initial_c |
Reference mineral concentrations. More... | |
std::vector< Real > | _c_weights |
Weights for the mineral concentrations. More... | |
const MaterialProperty< Real > *const | _porosity_old |
Old value of porosity. More... | |
const MaterialProperty< Real > *const | _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 MaterialProperty< std::vector< RealGradient > > *const | _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 MaterialProperty< Real > *const | _pf |
Effective porepressure at the quadpoints or nodes. More... | |
const MaterialProperty< std::vector< Real > > *const | _dpf_dvar |
d(effective porepressure)/(d porflow variable) More... | |
const MaterialProperty< Real > *const | _temperature |
Temperature at the quadpoints or nodes. More... | |
const MaterialProperty< std::vector< Real > > *const | _dtemperature_dvar |
d(temperature)/(d porflow variable) More... | |
const MaterialProperty< std::vector< Real > > *const | _mineral_conc_old |
Old value of mineral concentration at the quadpoints or nodes. More... | |
const MaterialProperty< std::vector< Real > > *const | _reaction_rate |
Reaction rate of mineralisation. More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _dreaction_rate_dvar |
d(reaction_rate_conc)/d(porflow variable) More... | |
const unsigned int | _aq_ph |
Aqueous phase number. More... | |
const MaterialProperty< std::vector< Real > > *const | _saturation |
Saturation. More... | |
const MaterialProperty< std::vector< std::vector< Real > > > *const | _dsaturation_dvar |
d(saturation)/d(PorousFlow var) More... | |
const bool | _strain_at_nearest_qp |
When calculating nodal porosity, use the strain at the nearest quadpoint to the node. More... | |
const bool | _ensure_positive |
for decayQp() > 0, porosity can be negative when using porosity = a + (b - a) * exp(decay). More... | |
MaterialProperty< Real > & | _porosity |
Computed porosity at the nodes or quadpoints. More... | |
MaterialProperty< std::vector< Real > > & | _dporosity_dvar |
d(porosity)/d(PorousFlow variable) More... | |
MaterialProperty< std::vector< RealGradient > > & | _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 chemistry + biot + (phi0 - reference_chemistry - biot) * exp(-vol_strain.
Definition at line 25 of file PorousFlowPorosity.h.
PorousFlowPorosity::PorousFlowPorosity | ( | const InputParameters & | parameters | ) |
Definition at line 60 of file PorousFlowPorosity.C.
|
overrideprotectedvirtual |
Returns "a" at the quadpoint (porosity = a + (b - a) * exp(decay))
Implements PorousFlowPorosityExponentialBase.
Definition at line 178 of file PorousFlowPorosity.C.
|
overrideprotectedvirtual |
Returns "b" at the quadpoint (porosity = a + (b - a) * exp(decay))
Implements PorousFlowPorosityExponentialBase.
Definition at line 219 of file PorousFlowPorosity.C.
|
overrideprotectedvirtualinherited |
Reimplemented in PorousFlowPorosityHMBiotModulus.
Definition at line 62 of file PorousFlowPorosityExponentialBase.C.
|
overrideprotectedvirtual |
d(a)/d(PorousFlow variable pvar)
Implements PorousFlowPorosityExponentialBase.
Definition at line 207 of file PorousFlowPorosity.C.
|
overrideprotectedvirtual |
d(a)/d(PorousFlow variable pvar)
Implements PorousFlowPorosityExponentialBase.
Definition at line 239 of file PorousFlowPorosity.C.
|
overrideprotectedvirtual |
d(decay)/d(grad(PorousFlow variable pvar))
Implements PorousFlowPorosityExponentialBase.
Definition at line 290 of file PorousFlowPorosity.C.
|
overrideprotectedvirtual |
d(decay)/d(PorousFlow variable pvar)
Implements PorousFlowPorosityExponentialBase.
Definition at line 276 of file PorousFlowPorosity.C.
|
overrideprotectedvirtual |
Returns "decay" at the quadpoint (porosity = a + (b - a) * exp(decay))
Implements PorousFlowPorosityExponentialBase.
Definition at line 251 of file PorousFlowPorosity.C.
|
overrideprotectedvirtualinherited |
Definition at line 44 of file PorousFlowPorosityExponentialBase.C.
|
protected |
Aqueous phase number.
Definition at line 118 of file PorousFlowPorosity.h.
Referenced by atNegInfinityQp(), atZeroQp(), datNegInfinityQp(), and datZeroQp().
|
protected |
Biot coefficient.
Definition at line 55 of file PorousFlowPorosity.h.
Referenced by atNegInfinityQp(), and PorousFlowPorosityHMBiotModulus::computeQpProperties().
|
protected |
Reference mineral concentrations.
Definition at line 76 of file PorousFlowPorosity.h.
Referenced by atZeroQp(), and PorousFlowPorosity().
|
protected |
Weights for the mineral concentrations.
Definition at line 85 of file PorousFlowPorosity.h.
Referenced by atNegInfinityQp(), atZeroQp(), datNegInfinityQp(), datZeroQp(), and PorousFlowPorosity().
|
protected |
Porosity is a function of chemistry.
Definition at line 49 of file PorousFlowPorosity.h.
Referenced by atNegInfinityQp(), atZeroQp(), datNegInfinityQp(), datZeroQp(), and PorousFlowPorosity().
|
protected |
Short-hand number (biot-1)/solid_bulk.
Definition at line 64 of file PorousFlowPorosity.h.
Referenced by ddecayQp_dvar(), and decayQp().
|
protected |
d(effective porepressure)/(d porflow variable)
Definition at line 100 of file PorousFlowPorosity.h.
Referenced by PorousFlowPorosityHMBiotModulus::computeQpProperties().
|
protectedinherited |
d(porosity)/d(grad PorousFlow variable)
Definition at line 35 of file PorousFlowPorosityBase.h.
Referenced by PorousFlowPorosityConst::computeQpProperties(), PorousFlowPorosityHMBiotModulus::computeQpProperties(), and PorousFlowPorosityExponentialBase::computeQpProperties().
|
protectedinherited |
d(porosity)/d(PorousFlow variable)
Definition at line 32 of file PorousFlowPorosityBase.h.
Referenced by PorousFlowPorosityConst::computeQpProperties(), PorousFlowPorosityHMBiotModulus::computeQpProperties(), and PorousFlowPorosityExponentialBase::computeQpProperties().
|
protected |
d(reaction_rate_conc)/d(porflow variable)
Definition at line 115 of file PorousFlowPorosity.h.
|
protected |
d(saturation)/d(PorousFlow var)
Definition at line 124 of file PorousFlowPorosity.h.
|
protected |
d(temperature)/(d porflow variable)
Definition at line 106 of file PorousFlowPorosity.h.
|
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 94 of file PorousFlowPorosity.h.
Referenced by PorousFlowPorosityHMBiotModulus::computeQpProperties().
|
protectedinherited |
for decayQp() > 0, porosity can be negative when using porosity = a + (b - a) * exp(decay).
This expression is modified if ensure_positive = true to read porosity = a + (b - a) * exp(c * (1 - Exp(- decay / c))) where c = log(a/(b-a))
Definition at line 76 of file PorousFlowPorosityExponentialBase.h.
Referenced by PorousFlowPorosityExponentialBase::computeQpProperties(), and PorousFlowPorosityExponentialBase::initQpStatefulProperties().
|
protected |
Thermal expansion coefficient of the solid porous skeleton.
Definition at line 58 of file PorousFlowPorosity.h.
Referenced by ddecayQp_dvar(), and decayQp().
|
protected |
Porosity is a function of effective porepressure.
Definition at line 43 of file PorousFlowPorosity.h.
Referenced by ddecayQp_dvar(), decayQp(), and PorousFlowPorosity().
|
protected |
Reference mineral concentrations.
Definition at line 82 of file PorousFlowPorosity.h.
Referenced by atNegInfinityQp(), atZeroQp(), and PorousFlowPorosity().
|
protected |
Porosity is a function of volumetric strain.
Definition at line 40 of file PorousFlowPorosity.h.
Referenced by ddecayQp_dgradvar(), and decayQp().
|
protected |
Old value of mineral concentration at the quadpoints or nodes.
Definition at line 109 of file PorousFlowPorosity.h.
Referenced by atNegInfinityQp(), and atZeroQp().
|
protected |
Number of reference mineral concentrations provided by user.
Definition at line 73 of file PorousFlowPorosity.h.
Referenced by atNegInfinityQp(), atZeroQp(), datNegInfinityQp(), datZeroQp(), and PorousFlowPorosity().
|
protectedinherited |
Number of fluid components.
Definition at line 33 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowDiffusivityBase::computeQpProperties(), PorousFlowMassFractionAqueousEquilibriumChemistry::computeQpProperties(), PorousFlowMassFraction::computeQpProperties(), PorousFlowAqueousPreDisChemistry::PorousFlowAqueousPreDisChemistry(), PorousFlowDiffusivityBase::PorousFlowDiffusivityBase(), and PorousFlowMassFraction::PorousFlowMassFraction().
|
protected |
Number of reference mineral concentrations provided by user.
Definition at line 79 of file PorousFlowPorosity.h.
Referenced by PorousFlowPorosity().
|
protectedinherited |
Number of phases.
Definition at line 30 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowDiffusivityBase::computeQpProperties(), PorousFlowDiffusivityMillingtonQuirk::computeQpProperties(), PorousFlowEffectiveFluidPressure::computeQpProperties(), PorousFlowMassFraction::computeQpProperties(), PorousFlowJoiner::computeQpProperties(), PorousFlowEffectiveFluidPressure::initQpStatefulProperties(), PorousFlowJoiner::initQpStatefulProperties(), PorousFlowDiffusivityBase::PorousFlowDiffusivityBase(), PorousFlowDiffusivityConst::PorousFlowDiffusivityConst(), PorousFlowJoiner::PorousFlowJoiner(), PorousFlowMassFraction::PorousFlowMassFraction(), PorousFlowThermalConductivityFromPorosity::PorousFlowThermalConductivityFromPorosity(), PorousFlowThermalConductivityIdeal::PorousFlowThermalConductivityIdeal(), and PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity().
|
protectedinherited |
Number of PorousFlow variables.
Definition at line 36 of file PorousFlowMaterialVectorBase.h.
Referenced by PorousFlowDiffusivityBase::computeQpProperties(), PorousFlowPermeabilityConst::computeQpProperties(), PorousFlowVolumetricStrain::computeQpProperties(), PorousFlowDiffusivityMillingtonQuirk::computeQpProperties(), PorousFlowAqueousPreDisChemistry::computeQpProperties(), PorousFlowPermeabilityTensorFromVar::computeQpProperties(), PorousFlowPorosityConst::computeQpProperties(), PorousFlowMassFractionAqueousEquilibriumChemistry::computeQpProperties(), PorousFlowThermalConductivityIdeal::computeQpProperties(), PorousFlowEffectiveFluidPressure::computeQpProperties(), PorousFlowThermalConductivityFromPorosity::computeQpProperties(), PorousFlowMatrixInternalEnergy::computeQpProperties(), PorousFlowPorosityHMBiotModulus::computeQpProperties(), PorousFlowTotalGravitationalDensityFullySaturatedFromPorosity::computeQpProperties(), PorousFlowPermeabilityConstFromVar::computeQpProperties(), PorousFlowPermeabilityExponential::computeQpProperties(), PorousFlowMassFraction::computeQpProperties(), PorousFlowPermeabilityKozenyCarman::computeQpProperties(), PorousFlowJoiner::computeQpProperties(), PorousFlowPorosityExponentialBase::computeQpProperties(), and PorousFlowAqueousPreDisChemistry::initQpStatefulProperties().
|
protected |
Reference porepressure.
Definition at line 70 of file PorousFlowPorosity.h.
Referenced by decayQp().
|
protected |
Effective porepressure at the quadpoints or nodes.
Definition at line 97 of file PorousFlowPorosity.h.
Referenced by PorousFlowPorosityHMBiotModulus::computeQpProperties().
|
protected |
Porosity at zero strain and zero porepressure and zero temperature.
Definition at line 52 of file PorousFlowPorosity.h.
Referenced by atZeroQp().
|
protectedinherited |
Computed porosity at the nodes or quadpoints.
Definition at line 29 of file PorousFlowPorosityBase.h.
Referenced by PorousFlowPorosityHMBiotModulus::computeQpProperties(), PorousFlowPorosityExponentialBase::computeQpProperties(), PorousFlowPorosityConst::initQpStatefulProperties(), and PorousFlowPorosityExponentialBase::initQpStatefulProperties().
|
protected |
Old value of porosity.
Definition at line 88 of file PorousFlowPorosity.h.
Referenced by datNegInfinityQp(), and datZeroQp().
|
protected |
Reaction rate of mineralisation.
Definition at line 112 of file PorousFlowPorosity.h.
|
protected |
Saturation.
Definition at line 121 of file PorousFlowPorosity.h.
|
protected |
Drained bulk modulus of the porous skeleton.
Definition at line 61 of file PorousFlowPorosity.h.
|
protectedinherited |
When calculating nodal porosity, use the strain at the nearest quadpoint to the node.
Definition at line 67 of file PorousFlowPorosityExponentialBase.h.
Referenced by PorousFlowPorosityHMBiotModulus::computeQpProperties(), ddecayQp_dgradvar(), and decayQp().
|
protected |
|
protected |
Temperature at the quadpoints or nodes.
Definition at line 103 of file PorousFlowPorosity.h.
|
protected |
Porosity is a function of temperature.
Definition at line 46 of file PorousFlowPorosity.h.
Referenced by ddecayQp_dvar(), decayQp(), and PorousFlowPorosity().
|
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 91 of file PorousFlowPorosity.h.
Referenced by PorousFlowPorosityHMBiotModulus::computeQpProperties().