16 #include "libmesh/ghosting_functor.h" 38 void init(
MooseMesh & moose_mesh,
const MeshBase &
mesh,
const DofMap * dof_map =
nullptr);
62 virtual std::string
getInfo()
const = 0;
81 mooseError(
"RelationshipManager::operator>= must be overridden");
91 "Are you overriding RelationshipManager::operator==? We are transitioning to make " 93 "the required override. If you are not overriding operator>= or operator==, you are about " 94 "to get an error message saying that operator>= must be overridden.");
static bool isCoupling(Moose::RelationshipManagerType input_rm)
Whether input_rm is coupling.
RelationshipManagerType
Main types of Relationship Managers.
void mooseDeprecated(Args &&... args) const
static bool isGeometric(Moose::RelationshipManagerType input_rm)
Whether input_rm is geometric.
std::vector< std::string > _for_whom
The name of the object that requires this RelationshipManager.
bool inited()
Whether or not this RM has been inited.
MooseMesh * _moose_mesh
Pointer to the MooseMesh object.
bool _inited
Whether or not this has been initialized.
virtual const std::vector< std::string > & forWhom() const
The object (or Action) this RelationshipManager was built for.
bool attachGeometricEarly()
Whether or not this RM can be attached to the Mesh early if it's geometric.
const bool _attach_geometric_early
Boolean indicating whether this RM can be attached early (e.g.
virtual bool operator>=(const RelationshipManager &rhs) const
Whether this relationship manager provides more or the same amount and type of ghosting as the rhs...
Moose::RelationshipManagerType getType() const
Getter for returning the enum type for this RM.
static InputParameters oneLayerGhosting(Moose::RelationshipManagerType rm_type)
This returns an InputParameters object containing an ElementSideNeighborLayers relationship manager w...
Moose::RelationshipManagerType _rm_type
The type of RM this object is.
Every object that can be built by the factory should be derived from this class.
static Moose::RelationshipManagerType geo_and_alg
A relationship manager type that is geometric and algebraic.
const DofMap * _dof_map
Pointer to DofMap (may be null if this is geometric only).
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
const std::string & type() const
Get the type of this class.
virtual void internalInit()
virtual void internalInitWithMesh(const MeshBase &)
Called before this RM is attached.
void init(MooseMesh &moose_mesh, const MeshBase &mesh, const DofMap *dof_map=nullptr)
Called before this RM is attached.
bool isType(const Moose::RelationshipManagerType &type) const
Check to see if an RM is of a given type.
virtual bool operator==(const RelationshipManager &) const
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 std::string getInfo() const =0
Method for returning relationship manager information (suitable for console output).
void addForWhom(const std::string &for_whom)
Add another name to for_whom.
RelationshipManager(const InputParameters ¶meters)
const bool _use_displaced_mesh
Which system this should go to (undisplaced or displaced)
RelationshipManagers are used for describing what kinds of non-local resources are needed for an obje...
static InputParameters validParams()
static InputParameters zeroLayerGhosting()
This returns an InputParameters object containing an ElementSideNeighborLayers relationship manager w...
static Moose::RelationshipManagerType geo_alg_and_coupl
A relationship manager type that is geometric, algebraic, and coupling.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & parameters() const
Get the parameters of the object.
bool useDisplacedMesh() const
Whether this should be placed on the undisplaced or displaced systems.
static bool isAlgebraic(Moose::RelationshipManagerType input_rm)
Whether input_rm is algebraic.