23 "Weight of the penalty. Penalty = a*(lower - variable) for variable<lower, " 24 "and zero otherwise. Care should be taken with this parameter choice. " 25 "Determine the typical size of your residual (usually rho*perm*(gradP - " 26 "rho*g)/visc), then typically you want the penalty to ensure p>lower*(1-1E-6), " 27 "so for the PPP formulation you typically Penalty = a*1E-6*|p|. I recommend " 28 "that Penalty = 1E-3*residual, yielding a = 1E3*residual/|P|. ");
30 "lower_var",
"Your variable will be constrained to be greater than this lower_var variable.");
31 params.
addClassDescription(
"This adds a term to the residual that attempts to enforce variable > " 32 "lower_var. The term is a*(lower - variable) for variable<lower, and " 39 _a(getParam<
Real>(
"a")),
40 _lower(coupledValue(
"lower_var")),
41 _lower_var_num(coupled(
"lower_var"))
virtual Real computeQpResidual()
static InputParameters validParams()
Real _a
Kernel = a*(_lower - variable) for variable<lower and zero otherwise.
const VariableValue & _lower
Kernel = a*(_lower - variable) for variable<lower and zero otherwise.
RichardsPPenalty(const InputParameters ¶meters)
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
unsigned int _lower_var_num
moose variable number of the _lower variable (needed for OffDiagJacobian)
const VariableTestValue & _test
registerMooseObject("RichardsApp", RichardsPPenalty)
virtual Real computeQpJacobian()
Kernel = a*(lower - variable) for variable<lower, and zero otherwise This is an attempt to enforce va...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
const VariablePhiValue & _phi