49 params.
addRequiredParam<std::string>(
"for_whom",
"What object is requesting this RM?");
54 "Whether this RM should be placed on the undisplaced or displaced problem. Note: yes, it " 55 "still says 'mesh' to match with common parameter name in MOOSE - but if it's purely " 56 "algebraic then it's going to the DofMap no matter what!");
67 _moose_mesh(getCheckedPointerParam<
MooseMesh *>(
69 "Mesh is null in RelationshipManager constructor. This could well be because No mesh file " 70 "was supplied and no generation block was provided")),
71 _attach_geometric_early(getParam<bool>(
"attach_geometric_early")),
73 _use_displaced_mesh(getParam<bool>(
"use_displaced_mesh"))
75 _for_whom.push_back(getParam<std::string>(
"for_whom"));
81 _moose_mesh(other._moose_mesh),
82 _attach_geometric_early(other._attach_geometric_early),
83 _rm_type(other._rm_type),
84 _for_whom(other._for_whom),
85 _use_displaced_mesh(other._use_displaced_mesh)
133 params.set<std::string>(
"_moose_base") =
"dummy";
141 params.addRelationshipManager(
"ElementSideNeighborLayers",
144 { rm_params.
set<
unsigned short>(
"layers") = 0; });
152 params.addRelationshipManager(
"ElementSideNeighborLayers", rm_type);
159 const DofMap *
const dof_map)
162 "Trying to initialize with a different dof map");
167 mooseAssert(moose_mesh.
getMeshPtr() == &
mesh,
"These should match");
InputParameters dummyParams()
static bool isCoupling(Moose::RelationshipManagerType input_rm)
Whether input_rm is coupling.
RelationshipManagerType
Main types of Relationship Managers.
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.
virtual void set_mesh(const MeshBase *mesh)
MooseMesh * _moose_mesh
Pointer to the MooseMesh object.
bool _inited
Whether or not this has been initialized.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
const bool _attach_geometric_early
Boolean indicating whether this RM can be attached early (e.g.
void init(MooseMesh &moose_mesh, const MeshBase &mesh, const libMesh::DofMap *dof_map=nullptr)
Called before this RM is attached.
const MeshBase * getMeshPtr() const
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.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
virtual void internalInitWithMesh(const MeshBase &)
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 baseGreaterEqual(const RelationshipManager &rhs) const
Whether the base class provides more or the same amount and type of ghosting as the rhs...
RelationshipManager(const InputParameters ¶meters)
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.
const libMesh::DofMap * _dof_map
Pointer to DofMap (may be null if this is geometric only).
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
static InputParameters validParams()
static bool isAlgebraic(Moose::RelationshipManagerType input_rm)
Whether input_rm is algebraic.