#include <MortarInterfaceWarehouse.h>
Public Member Functions | |
| MortarInterfaceWarehouse (const libMesh::ParallelObject &other) | |
| void | createMortarInterface (const std::pair< BoundaryID, BoundaryID > &boundary_key, const std::pair< SubdomainID, SubdomainID > &subdomain_key, SubProblem &subproblem, bool on_displaced, bool periodic, const bool debug, const bool correct_edge_dropping, const Real minimum_projection_angle, const Mortar3DSubpatchPlane mortar_3d_subpatch_plane, const MooseEnum &triangulation, const bool triangulate_triangles, const Mortar3DQuadraturePointMapping mortar_3d_qp_mapping=Mortar3DQuadraturePointMapping::NORMAL_PROJECTION) |
| Create mortar generation object. More... | |
| const AutomaticMortarGeneration & | getMortarInterface (const std::pair< BoundaryID, BoundaryID > &boundary_key, const std::pair< SubdomainID, SubdomainID > &, bool on_displaced) const |
| Getter to retrieve the AutomaticMortarGeneration object corresponding to the boundary and subdomain keys. More... | |
| AutomaticMortarGeneration & | getMortarInterface (const std::pair< BoundaryID, BoundaryID > &boundary_key, const std::pair< SubdomainID, SubdomainID > &, bool on_displaced) |
| Non-const getter to retrieve the AutomaticMortarGeneration object corresponding to the boundary and subdomain keys. More... | |
| const std::unordered_map< std::pair< BoundaryID, BoundaryID >, MortarInterfaceConfig > & | getMortarInterfaces (bool on_displaced) const |
| Return the per-interface configuration map (AutomaticMortarGeneration object plus the associated user flags) for either the displaced or undisplaced mesh. More... | |
| const std::set< SubdomainID > & | getMortarSubdomainIDs () const |
| Returns the mortar covered subdomains. More... | |
| const std::set< BoundaryID > & | getMortarBoundaryIDs () const |
| Returns the mortar covered boundaries. More... | |
| void | update () |
| Builds mortar segment meshes for each mortar interface. More... | |
| void | meshChanged () |
| Invalidates cached MSM node/element ID offsets on all mortar interfaces so they are recomputed on the next update(). More... | |
| bool | hasDisplacedObjects () const |
| Returns whether any of the AutomaticMortarGeneration objects are running on a displaced mesh. More... | |
| bool | hasObjects () const |
| Returns whether we have any active AutomaticMortarGeneration objects. More... | |
| const std::set< SubdomainID > & | getHigherDimSubdomainIDs (SubdomainID lower_d_subdomain_id) const |
| Returns the higher dimensional subdomain ids of the interior parents of the given lower-d subdomain id. More... | |
| void | notifyWhenMortarSetup (MortarExecutorInterface *mei) |
Adds mei to the container of objects that will have their mortarSetup method called as soon as the mortar mesh has been generated for the first time More... | |
| void | dontNotifyWhenMortarSetup (MortarExecutorInterface *mei) |
Removes mei from the container of objects that will have their mortarSetup method called as soon as the mortar mesh has been generated for the first time More... | |
| bool | initialized () const |
| const Parallel::Communicator & | comm () const |
| processor_id_type | n_processors () const |
| processor_id_type | processor_id () const |
Protected Attributes | |
| const Parallel::Communicator & | _communicator |
Private Types | |
| typedef std::pair< BoundaryID, BoundaryID > | MortarKey |
Private Member Functions | |
| void | update (AutomaticMortarGeneration &amg) |
| Builds mortar segment mesh from specific AutomaticMortarGeneration object. More... | |
Private Attributes | |
| std::unordered_map< MortarKey, MortarInterfaceConfig > | _mortar_interfaces |
| Map from primary-secondary (in that order) boundary ID pair to the configuration of the undisplaced mortar interface (AMG object + per-interface flags). More... | |
| std::unordered_map< MortarKey, MortarInterfaceConfig > | _displaced_mortar_interfaces |
| Map from primary-secondary (in that order) boundary ID pair to the configuration of the displaced mortar interface (AMG object + per-interface flags). More... | |
| std::set< SubdomainID > | _mortar_subdomain_coverage |
| A set containing the subdomain ids covered by all the mortar interfaces in this MortarInterfaceWarehouse object. More... | |
| std::set< BoundaryID > | _mortar_boundary_coverage |
| A set containing the boundary ids covered by all the mortar interfaces in this MortarInterfaceWarehouse object. More... | |
| std::unordered_map< SubdomainID, std::set< SubdomainID > > | _lower_d_sub_to_higher_d_subs |
| Map from lower dimensional subdomain ids to corresponding higher simensional subdomain ids (e.g. More... | |
| std::set< MortarExecutorInterface * > | _mei_objs |
A container of objects for whom the mortarSetup method will be called after the mortar mesh has been setup for the first time. More... | |
| bool | _mortar_initd |
| Whether we have performed any mortar mesh construction. More... | |
Definition at line 47 of file MortarInterfaceWarehouse.h.
|
private |
Definition at line 177 of file MortarInterfaceWarehouse.h.
| MortarInterfaceWarehouse::MortarInterfaceWarehouse | ( | const libMesh::ParallelObject & | other | ) |
Definition at line 38 of file MortarInterfaceWarehouse.C.
| void MortarInterfaceWarehouse::createMortarInterface | ( | const std::pair< BoundaryID, BoundaryID > & | boundary_key, |
| const std::pair< SubdomainID, SubdomainID > & | subdomain_key, | ||
| SubProblem & | subproblem, | ||
| bool | on_displaced, | ||
| bool | periodic, | ||
| const bool | debug, | ||
| const bool | correct_edge_dropping, | ||
| const Real | minimum_projection_angle, | ||
| const Mortar3DSubpatchPlane | mortar_3d_subpatch_plane, | ||
| const MooseEnum & | triangulation, | ||
| const bool | triangulate_triangles, | ||
| const Mortar3DQuadraturePointMapping | mortar_3d_qp_mapping = Mortar3DQuadraturePointMapping::NORMAL_PROJECTION |
||
| ) |
Create mortar generation object.
| boundary_key | The primary-secondary boundary pair on which the AMG objects lives |
| subdomain_key | The primary-secondary subdomain pair on which the AMG objects lives |
| subproblem | A reference to the subproblem |
| on_displaced | Whether the AMG object lives on the displaced mesh |
| periodic | Whether the AMG object will be used for enforcing periodic constraints. Note that this changes the direction of the projection normals so one AMG object cannot be used to enforce both periodic and non-periodic constraints |
| debug | whether to output mortar segment mesh exodus file for debugging purposes |
| correct_edge_dropping | edge dropping treatment selection |
| minimum_projection_angle | minimum projection angle allowed for building mortar segment mesh |
| mortar_3d_subpatch_plane | method for constructing 3D mortar subpatch planes |
| triangulation | triangulation strategy used for clipped 3D mortar polygons |
| triangulate_triangles | whether a clipped polygon that is already a triangle should still be subdivided |
| mortar_3d_qp_mapping | method for mapping 3D mortar quadrature points to faces |
Definition at line 44 of file MortarInterfaceWarehouse.C.
| void MortarInterfaceWarehouse::dontNotifyWhenMortarSetup | ( | MortarExecutorInterface * | mei | ) |
Removes mei from the container of objects that will have their mortarSetup method called as soon as the mortar mesh has been generated for the first time
Definition at line 265 of file MortarInterfaceWarehouse.C.
| const std::set< SubdomainID > & MortarInterfaceWarehouse::getHigherDimSubdomainIDs | ( | SubdomainID | lower_d_subdomain_id | ) | const |
Returns the higher dimensional subdomain ids of the interior parents of the given lower-d subdomain id.
Definition at line 248 of file MortarInterfaceWarehouse.C.
|
inline |
Returns the mortar covered boundaries.
Definition at line 125 of file MortarInterfaceWarehouse.h.
| const AutomaticMortarGeneration & MortarInterfaceWarehouse::getMortarInterface | ( | const std::pair< BoundaryID, BoundaryID > & | boundary_key, |
| const std::pair< SubdomainID, SubdomainID > & | , | ||
| bool | on_displaced | ||
| ) | const |
Getter to retrieve the AutomaticMortarGeneration object corresponding to the boundary and subdomain keys.
If the AutomaticMortarGeneration object does not yet exist, then we error
Definition at line 164 of file MortarInterfaceWarehouse.C.
Referenced by getMortarInterface().
| AutomaticMortarGeneration & MortarInterfaceWarehouse::getMortarInterface | ( | const std::pair< BoundaryID, BoundaryID > & | boundary_key, |
| const std::pair< SubdomainID, SubdomainID > & | subdomain_key, | ||
| bool | on_displaced | ||
| ) |
Non-const getter to retrieve the AutomaticMortarGeneration object corresponding to the boundary and subdomain keys.
If the AutomaticMortarGeneration object does not yet exist, then we error
Definition at line 178 of file MortarInterfaceWarehouse.C.
|
inline |
Return the per-interface configuration map (AutomaticMortarGeneration object plus the associated user flags) for either the displaced or undisplaced mesh.
Iterating callers should reach the AMG via the value's amg member.
Definition at line 109 of file MortarInterfaceWarehouse.h.
|
inline |
Returns the mortar covered subdomains.
Definition at line 120 of file MortarInterfaceWarehouse.h.
|
inline |
Returns whether any of the AutomaticMortarGeneration objects are running on a displaced mesh.
Definition at line 141 of file MortarInterfaceWarehouse.h.
|
inline |
Returns whether we have any active AutomaticMortarGeneration objects.
Definition at line 146 of file MortarInterfaceWarehouse.h.
|
inline |
Definition at line 169 of file MortarInterfaceWarehouse.h.
| void MortarInterfaceWarehouse::meshChanged | ( | ) |
Invalidates cached MSM node/element ID offsets on all mortar interfaces so they are recomputed on the next update().
Call when mesh topology changes.
Definition at line 200 of file MortarInterfaceWarehouse.C.
| void MortarInterfaceWarehouse::notifyWhenMortarSetup | ( | MortarExecutorInterface * | mei | ) |
Adds mei to the container of objects that will have their mortarSetup method called as soon as the mortar mesh has been generated for the first time
Definition at line 259 of file MortarInterfaceWarehouse.C.
| void MortarInterfaceWarehouse::update | ( | ) |
Builds mortar segment meshes for each mortar interface.
Definition at line 189 of file MortarInterfaceWarehouse.C.
Referenced by meshChanged().
|
private |
Builds mortar segment mesh from specific AutomaticMortarGeneration object.
Definition at line 210 of file MortarInterfaceWarehouse.C.
|
private |
Map from primary-secondary (in that order) boundary ID pair to the configuration of the displaced mortar interface (AMG object + per-interface flags).
Definition at line 185 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), getMortarInterface(), getMortarInterfaces(), hasDisplacedObjects(), meshChanged(), and update().
|
private |
Map from lower dimensional subdomain ids to corresponding higher simensional subdomain ids (e.g.
the ids of the interior parents)
Definition at line 197 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), and getHigherDimSubdomainIDs().
|
private |
A container of objects for whom the mortarSetup method will be called after the mortar mesh has been setup for the first time.
Definition at line 201 of file MortarInterfaceWarehouse.h.
Referenced by dontNotifyWhenMortarSetup(), and notifyWhenMortarSetup().
|
private |
A set containing the boundary ids covered by all the mortar interfaces in this MortarInterfaceWarehouse object.
Definition at line 193 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), and getMortarBoundaryIDs().
|
private |
Whether we have performed any mortar mesh construction.
Definition at line 204 of file MortarInterfaceWarehouse.h.
Referenced by initialized(), and update().
|
private |
Map from primary-secondary (in that order) boundary ID pair to the configuration of the undisplaced mortar interface (AMG object + per-interface flags).
Definition at line 181 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), getMortarInterface(), getMortarInterfaces(), hasObjects(), meshChanged(), and update().
|
private |
A set containing the subdomain ids covered by all the mortar interfaces in this MortarInterfaceWarehouse object.
Definition at line 189 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), and getMortarSubdomainIDs().
1.8.14