18 #include "libmesh/default_coupling.h" 19 #include "libmesh/point_neighbor_coupling.h" 20 #include "libmesh/dof_map.h" 34 "element_side_neighbor_layers>=1 & element_side_neighbor_layers<=10",
35 "The number of additional geometric elements to make available when " 36 "using distributed mesh. No effect with replicated mesh.");
37 params.
addParam<
bool>(
"use_point_neighbors",
39 "Whether to use point neighbors, which introduces additional ghosting to " 40 "that used for simple face neighbors.");
47 _layers(getParam<unsigned short>(
"layers")),
48 _use_point_neighbors(getParam<bool>(
"use_point_neighbors"))
54 _layers(other._layers),
55 _use_point_neighbors(other._use_point_neighbors)
59 std::unique_ptr<GhostingFunctor>
68 std::ostringstream oss;
69 std::string layers =
_layers == 1 ?
"layer" :
"layers";
71 oss <<
"ElementSideNeighborLayers (" <<
_layers <<
" " << layers <<
')';
91 template <
typename Functor>
102 mooseAssert(periodic_boundaries_ptr,
"Periodic Boundaries Pointer is nullptr");
104 functor.set_periodic_boundaries(periodic_boundaries_ptr);
114 auto functor = std::make_unique<PointNeighborCoupling>();
120 auto functor = std::make_unique<DefaultCoupling>();
virtual std::string getInfo() const override
Method for returning relationship manager information (suitable for console output).
ElementSideNeighborLayers(const InputParameters ¶meters)
unsigned short _layers
Size of the halo or stencil of elements available in each local processors partition.
const bool _use_point_neighbors
void dofmap_reinit() override
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
registerMooseObject("MooseApp", ElementSideNeighborLayers)
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
void initFunctor(Functor &functor)
Helper for initing.
virtual void internalInitWithMesh(const MeshBase &) override
Called before this RM is attached.
std::unique_ptr< GhostingFunctor > _functor
ElementSideNeighborLayers is used to increase the halo or stencil depth of each processor's partition...
static InputParameters validParams()
PeriodicBoundaries * get_periodic_boundaries()
FunctorEnvelope< T > Functor
CouplingMatrix * _dof_coupling
MooseApp & _app
The MOOSE application this is associated with.
virtual bool baseGreaterEqual(const RelationshipManager &rhs) const
Whether the base class provides more or the same amount and type of ghosting as the rhs...
virtual bool operator>=(const RelationshipManager &rhs) const override
Whether this relationship manager provides more or the same amount and type of ghosting as the rhs...
RelationshipManagers are used for describing what kinds of non-local resources are needed for an obje...
const libMesh::DofMap * _dof_map
Pointer to DofMap (may be null if this is geometric only).
virtual std::unique_ptr< GhostingFunctor > clone() const override
According to the base class docs, "We call mesh_reinit() whenever the relevant Mesh has changed...
static InputParameters validParams()
Intermediate base class for RelationshipManagers that are simply built using ghosting functors...