10#include "libmesh/threads.h"
18template <
typename AuxKernelType>
23 const std::size_t object_container_index)
25 _aux_sys(fe_problem.getAuxiliarySystem()),
28 _object_container_index(object_container_index)
33template <
typename AuxKernelType>
40 _object_container_index(x._object_container_index)
44template <
typename AuxKernelType>
48 const BndNode * bnode = *node_it;
53 Node * node = bnode->
_node;
55 if (node->processor_id() == _fe_problem.processor_id())
57 const auto & kernel = _storage.getActiveBoundaryObjects(_bnd_id, _tid)[_object_container_index];
59 "This should be a mortar nodal aux kernel");
60 _fe_problem.reinitNodeFace(node, _bnd_id, _tid);
65 if (kernel->variable().isNodalDefined())
66 kernel->variable().insert(_aux_sys.solution());
70template <
typename AuxKernelType>
boundary_id_type BoundaryID
This class evaluates a single mortar nodal aux kernel.
void join(const ComputeMortarNodalAuxBndThread &)
ComputeMortarNodalAuxBndThread(FEProblemBase &fe_problem, const MooseObjectWarehouse< AuxKernelType > &storage, BoundaryID bnd_id, std::size_t object_container_index)
void onNode(ConstBndNodeRange::const_iterator &node_it) override
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
A storage container for MooseObjects that inherit from SetupInterface.
Base class for creating new nodally-based mortar auxiliary kernels.
vec_type::const_iterator const_iterator
BoundaryID _bnd_id
boundary id for the node
libMesh::Node * _node
pointer to the node