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
21
23{
24public:
26
28
29 static InputParameters validParams();
30
36 virtual void operator()(const MeshBase::const_element_iterator & range_begin,
37 const MeshBase::const_element_iterator & range_end,
38 processor_id_type p,
39 map_type & coupled_elements) override;
40
45 virtual std::unique_ptr<GhostingFunctor> clone() const override;
46
51 virtual void redistribute() override { this->mesh_reinit(); }
52
53 std::string getInfo() const override;
54
55 virtual bool operator>=(const RelationshipManager & other) const override;
56
57protected:
58 virtual void internalInitWithMesh(const MeshBase &) override;
59
63 void ghostMortarInterfaceCouplings(const processor_id_type p,
64 const Elem * const elem,
65 map_type & coupled_elements,
66 const AutomaticMortarGeneration & amg) const;
67
74 void ghostLowerDSecondaryElemPointNeighbors(const processor_id_type p,
75 const Elem * const query_elem,
76 map_type & coupled_elements,
77 BoundaryID secondary_boundary_id,
78 SubdomainID secondary_subdomain_id,
79 const AutomaticMortarGeneration & amg) const;
80
81 void ghostHigherDNeighbors(const processor_id_type p,
82 const Elem * const query_elem,
83 map_type & coupled_elements,
84 BoundaryID secondary_boundary_id,
85 SubdomainID secondary_subdomain_id,
86 const AutomaticMortarGeneration & amg) const;
87
88 const BoundaryName _primary_boundary_name;
89 const BoundaryName _secondary_boundary_name;
90 const SubdomainName _primary_subdomain_name;
91 const SubdomainName _secondary_subdomain_name;
92
95 const bool _is_coupling_functor;
96
99 const bool _ghost_point_neighbors;
100
104 const bool _ghost_higher_d_neighbors;
105
107 const CouplingMatrix * const _null_mat = nullptr;
108};
boundary_id_type BoundaryID
subdomain_id_type SubdomainID
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