28 "If you are using second-order Lagrange shape functions you need to set this to false.");
30 "richardsVarNames_UO",
"The UserObject that holds the list of Richards variable names.");
37 _pvar(_richards_name_UO.richards_var_num(_var.number())),
50 _second_u(getParam<bool>(
"linear_shape_fcns")
52 : (_is_implicit ? _var.secondSln() : _var.secondSlnOld())),
53 _second_phi(getParam<bool>(
"linear_shape_fcns") ? _second_phi_zero : secondPhi()),
69 Real supg_kernel = 0.0;
82 return flux_part + supg_test * supg_kernel;
92 Real supg_test_prime =
95 Real supg_kernel = 0.0;
96 Real supg_kernel_prime = 0.0;
110 if (wrt_num ==
_pvar)
115 return flux_prime + supg_test_prime * supg_kernel + supg_test * supg_kernel_prime;
const MaterialProperty< std::vector< std::vector< std::vector< RealVectorValue > > > > & _d2flux_dvdv
d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a Rea...
Kernel = grad(permeability*relativepermeability/viscosity * (grad(pressure) - density*gravity)) This ...
const VariableGradient & _grad_u
static InputParameters validParams()
unsigned int _pvar
the index of this variable in the list of Richards variables held by _richards_name_UO.
const MaterialProperty< std::vector< RealVectorValue > > & _tauvel_SUPG
SUPGtau*SUPGvel (a vector of these if multiphase)
const VariablePhiGradient & _grad_phi
const RichardsVarNames & _richards_name_UO
holds info regarding the names of the Richards variables and methods for extracting values of these v...
static InputParameters validParams()
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dflux_dgradv
d(Richards flux_i)/d(grad(variable_j)), here flux_i is the i_th flux, which is itself a RealVectorVal...
bool not_richards_var(unsigned int moose_var_num) const
returns true if moose_var_num is not a richards var
RichardsFlux(const InputParameters ¶meters)
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dtauvel_SUPG_dgradv
derivative of SUPGtau*SUPGvel_i wrt grad(variable_j)
This holds maps between pressure_var or pressure_var, sat_var used in RichardsMaterial and kernels...
const VariablePhiSecond & _second_phi
interpolation function for the _second_u
TensorValue< Real > RealTensorValue
Real computeQpJac(unsigned int wrt_num)
Computes diagonal and off-diagonal jacobian entries.
const MaterialProperty< std::vector< RealVectorValue > > & _flux
Richards flux.
const MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dflux_dv
d(Richards flux_i)/d(variable_j), here flux_i is the i_th flux, which is itself a RealVectorValue ...
registerMooseObject("RichardsApp", RichardsFlux)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int richards_var_num(unsigned int moose_var_num) const
the richards variable number
const VariableTestGradient & _grad_test
virtual Real computeQpJacobian()
const VariableSecond & _second_u
grad_i grad_j porepressure. This is used in SUPG
const VariablePhiValue & _phi
const MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dtauvel_SUPG_dv
derivative of SUPGtau*SUPGvel_i wrt variable_j
const MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dvdgradv
d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux, which is itself a RealVectorValue
const MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dgradvdv
d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue
virtual Real computeQpResidual()