20 #include "libmesh/threads.h" 21 #include "libmesh/node.h" 22 #include "libmesh/mesh_base.h" 29 _aux_sys(fe_problem.getAuxiliarySystem()),
30 _nodal_aux(_aux_sys.nodalAuxWarehouse()),
31 _nodal_vec_aux(_aux_sys.nodalVectorAuxWarehouse()),
32 _nodal_array_aux(_aux_sys.nodalArrayAuxWarehouse()),
34 _node_to_elem_map(fe_problem.
mesh().nodeToActiveSemilocalElemMap())
43 _nodal_aux(x._nodal_aux),
44 _nodal_vec_aux(x._nodal_vec_aux),
45 _nodal_array_aux(x._nodal_array_aux),
47 _node_to_elem_map(x._node_to_elem_map)
54 const BndNode *
const bnode = *node_it;
55 const auto boundary_id = bnode->
_bnd_id;
56 const Node *
const node = bnode->
_node;
66 const Elem *
const an_elem =
68 if (!an_elem->is_vertex(an_elem->get_node_index(node)))
71 const auto & bnd_name =
mesh.getBoundaryName(boundary_id);
74 std::vector<NodalUserObject *> objs;
80 for (
const auto & uo : objs)
81 if (uo->checkVariableBoundaryIntegrity())
84 auto check = [node, boundary_id, &bnd_name,
this](
const auto & warehouse)
86 if (!warehouse.hasBoundaryObjects(boundary_id,
_tid))
89 const auto & bnd_objects = warehouse.getBoundaryObjects(boundary_id,
_tid);
90 for (
const auto & bnd_object : bnd_objects)
93 if (!bnd_object->requiresGeometricSearch() && bnd_object->checkVariableBoundaryIntegrity())
const ExecuteMooseObjectWarehouse< ArrayAuxKernel > & _nodal_array_aux
Nodal auxiliary kernels acting on array field variables.
QueryCache is a convenient way to construct and pass around (possible partially constructed) warehous...
BoundaryID _bnd_id
boundary id for the node
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
FEProblemBase & _fe_problem
const std::map< dof_id_type, std::vector< dof_id_type > > _node_to_elem_map
Node to element map. Used for determining vertex vs. non-vertex nodes.
void join(const BoundaryNodeIntegrityCheckThread &)
const TheWarehouse::Query & _query
A warehouse query that we will use to obtain user objects for boundary variable dependency integrity ...
void boundaryIntegrityCheckError(const MooseObject &object, const std::set< MooseVariableFieldBase *> &variables, const BoundaryName &boundary_name)
Compose boundary restricted error message for the provided object, variables, and boundary_name if th...
AttribBoundaries tracks all boundary IDs associated with an object.
QueryCache clone() const
clone creates and returns an independent copy of the query in its current state.
const ExecuteMooseObjectWarehouse< AuxKernel > & _nodal_aux
Nodal auxiliary kernels acting on standard field variables.
libMesh::Node * _node
pointer to the node
vec_type::const_iterator const_iterator
virtual MooseMesh & mesh() override
QueryCache & condition(Args &&... args)
Adds a new condition to the query.
BoundaryNodeIntegrityCheckThread(FEProblemBase &fe_problem, const TheWarehouse::Query &query)
const ExecuteMooseObjectWarehouse< VectorAuxKernel > & _nodal_vec_aux
Nodal auxiliary kernels acting on vector field variables.
processor_id_type processor_id() const
virtual void onNode(ConstBndNodeRange::const_iterator &node_it) override
Called for each node.
Result check(std::string requirements, const Registry &capabilities)
Checks if a set of requirements is satisified by the given capability registry.