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()),
42 _nodal_aux(x._nodal_aux),
43 _nodal_vec_aux(x._nodal_vec_aux),
44 _nodal_array_aux(x._nodal_array_aux),
52 const BndNode *
const bnode = *node_it;
53 const auto boundary_id = bnode->
_bnd_id;
54 const Node *
const node = bnode->
_node;
63 std::vector<NodalUserObject *> objs;
69 for (
const auto & uo : objs)
70 if (uo->checkVariableBoundaryIntegrity())
73 auto check = [node, boundary_id, &bnd_name,
this](
const auto & warehouse)
75 if (!warehouse.hasBoundaryObjects(boundary_id,
_tid))
78 const auto & bnd_objects = warehouse.getBoundaryObjects(boundary_id,
_tid);
79 for (
const auto & bnd_object : bnd_objects)
82 if (!bnd_object->requiresGeometricSearch() && bnd_object->checkVariableBoundaryIntegrity())
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.
const ExecuteMooseObjectWarehouse< AuxKernel > & _nodal_aux
Nodal auxiliary kernels acting on standard field variables.
virtual void onNode(ConstBndNodeRange::const_iterator &node_it) override
const ExecuteMooseObjectWarehouse< ArrayAuxKernel > & _nodal_array_aux
Nodal auxiliary kernels acting on array field variables.
void join(const BoundaryNodeIntegrityCheckThread &)
const TheWarehouse::Query & _query
A warehouse query that we will use to obtain user objects for boundary variable dependency integrity ...
const ExecuteMooseObjectWarehouse< VectorAuxKernel > & _nodal_vec_aux
Nodal auxiliary kernels acting on vector field variables.
BoundaryNodeIntegrityCheckThread(FEProblemBase &fe_problem, const TheWarehouse::Query &query)
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual MooseMesh & mesh() override
const std::string & getBoundaryName(const BoundaryID boundary_id) const
Return the name of the boundary given the id.
QueryCache is a convenient way to construct and pass around (possible partially constructed) warehous...
QueryCache & condition(Args &&... args)
Adds a new condition to the query.
QueryCache clone() const
clone creates and returns an independent copy of the query in its current state.
FEProblemBase & _fe_problem
processor_id_type processor_id() const
vec_type::const_iterator const_iterator
BoundaryID _bnd_id
boundary id for the node
libMesh::Node * _node
pointer to the node