21 params.
addClassDescription(
"Enforce componentwise gradient continuity between two different " 22 "variables across a subdomain boundary using a Lagrange multiplier");
23 params.
addRequiredParam<
unsigned int>(
"component",
"Gradient component to constrain");
25 "The gradient constrained variable on this side of the interface.");
31 _component(getParam<unsigned
int>(
"component")),
32 _lambda(getVar(
"lambda", 0)->sln()),
33 _lambda_jvar(getVar(
"lambda", 0)->number())
const unsigned int _component
const TemplateVariableTestGradient & _grad_test
const TemplateVariablePhiValue & _phi
virtual Real computeQpJacobian(Moose::DGJacobianType type) override
virtual Real computeQpOffDiagJacobian(Moose::DGJacobianType type, unsigned int jvar) override
InterfaceKernel to enforce a Lagrange-Multiplier based componentwise continuity of a variable gradien...
static InputParameters validParams()
const TemplateVariableTestGradient & _grad_test_neighbor
virtual Real computeQpResidual(Moose::DGResidualType type) override
const unsigned int _lambda_jvar
const std::string & type() const
registerMooseObject("PhaseFieldApp", EqualGradientLagrangeInterface)
const VariableValue & _lambda
Lagrange multiplier.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
void ErrorVector unsigned int
static InputParameters validParams()
EqualGradientLagrangeInterface(const InputParameters ¶meters)