25 "richardsVarNames_UO",
"The UserObject that holds the list of Richards variables.");
28 "List of names of user objects that define the fluid density (or densities for " 29 "multiphase). In the multiphase case, for ease of use, the density, Seff and " 30 "Sat UserObjects are the same format as for RichardsMaterial, but only the one " 31 "relevant for the specific phase is actually used.");
34 "List of name of user objects that define effective saturation as a function of " 38 "List of names of user objects that define saturation as a function of effective saturation");
45 _num_p(_richards_name_UO.num_v()),
46 _pvar(_richards_name_UO.richards_var_num(_var.number())),
48 _porosity(getMaterialProperty<
Real>(
"porosity")),
49 _porosity_old(getMaterialProperty<
Real>(
"porosity_old")),
55 getUserObjectByName<
RichardsSeff>(getParam<
std::vector<UserObjectName>>(
"seff_UO")[_pvar])),
57 getUserObjectByName<
RichardsSat>(getParam<
std::vector<UserObjectName>>(
"sat_UO")[_pvar])),
59 getParam<
std::vector<UserObjectName>>(
"density_UO")[_pvar]))
64 for (
unsigned int pnum = 0; pnum <
_num_p; ++pnum)
virtual void dseff(std::vector< const VariableValue *> p, unsigned int qp, std::vector< Real > &result) const =0
derivative(s) of effective saturation as a function of porepressure(s) at given quadpoint of the elem...
const RichardsDensity & _density_UO
The userobject that computes fluid density (as a function of the porepressure)
const RichardsSat & _sat_UO
The userobject that computes saturation (as a function of effective saturation) for this variable...
virtual Real ddensity(Real p) const =0
derivative of fluid density wrt porepressure This must be over-ridden in derived classes to provide a...
Saturation of a phase as a function of effective saturation of that phase, and its derivatives wrt ef...
Base class for effective saturation as a function of porepressure(s) The functions seff...
static InputParameters validParams()
registerMooseObject("RichardsApp", RichardsLumpedMassChange)
virtual Real computeQpJacobian()
std::vector< const VariableValue * > _ps_old_at_nodes
Holds the nodal values of pressures at timestep_begin, in same way as _ps_at_nodes.
const VariableValue * nodal_var(unsigned int richards_var_num) const
The nodal variable values for the given richards_var_num To extract a the value of pressure variable ...
static const std::string density
const RichardsSeff & _seff_UO
The userobject that computes effective saturation (as a function of porepressure(s)) for this variabl...
bool not_richards_var(unsigned int moose_var_num) const
returns true if moose_var_num is not a richards var
const MaterialProperty< Real > & _porosity_old
value of the porosity at the start of the timestep
This holds maps between pressure_var or pressure_var, sat_var used in RichardsMaterial and kernels...
Real dsat(Real) const
derivative of saturation wrt effective saturation
virtual Real computeQpResidual()
RichardsLumpedMassChange(const InputParameters ¶meters)
virtual Real density(Real p) const =0
fluid density as a function of porepressure This must be over-ridden in derived classes to provide an...
const VariableTestValue & _test
virtual Real seff(std::vector< const VariableValue *> p, unsigned int qp) const =0
effective saturation as a function of porepressure(s) at given quadpoint of the element ...
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
const VariableValue * nodal_var_old(unsigned int richards_var_num) const
The old nodal variable values for the given richards_var_num.
d(fluid mass in porespace)/dt with the fluid mass being lumped to the nodes.
const RichardsVarNames & _richards_name_UO
holds info regarding the names of the Richards variables and methods for extracting values of these v...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _num_p
number of richards variables
unsigned int richards_var_num(unsigned int moose_var_num) const
the richards variable number
Real sat(Real seff) const
saturation as a function of effective saturation
Base class for fluid density as a function of porepressure The functions density, ddensity and d2dens...
std::vector< const VariableValue * > _ps_at_nodes
Holds the values of pressures at all the nodes of the element Eg: _ps_at_nodes[_pvar] is a pointer to...
static InputParameters validParams()
std::vector< Real > _dseff
holds nodal values of d(Seff)/dP_i
unsigned int _pvar
the index of this variable in the list of Richards variables held by _richards_name_UO.
const MaterialProperty< Real > & _porosity
current value of the porosity