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")),
72 _rm_type(getParam<
Moose::RelationshipManagerType>(
"rm_type")),
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.registerBase(
"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()
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
const MeshBase * getMeshPtr() const
Every object that can be built by the factory should be derived from this class.
static InputParameters validParams()
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.
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)
static bool isCoupling(Moose::RelationshipManagerType input_rm)
Whether input_rm is coupling.
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.
static InputParameters validParams()
void init(MooseMesh &moose_mesh, const MeshBase &mesh, const libMesh::DofMap *dof_map=nullptr)
Called before this RM is attached.
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.
MooseMesh * _moose_mesh
Pointer to the MooseMesh object.
static InputParameters zeroLayerGhosting()
This returns an InputParameters object containing an ElementSideNeighborLayers relationship manager w...
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...
virtual void set_mesh(const MeshBase *mesh)
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
RelationshipManagerType
Main types of Relationship Managers.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...