https://mooseframework.inl.gov
Loading...
Searching...
No Matches
AugmentSparsityOnInterface.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// App includes
14#include "RelationshipManager.h"
15
16// libMesh includes
17#include "libmesh/mesh_base.h"
18
21using libMesh::Elem;
25
27{
28public:
30
32
33 static InputParameters validParams();
34
40 virtual void operator()(const MeshBase::const_element_iterator & range_begin,
41 const MeshBase::const_element_iterator & range_end,
43 map_type & coupled_elements) override;
44
49 virtual std::unique_ptr<GhostingFunctor> clone() const override;
50
55 virtual void redistribute() override { this->mesh_reinit(); }
56
57 std::string getInfo() const override;
58
59 virtual bool operator>=(const RelationshipManager & other) const override;
60
61protected:
62 virtual void internalInitWithMesh(const MeshBase &) override;
63
67 void ghostMortarInterfaceCouplings(const processor_id_type p,
68 const Elem * const elem,
69 map_type & coupled_elements,
70 const AutomaticMortarGeneration & amg) const;
71
78 void ghostLowerDSecondaryElemPointNeighbors(const processor_id_type p,
79 const Elem * const query_elem,
80 map_type & coupled_elements,
81 BoundaryID secondary_boundary_id,
82 SubdomainID secondary_subdomain_id,
83 const AutomaticMortarGeneration & amg) const;
84
85 void ghostHigherDNeighbors(const processor_id_type p,
86 const Elem * const query_elem,
87 map_type & coupled_elements,
88 BoundaryID secondary_boundary_id,
89 SubdomainID secondary_subdomain_id,
90 const AutomaticMortarGeneration & amg) const;
91
92 const BoundaryName _primary_boundary_name;
93 const BoundaryName _secondary_boundary_name;
94 const SubdomainName _primary_subdomain_name;
95 const SubdomainName _secondary_subdomain_name;
96
99 const bool _is_coupling_functor;
100
103 const bool _ghost_point_neighbors;
104
108 const bool _ghost_higher_d_neighbors;
109
111 const CouplingMatrix * const _null_mat = nullptr;
112};
boundary_id_type BoundaryID
virtual void redistribute() override
virtual void mesh_reinit() override
virtual std::unique_ptr< GhostingFunctor > clone() const override
virtual 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
This class is a container/interface for the objects involved in automatic generation of mortar spaces...
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
int8_t boundary_id_type
uint8_t processor_id_type