10 #include "libmesh/threads.h" 18 template <
typename AuxKernelType>
22 _aux_sys(fe_problem.getAuxiliarySystem()),
28 template <
typename AuxKernelType>
37 template <
typename AuxKernelType>
41 const BndNode * bnode = *node_it;
45 Node * node = bnode->
_node;
47 if (node->processor_id() == _fe_problem.processor_id())
50 const auto & kernels = _storage.getActiveBoundaryObjects(_tid);
53 const auto iter = kernels.find(boundary_id);
54 if (iter != kernels.end())
56 _fe_problem.reinitNodeFace(node, boundary_id, _tid);
58 for (
const auto & aux : iter->second)
64 if (aux->variable().isNodalDefined())
65 aux->variable().insert(_aux_sys.solution());
71 template <
typename AuxKernelType>
77 template <
typename AuxKernelType>
81 if (!_fe_problem.shouldPrintExecution(_tid) || !_storage.hasActiveObjects())
84 const auto & console = _fe_problem.console();
85 const auto & execute_on = _fe_problem.getCurrentExecuteOnFlag();
86 console <<
"[DBG] Executing nodal auxiliary kernels on boundary nodes on " << execute_on
88 console <<
"[DBG] Ordering of the kernels on each boundary they are defined on:" << std::endl;
90 console << _storage.activeObjectsToFormattedString() << std::endl;
BoundaryID _bnd_id
boundary id for the node
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
boundary_id_type BoundaryID
ComputeNodalAuxBcsThread(FEProblemBase &fe_problem, const MooseObjectWarehouse< AuxKernelType > &storage)
void join(const ComputeNodalAuxBcsThread &)
libMesh::Node * _node
pointer to the node
vec_type::const_iterator const_iterator
void printGeneralExecutionInformation() const override
Print information about the loop, mostly order of execution of objects.
virtual void onNode(ConstBndNodeRange::const_iterator &node_it) override
Called for each node.