#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) |
| 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 >, std::unique_ptr< AutomaticMortarGeneration > > & | getMortarInterfaces (bool on_displaced) const |
| Return all automatic mortar generation objects on 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... | |
| 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, std::unique_ptr< AutomaticMortarGeneration > > | _mortar_interfaces |
| Map from primary-secondary (in that order) boundary ID pair to the corresponding undisplaced AutomaticMortarGeneration object. More... | |
| std::unordered_map< MortarKey, std::unique_ptr< AutomaticMortarGeneration > > | _displaced_mortar_interfaces |
| Map from primary-secondary (in that order) boundary ID pair to the corresponding displaced AutomaticMortarGeneration object. 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< MortarKey, bool > | _periodic_map |
| Map from undisplaced AMG key to whether the undisplaced AMG object is enforcing periodic constraints. More... | |
| std::unordered_map< MortarKey, bool > | _displaced_periodic_map |
| Map from displaced AMG key to whether the displaced AMG object is enforcing periodic constraints. More... | |
| std::unordered_map< MortarKey, bool > | _debug_flag_map |
| Map from undisplaced AMG key to whether the undisplaced AMG object is to output mortar segment mesh. More... | |
| std::unordered_map< MortarKey, bool > | _displaced_debug_flag_map |
| Map from displaced AMG key to whether the displaced AMG object is to output mortar segment mesh. 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 24 of file MortarInterfaceWarehouse.h.
|
private |
Definition at line 137 of file MortarInterfaceWarehouse.h.
| MortarInterfaceWarehouse::MortarInterfaceWarehouse | ( | const libMesh::ParallelObject & | other | ) |
Definition at line 17 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 | ||
| ) |
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 |
Definition at line 23 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 205 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 188 of file MortarInterfaceWarehouse.C.
|
inline |
Returns the mortar covered boundaries.
Definition at line 91 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 118 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 132 of file MortarInterfaceWarehouse.C.
|
inline |
Return all automatic mortar generation objects on either the displaced or undisplaced mesh.
Definition at line 75 of file MortarInterfaceWarehouse.h.
|
inline |
Returns the mortar covered subdomains.
Definition at line 86 of file MortarInterfaceWarehouse.h.
|
inline |
Returns whether any of the AutomaticMortarGeneration objects are running on a displaced mesh.
Definition at line 101 of file MortarInterfaceWarehouse.h.
|
inline |
Returns whether we have any active AutomaticMortarGeneration objects.
Definition at line 106 of file MortarInterfaceWarehouse.h.
|
inline |
Definition at line 129 of file MortarInterfaceWarehouse.h.
| 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 199 of file MortarInterfaceWarehouse.C.
| void MortarInterfaceWarehouse::update | ( | ) |
Builds mortar segment meshes for each mortar interface.
Definition at line 143 of file MortarInterfaceWarehouse.C.
|
private |
Builds mortar segment mesh from specific AutomaticMortarGeneration object.
Definition at line 154 of file MortarInterfaceWarehouse.C.
|
private |
Map from undisplaced AMG key to whether the undisplaced AMG object is to output mortar segment mesh.
Definition at line 163 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface().
|
private |
Map from displaced AMG key to whether the displaced AMG object is to output mortar segment mesh.
Definition at line 166 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface().
|
private |
Map from primary-secondary (in that order) boundary ID pair to the corresponding displaced AutomaticMortarGeneration object.
Definition at line 146 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), getMortarInterface(), getMortarInterfaces(), hasDisplacedObjects(), and update().
|
private |
Map from displaced AMG key to whether the displaced AMG object is enforcing periodic constraints.
Definition at line 160 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface().
|
private |
Map from lower dimensional subdomain ids to corresponding higher simensional subdomain ids (e.g.
the ids of the interior parents)
Definition at line 170 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 174 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 154 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), and getMortarBoundaryIDs().
|
private |
Whether we have performed any mortar mesh construction.
Definition at line 177 of file MortarInterfaceWarehouse.h.
Referenced by initialized(), and update().
|
private |
Map from primary-secondary (in that order) boundary ID pair to the corresponding undisplaced AutomaticMortarGeneration object.
Definition at line 141 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), getMortarInterface(), getMortarInterfaces(), hasObjects(), and update().
|
private |
A set containing the subdomain ids covered by all the mortar interfaces in this MortarInterfaceWarehouse object.
Definition at line 150 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface(), and getMortarSubdomainIDs().
|
private |
Map from undisplaced AMG key to whether the undisplaced AMG object is enforcing periodic constraints.
Definition at line 157 of file MortarInterfaceWarehouse.h.
Referenced by createMortarInterface().
1.8.14