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)
39 checkNodalVariables({
"porepressure"});
42 mooseError(
"The Dictator proclaims that the number of phases is ",
43 _dictator.numPhases(),
44 " whereas PorousFlow1PhaseHysP can only be used for 1-phase simulations. Be aware "
45 "that the Dictator has noted your mistake.");
75 (*_dporepressure_dvar)[_qp][0][
_p_var_num] = 1.0;
79 (*_dgradp_qp_dgradv)[_qp][0][
_p_var_num] = 1.0;
void mooseError(Args &&... args)
registerMooseObject("PorousFlowApp", PorousFlow1PhaseHysP)
Material designed to calculate fluid phase porepressure and saturation for the single-phase partially...
const VariableGradient & _gradp_qp_var
Gradient(_porepressure at quadpoints)
const VariableValue & _porepressure_var
Nodal or quadpoint value of porepressure of the fluid phase.
void buildQpPPSS()
Assemble std::vectors of porepressure and saturation.
const unsigned int _p_var_num
The PorousFlow variable number of the porepressure.
virtual void computeQpProperties() override
const unsigned int _porepressure_varnum
Moose variable number of the porepressure.
MaterialProperty< Real > & _pc
Computed nodal or quadpoint values of capillary pressure.
static InputParameters validParams()
virtual void initQpStatefulProperties() override
PorousFlow1PhaseHysP(const InputParameters ¶meters)
Base material designed to calculate and store quantities relevant for hysteretic capillary pressure c...
Real d2liquidSaturationQp(Real pc) const
Real dliquidSaturationQp(Real pc) const
virtual void initQpStatefulProperties() override
virtual void computeQpProperties() override
static InputParameters validParams()
Real liquidSaturationQp(Real pc) const
const unsigned int _num_phases
Number of phases.
GenericMaterialProperty< std::vector< Real >, is_ad > & _porepressure
Computed nodal or quadpoint values of porepressure of the phases.
GenericMaterialProperty< std::vector< Real >, is_ad > & _saturation
Computed nodal or qp saturation of the phases.