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)
59std::unique_ptr<GhostingFunctor>
68 std::ostringstream oss;
69 std::string layers =
_layers == 1 ?
"layer" :
"layers";
71 oss <<
"ElementSideNeighborLayers (" <<
_layers <<
" " << layers <<
')';
91template <
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>();
registerMooseObject("MooseApp", ElementSideNeighborLayers)
ElementSideNeighborLayers is used to increase the halo or stencil depth of each processor's partition...
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.
ElementSideNeighborLayers(const InputParameters ¶meters)
const bool _use_point_neighbors
static InputParameters validParams()
virtual void internalInitWithMesh(const MeshBase &) override
Called before this RM is attached.
void dofmap_reinit() override
virtual std::unique_ptr< GhostingFunctor > clone() const override
According to the base class docs, "We call mesh_reinit() whenever the relevant Mesh has changed,...
void initFunctor(Functor &functor)
Helper for initing.
unsigned short _layers
Size of the halo or stencil of elements available in each local processors partition.
virtual std::string getInfo() const override
Method for returning relationship manager information (suitable for console output).
Intermediate base class for RelationshipManagers that are simply built using ghosting functors.
static InputParameters validParams()
std::unique_ptr< GhostingFunctor > _functor
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
MooseApp & _app
The MOOSE application this is associated with.
RelationshipManagers are used for describing what kinds of non-local resources are needed for an obje...
virtual bool baseGreaterEqual(const RelationshipManager &rhs) const
Whether the base class provides more or the same amount and type of ghosting as the rhs.
const libMesh::DofMap * _dof_map
Pointer to DofMap (may be null if this is geometric only).
PeriodicBoundaries * get_periodic_boundaries()
CouplingMatrix * _dof_coupling
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...