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