19 "porepressure",
"Variable that represents the porepressure of the single liquid phase");
21 "This Material is used for unsaturated single-phase situations " 22 "where porepressure is the primary variable and the capillary pressure is hysteretic. The " 23 "hysteretic formulation assumes that the single phase is a liquid");
29 _pc(_nodal_material ? declareProperty<
Real>(
"PorousFlow_hysteretic_capillary_pressure_nodal")
30 : declareProperty<
Real>(
"PorousFlow_hysteretic_capillary_pressure_qp")),
31 _porepressure_var(_nodal_material ? coupledDofValues(
"porepressure")
32 : coupledValue(
"porepressure")),
33 _gradp_qp_var(coupledGradient(
"porepressure")),
34 _porepressure_varnum(coupled(
"porepressure")),
35 _p_var_num(_dictator.isPorousFlowVariable(_porepressure_varnum)
36 ? _dictator.porousFlowVariableNum(_porepressure_varnum)
40 mooseError(
"The Dictator proclaims that the number of phases is ",
41 _dictator.numPhases(),
42 " whereas PorousFlow1PhaseHysP can only be used for 1-phase simulations. Be aware " 43 "that the Dictator has noted your mistake.");
73 (*_dporepressure_dvar)[_qp][0][
_p_var_num] = 1.0;
77 (*_dgradp_qp_dgradv)[_qp][0][
_p_var_num] = 1.0;
virtual void computeQpProperties() override
virtual void initQpStatefulProperties() override
const VariableGradient & _gradp_qp_var
Gradient(_porepressure at quadpoints)
virtual void initQpStatefulProperties() override
void mooseError(Args &&... args)
GenericMaterialProperty< std::vector< Real >, is_ad > & _porepressure
Computed nodal or quadpoint values of porepressure of the phases.
PorousFlow1PhaseHysP(const InputParameters ¶meters)
const VariableValue & _porepressure_var
Nodal or quadpoint value of porepressure of the fluid phase.
const unsigned int _p_var_num
The PorousFlow variable number of the porepressure.
virtual void computeQpProperties() override
Real dliquidSaturationQp(Real pc) const
registerMooseObject("PorousFlowApp", PorousFlow1PhaseHysP)
static InputParameters validParams()
Real d2liquidSaturationQp(Real pc) const
const unsigned int _porepressure_varnum
Moose variable number of the porepressure.
Base material designed to calculate and store quantities relevant for hysteretic capillary pressure c...
Real liquidSaturationQp(Real pc) const
const unsigned int _num_phases
Number of phases.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void buildQpPPSS()
Assemble std::vectors of porepressure and saturation.
GenericMaterialProperty< std::vector< Real >, is_ad > & _saturation
Computed nodal or qp saturation of the phases.
static InputParameters validParams()
MaterialProperty< Real > & _pc
Computed nodal or quadpoint values of capillary pressure.
Material designed to calculate fluid phase porepressure and saturation for the single-phase partially...