#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 MooseEnum &triangulation, const bool triangulate_triangles) |
| 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 42 of file MortarInterfaceWarehouse.h.
|
private |
Definition at line 167 of file MortarInterfaceWarehouse.h.
| MortarInterfaceWarehouse::MortarInterfaceWarehouse | ( | const libMesh::ParallelObject & | other | ) |
Definition at line 37 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 MooseEnum & | triangulation, | ||
| const bool | triangulate_triangles | ||
| ) |
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 |
| triangulation | triangulation strategy used for clipped 3D mortar polygons |
| triangulate_triangles | whether a clipped polygon that is already a triangle should still be subdivided |
Definition at line 43 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 247 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 230 of file MortarInterfaceWarehouse.C.
|
inline |
Returns the mortar covered boundaries.
Definition at line 115 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 146 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 160 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 99 of file MortarInterfaceWarehouse.h.
|
inline |
Returns the mortar covered subdomains.
Definition at line 110 of file MortarInterfaceWarehouse.h.
|
inline |
Returns whether any of the AutomaticMortarGeneration objects are running on a displaced mesh.
Definition at line 131 of file MortarInterfaceWarehouse.h.
|
inline |
Returns whether we have any active AutomaticMortarGeneration objects.
Definition at line 136 of file MortarInterfaceWarehouse.h.
|
inline |
Definition at line 159 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 182 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 241 of file MortarInterfaceWarehouse.C.
| void MortarInterfaceWarehouse::update | ( | ) |
Builds mortar segment meshes for each mortar interface.
Definition at line 171 of file MortarInterfaceWarehouse.C.
Referenced by meshChanged().
|
private |
Builds mortar segment mesh from specific AutomaticMortarGeneration object.
Definition at line 192 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 175 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 187 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 191 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 183 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), and getMortarBoundaryIDs().
|
private |
Whether we have performed any mortar mesh construction.
Definition at line 194 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 171 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 179 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), and getMortarSubdomainIDs().
1.8.14