19 "The coupled primal variable from which to pull the Laplacian");
23 "Whether to use a positive sign when adding this object's residual to the Lagrange "
24 "multiplier constraint equation. Positive or negative sign should be chosen such that the "
25 "diagonals for the LM block of the matrix are positive");
26 params.
addParam<Real>(
"diffusivity", 1,
"The value of the diffusivity");
28 "Adds a diffusion term to a Lagrange multiplier constrained primal equation");
34 _primal_var(coupled(
"primal_variable")),
35 _second_primal(coupledSecond(
"primal_variable")),
36 _second_primal_phi(getVar(
"primal_variable", 0)->secondPhi()),
37 _lm_sign(getParam<bool>(
"lm_sign_positive") ? 1. : -1),
38 _diffusivity(getParam<Real>(
"diffusivity"))
43 "Coupled variable 'primal_variable' needs to be different from 'variable' with "
44 "LMDiffusion. It is expected in general that 'variable' should be a Lagrange multiplier "
45 "variable, and that 'primal_variable' be the primal variable on which the Lagrange "
46 "multiplier is acting");
registerMooseObject("ScalarTransportApp", LMDiffusion)
const VariableTestValue & _test
static InputParameters validParams()
Adds the strong diffusive term of the primal equation to stabilization of the Lagrange multiplier equ...
Real computeQpOffDiagJacobian(unsigned int jvar) override
const VariableSecond & _second_primal
The matrix of second spatial derivatives of the primal variable.
const Real _diffusivity
The primal variable diffusivity.
Real computeQpResidual() override
static InputParameters validParams()
LMDiffusion(const InputParameters ¶meters)
const unsigned int _primal_var
The primal variable number.
Real computeQpJacobian() override
const VariablePhiSecond & _second_primal_phi
The matrix of second spatial derivatives of the basis functions of the primal variable.
const Real _lm_sign
The sign of the Lagrange multiplier (the 'variable' of this kernel) in the primal equation.
void paramError(const std::string ¶m, Args... args) const
unsigned int number() const