16#include "libmesh/sparse_matrix.h"
24 params.
addClassDescription(
"Constraint that forces the value of a variable to be the same on "
25 "both sides of an interface.");
26 params.
addParam<Real>(
"scaling", 1,
"scaling factor to be applied to constraint equations");
27 params.
set<
bool>(
"use_displaced_mesh") =
true;
33 _scaling(getParam<Real>(
"scaling")),
34 _residual_copy(_sys.residualGhosted())
48 Real secondary_resid = 0;
70 Real secondary_jac = 0;
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
registerMooseObject("MooseApp", TiedValueConstraint)
const std::string & type() const
Get the type of this class.
void scalingFactor(const std::vector< Real > &factor)
Set the scaling factor for this variable.
unsigned int number() const
Get variable number coming from libMesh.
A NodeFaceConstraint is used when you need to create constraints between two surfaces in a mesh.
const Node *const & _current_node
current node being processed
VariableTestValue _test_secondary
Shape function on the secondary side. This will always only have one entry and that entry will always...
std::vector< dof_id_type > _connected_dof_indices
const VariableTestValue & _test_primary
Side test function.
static InputParameters validParams()
const VariableValue & _u_secondary
Value of the unknown variable this BC is action on.
const VariablePhiValue & _phi_primary
Side shape function.
VariablePhiValue _phi_secondary
Shape function on the secondary side. This will always.
const VariableValue & _u_primary
Holds the current solution at the current quadrature point.
A TiedValueConstraint forces the value of a variable to be the same on both sides of an interface.
static InputParameters validParams()
virtual Real computeQpSecondaryValue() override
Compute the value the secondary node should have at the beginning of a timestep.
TiedValueConstraint(const InputParameters ¶meters)
NumericVector< Number > & _residual_copy
virtual Real computeQpJacobian(Moose::ConstraintJacobianType type) override
This is the virtual that derived classes should override for computing the Jacobian on neighboring el...
virtual Real computeQpResidual(Moose::ConstraintType type) override
This is the virtual that derived classes should override for computing the residual on neighboring el...