25 _u_primary(_primary_var.slnNeighbor()),
26 _u_secondary(_var.dofValues()),
27 _grad_phi_primary(_assembly.gradPhiNeighbor(_primary_var)),
28 _grad_test_primary(_var.gradPhiNeighbor()),
29 _grad_u_primary(_primary_var.gradSlnNeighbor())
121 std::set<dof_id_type> unique_dof_indices;
124 mooseAssert(node_to_elem_pair !=
_node_to_elem_map.end(),
"Missing entry in node to elem map");
125 const std::vector<dof_id_type> & elems = node_to_elem_pair->second;
128 for (
const auto & cur_elem : elems)
130 std::vector<dof_id_type> dof_indices;
134 for (
const auto & dof : dof_indices)
135 unique_dof_indices.insert(dof);
138 for (
const auto & dof : unique_dof_indices)
163 mooseError(
"Derived classes must implement computeQpJacobian.");
MooseMesh & _mesh
Reference to this Kernel's mesh object.
virtual Real computeQpOffDiagJacobian(Moose::ConstraintJacobianType, unsigned int)
This is the virtual method that derived classes should override for computing the off-diag Jacobian...
static InputParameters validParams()
NodeElemConstraint(const InputParameters ¶meters)
void accumulateTaggedLocalResidual()
Local residual blocks will be appended by adding the current local kernel residual.
virtual Elem * elemPtr(const dof_id_type i)
unsigned int number() const
Get variable number coming from libMesh.
virtual Real computeQpResidual(Moose::ConstraintType type)=0
This is the virtual method that derived classes should override for computing the residual...
virtual void computeJacobian() override
Computes the jacobian for the current element.
virtual void getDofIndices(const Elem *, std::vector< dof_id_type > &) const
This class provides an interface for common operations on field variables of both FE and FV types wit...
virtual const dof_id_type & nodalDofIndex() const =0
VariableTestValue _test_secondary
Shape function on the secondary side. This will always only have one entry and that entry will always...
DenseMatrix< Number > _local_ke
Holds local Jacobian entries as they are accumulated by this Kernel.
SystemBase & _sys
Reference to the EquationSystem object.
MooseVariable & _var
secondary node variable
void prepareMatrixTagNeighbor(Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type)
Prepare data for computing element jacobian according to the active tags for DG and interface kernels...
void getConnectedDofIndices(unsigned int var_num)
Gets the indices for all dofs connected to the constraint.
unsigned int size() const
The number of elements that can currently be stored in the array.
VariablePhiValue _phi_secondary
Shape function on the secondary side.
virtual void computeOffDiagJacobian(unsigned int jvar) override
Computes d-residual / d-jvar...
const Node *const & _current_node
current node being processed
MooseVariable & _primary_var
Primary side variable.
void accumulateTaggedLocalMatrix()
Local Jacobian blocks will be appended by adding the current local kernel Jacobian.
const std::map< dof_id_type, std::vector< dof_id_type > > & _node_to_elem_map
MooseMesh map of current nodes to the connected elements.
DenseMatrix< Number > _Kee
stiffness matrix holding secondary-secondary jacobian
Assembly & _assembly
Reference to this Kernel's assembly object.
void prepareVectorTagNeighbor(Assembly &assembly, unsigned int ivar)
Prepare data for computing element residual the according to active tags for DG and interface kernels...
virtual Real computeQpJacobian(Moose::ConstraintJacobianType type)
This is the virtual method that derived classes should override for computing the Jacobian...
std::vector< dof_id_type > _connected_dof_indices
dofs connected to the secondary node
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void computeResidual() override
Computes the residual Nodal residual.
DenseMatrix< Number > _Kne
stiffness matrix holding primary-secondary jacobian
DenseVector< Number > _local_re
Holds local residual entries as they are accumulated by this Kernel.
void resize(const unsigned int new_m, const unsigned int new_n)
static InputParameters validParams()
void resize(unsigned int size)
Change the number of elements the array can store.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
MooseVariableFieldBase & getVariable(THREAD_ID tid, const std::string &var_name) const
Gets a reference to a variable of with specified name.
void prepareVectorTag(Assembly &assembly, unsigned int ivar)
Prepare data for computing element residual according to active tags.
A NodeElemConstraintBase is used when you need to create constraints between a secondary node and a p...
const VariablePhiValue & _phi_primary
Side shape function.
const VariableTestValue & _test_primary
Side test function.