17 #include "libmesh/elem.h" 18 #include "libmesh/mesh_base.h" 19 #include "libmesh/boundary_info.h" 29 params.
set<
bool>(
"attach_geometric_early") =
false;
40 std::ostringstream oss;
41 oss <<
"GhostLowerDElems";
47 const MeshBase::const_element_iterator & range_end,
52 "The MOOSE mesh must be non-null in order for this relationship manager to work.");
58 for (
const Elem *
const elem :
as_range(range_begin, range_end))
59 for (
const auto s : elem->side_index_range())
62 const bool elem_owns_lowerd = !neighbor || elem->
id() < neighbor->
id();
64 const Elem *
const lower_d_elem =
70 coupled_elements.emplace(lower_d_elem, null_mat);
80 std::unique_ptr<GhostingFunctor>
std::unique_ptr< GhostingFunctor > clone() const override
const Elem * getLowerDElem(const Elem *, unsigned short int) const
Returns a const pointer to a lower dimensional element that corresponds to a side of a higher dimensi...
std::string getInfo() const override
Method for returning relationship manager information (suitable for console output).
MooseMesh * _moose_mesh
Pointer to the MooseMesh object.
std::map< const Elem *, const CouplingMatrix *, CompareDofObjectsByPIDAndThenID > map_type
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
GhostLowerDElems(const InputParameters &)
registerMooseObject("MooseApp", GhostLowerDElems)
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
virtual bool operator>=(const RelationshipManager &other) const override
Whether this relationship manager provides more or the same amount and type of ghosting as the rhs...
uint8_t processor_id_type
unsigned int which_neighbor_am_i(const Elem *e) const
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
MooseApp & _app
The MOOSE application this is associated with.
const Elem * neighbor_ptr(unsigned int i) const
RelationshipManagers are used for describing what kinds of non-local resources are needed for an obje...
static InputParameters validParams()
void operator()(const MeshBase::const_element_iterator &range_begin, const MeshBase::const_element_iterator &range_end, processor_id_type p, map_type &coupled_elements) override
static InputParameters validParams()
processor_id_type processor_id() const