Go to the documentation of this file.
20 InputParameters params = validParams<AuxKernel>();
21 params.addRequiredCoupledVar(
"pressure_vars",
"List of variables that represent the pressure");
22 params.addRequiredParam<
int>(
"wrtnum1",
23 "This aux kernel will return d^2(seff)/dP_wrtnum1 "
24 "dP_wrtnum2. 0<=wrtnum1<number_of_pressure_vars.");
25 params.addRequiredParam<
int>(
"wrtnum2",
26 "This aux kernel will return d^2(seff)/dP_wrtnum1 "
27 "dP_wrtnum2. 0<=wrtnum2<number_of_pressure_vars.");
28 params.addRequiredParam<UserObjectName>(
"seff_UO",
29 "Name of user object that defines effective saturation.");
30 params.addClassDescription(
"auxillary variable which is 2nd derivative of effective saturation");
35 : AuxKernel(parameters),
37 _wrt1(getParam<int>(
"wrtnum1")),
38 _wrt2(getParam<int>(
"wrtnum2"))
40 int n = coupledComponents(
"pressure_vars");
41 if (_wrt1 < 0 || _wrt1 >= n)
42 mooseError(
"Your wrtnum1 is ",
_wrt1,
" but it must obey 0 <= wrtnum1 < ", n,
".");
43 if (_wrt2 < 0 || _wrt2 >= n)
44 mooseError(
"Your wrtnum2 is ",
_wrt2,
" but it must obey 0 <= wrtnum2 < ", n,
".");
47 for (
int i = 0; i < n; ++i)
51 for (
int i = 0; i < n; ++i)
std::vector< const VariableValue * > _pressure_vals
the porepressure values (this will be length N where N is the number of arguments that the _seff_UO r...
Base class for effective saturation as a function of porepressure(s) The functions seff,...
std::vector< std::vector< Real > > _mat
matrix of 2nd derivtives: This auxkernel returns _mat[_wrt1][_wrt2];
RichardsSeffPrimePrimeAux(const InputParameters ¶meters)
InputParameters validParams< RichardsSeffPrimePrimeAux >()
Calculates derivative of effective saturation wrt specified porepressures.
const RichardsSeff & _seff_UO
The user object that defines effective saturation as function of porepressure (or porepressures in th...
int _wrt2
AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt2 is the porepressure number to differentiate wr...
int _wrt1
AuxKernel calculates d^2(Seff)/dP_wrt1 dP_wrt2 so wrt1 is the porepressure number to differentiate wr...
virtual Real computeValue()
registerMooseObject("RichardsApp", RichardsSeffPrimePrimeAux)
virtual void d2seff(std::vector< const VariableValue * > p, unsigned int qp, std::vector< std::vector< Real >> &result) const =0
second derivative(s) of effective saturation as a function of porepressure(s) at given quadpoint of t...