https://mooseframework.inl.gov
Loading...
Searching...
No Matches
GhostPrimaryFace.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "RelationshipManager.h"
13#include "libmesh/mesh_base.h"
14
20{
21public:
22 GhostPrimaryFace(const InputParameters & params);
23
25
27
28 virtual void operator()(const libMesh::MeshBase::const_element_iterator & range_begin,
31 map_type & coupled_elements) override;
32
33 virtual std::unique_ptr<libMesh::GhostingFunctor> clone() const override;
34
35 virtual void redistribute() override { this->mesh_reinit(); }
36
37 std::string getInfo() const override;
38
39 virtual bool operator>=(const RelationshipManager & other) const override;
40
41protected:
42 virtual void internalInitWithMesh(const libMesh::MeshBase &) override;
43
47 BoundaryID secondary_boundary_id,
48 bool generating_mesh) const;
49
51 const BoundaryName _primary_boundary_name;
52
54 const BoundaryName _secondary_boundary_name;
55
57 const bool _enabled;
58
60 const libMesh::CouplingMatrix * const _null_mat = nullptr;
61};
boundary_id_type BoundaryID
Ghosts full-dimensional elements with sides on the primary boundary to processors that own full-dimen...
const BoundaryName _secondary_boundary_name
Secondary boundary whose local presence triggers primary boundary ghosting.
virtual void redistribute() override
const libMesh::CouplingMatrix *const _null_mat
null matrix for generating full variable coupling
const BoundaryName _primary_boundary_name
Primary boundary whose full-dimensional elements may be ghosted.
bool hasSecondaryBoundaryFace(const libMesh::MeshBase::const_element_iterator &range_begin, const libMesh::MeshBase::const_element_iterator &range_end, BoundaryID secondary_boundary_id, bool generating_mesh) const
Return whether the local element range contains a secondary boundary face.
std::string getInfo() const override
Method for returning relationship manager information (suitable for console output).
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.
static InputParameters validParams()
const bool _enabled
Whether this relationship manager should add ghosting entries.
virtual void internalInitWithMesh(const libMesh::MeshBase &) override
virtual void operator()(const libMesh::MeshBase::const_element_iterator &range_begin, const libMesh::MeshBase::const_element_iterator &range_end, libMesh::processor_id_type p, map_type &coupled_elements) override
virtual std::unique_ptr< libMesh::GhostingFunctor > clone() const override
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
RelationshipManagers are used for describing what kinds of non-local resources are needed for an obje...
std::map< const Elem *, const CouplingMatrix *, CompareDofObjectsByPIDAndThenID > map_type
virtual void mesh_reinit()
uint8_t processor_id_type