10 #include "libmesh/threads.h" 18 template <
typename AuxKernelType>
23 const std::size_t object_container_index)
25 _aux_sys(fe_problem.getAuxiliarySystem()),
28 _object_container_index(object_container_index)
33 template <
typename AuxKernelType>
40 _object_container_index(x._object_container_index)
44 template <
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];
58 mooseAssert(dynamic_cast<MortarNodalAuxKernel *>(kernel.get()),
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());
70 template <
typename AuxKernelType>
void join(const ComputeMortarNodalAuxBndThread &)
This class evaluates a single mortar nodal aux kernel.
ComputeMortarNodalAuxBndThread(FEProblemBase &fe_problem, const MooseObjectWarehouse< AuxKernelType > &storage, BoundaryID bnd_id, std::size_t object_container_index)
BoundaryID _bnd_id
boundary id for the node
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
boundary_id_type BoundaryID
libMesh::Node * _node
pointer to the node
vec_type::const_iterator const_iterator
void onNode(ConstBndNodeRange::const_iterator &node_it) override
Called for each node.