#include <GeometricSearchData.h>
Public Types | |
enum | GeometricSearchType { ALL, NEAREST_NODE, PENETRATION, QUADRATURE, ELEMENTPAIR } |
Used to select groups of geometric search objects to update. More... | |
Public Member Functions | |
GeometricSearchData (SubProblem &subproblem, MooseMesh &mesh) | |
virtual | ~GeometricSearchData () |
PenetrationLocator & | getPenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order=FIRST) |
PenetrationLocator & | getQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order=FIRST) |
NearestNodeLocator & | getNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary) |
NearestNodeLocator & | getNearestNodeLocator (const BoundaryID primary_id, const BoundaryID secondary_id) |
NearestNodeLocator & | getQuadratureNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary) |
NearestNodeLocator & | getQuadratureNearestNodeLocator (const BoundaryID primary_id, const BoundaryID secondary_id) |
const std::map< std::pair< BoundaryID, BoundaryID >, PenetrationLocator * > & | getPenetrationLocators () const |
void | addElementPairLocator (BoundaryID interface_id, std::shared_ptr< ElementPairLocator > epl) |
void | update (GeometricSearchType type=ALL) |
Update all of the search objects. More... | |
void | reinit () |
Completely redo all geometric search objects. More... | |
void | clearNearestNodeLocators () |
Clear out the Penetration Locators so they will redo the search. More... | |
Real | maxPatchPercentage () |
Maximum percentage through the search patch that any NearestNodeLocator had to look. More... | |
void | updateGhostedElems () |
Updates the list of ghosted elements at the start of each time step for the nonlinear iteration patch update strategy. More... | |
Public Attributes | |
SubProblem & | _subproblem |
MooseMesh & | _mesh |
std::map< std::pair< BoundaryID, BoundaryID >, PenetrationLocator * > | _penetration_locators |
std::map< std::pair< BoundaryID, BoundaryID >, NearestNodeLocator * > | _nearest_node_locators |
std::map< BoundaryID, std::shared_ptr< ElementPairLocator > > | _element_pair_locators |
Protected Attributes | |
std::set< BoundaryID > | _quadrature_boundaries |
These are real boundaries that have quadrature nodes on them. More... | |
std::map< BoundaryID, BoundaryID > | _secondary_to_qsecondary |
A mapping of the real boundary id to the secondary boundary ids. More... | |
Private Member Functions | |
void | generateQuadratureNodes (const BoundaryID secondary_id, const BoundaryID qsecondary_id, bool reiniting=false) |
Add Quadrature Nodes to the Mesh in support of Quadrature based penetration location and nearest node searching. More... | |
void | updateQuadratureNodes (const BoundaryID secondary_id) |
Update the positions of the quadrature nodes. More... | |
void | reinitQuadratureNodes (const BoundaryID secondary_id) |
Completely redo quadrature nodes. More... | |
Private Attributes | |
bool | _first |
Denotes whether this is the first time the geometric search objects have been updated. More... | |
Definition at line 28 of file GeometricSearchData.h.
Used to select groups of geometric search objects to update.
Enumerator | |
---|---|
ALL | |
NEAREST_NODE | |
PENETRATION | |
QUADRATURE | |
ELEMENTPAIR |
Definition at line 32 of file GeometricSearchData.h.
GeometricSearchData::GeometricSearchData | ( | SubProblem & | subproblem, |
MooseMesh & | mesh | ||
) |
Definition at line 23 of file GeometricSearchData.C.
|
virtual |
Definition at line 34 of file GeometricSearchData.C.
void GeometricSearchData::addElementPairLocator | ( | BoundaryID | interface_id, |
std::shared_ptr< ElementPairLocator > | epl | ||
) |
Definition at line 308 of file GeometricSearchData.C.
void GeometricSearchData::clearNearestNodeLocators | ( | ) |
Clear out the Penetration Locators so they will redo the search.
Definition at line 124 of file GeometricSearchData.C.
Referenced by FEProblemBase::possiblyRebuildGeomSearchPatches().
|
private |
Add Quadrature Nodes to the Mesh in support of Quadrature based penetration location and nearest node searching.
secondary_id | The actual secondary_id (the one in the mesh) |
qsecondary_id | The "fictitious" secondary_id that is going to be used for this quadrature nodeset |
reiniting | Whether we are reinitializing, e.g. whether we need to re-generate q-nodes |
Definition at line 269 of file GeometricSearchData.C.
Referenced by reinitQuadratureNodes(), and update().
NearestNodeLocator & GeometricSearchData::getNearestNodeLocator | ( | const BoundaryName & | primary, |
const BoundaryName & | secondary | ||
) |
Definition at line 213 of file GeometricSearchData.C.
Referenced by GeometricSearchInterface::getNearestNodeLocator(), getPenetrationLocator(), and getQuadratureNearestNodeLocator().
NearestNodeLocator & GeometricSearchData::getNearestNodeLocator | ( | const BoundaryID | primary_id, |
const BoundaryID | secondary_id | ||
) |
Definition at line 226 of file GeometricSearchData.C.
PenetrationLocator & GeometricSearchData::getPenetrationLocator | ( | const BoundaryName & | primary, |
const BoundaryName & | secondary, | ||
Order | order = FIRST |
||
) |
Definition at line 150 of file GeometricSearchData.C.
Referenced by DMSetUp_Moose_Pre(), and GeometricSearchInterface::getPenetrationLocator().
|
inline |
Definition at line 62 of file GeometricSearchData.h.
NearestNodeLocator & GeometricSearchData::getQuadratureNearestNodeLocator | ( | const BoundaryName & | primary, |
const BoundaryName & | secondary | ||
) |
Definition at line 245 of file GeometricSearchData.C.
Referenced by GeometricSearchInterface::getQuadratureNearestNodeLocator(), and getQuadraturePenetrationLocator().
NearestNodeLocator & GeometricSearchData::getQuadratureNearestNodeLocator | ( | const BoundaryID | primary_id, |
const BoundaryID | secondary_id | ||
) |
Definition at line 258 of file GeometricSearchData.C.
PenetrationLocator & GeometricSearchData::getQuadraturePenetrationLocator | ( | const BoundaryName & | primary, |
const BoundaryName & | secondary, | ||
Order | order = FIRST |
||
) |
Definition at line 179 of file GeometricSearchData.C.
Referenced by GeometricSearchInterface::getQuadraturePenetrationLocator().
Real GeometricSearchData::maxPatchPercentage | ( | ) |
Maximum percentage through the search patch that any NearestNodeLocator had to look.
As this goes towards 1.0 it's indicative of needing to rebuild the patches.
Definition at line 134 of file GeometricSearchData.C.
void GeometricSearchData::reinit | ( | ) |
Completely redo all geometric search objects.
This should be called when the mesh is adapted.
Definition at line 97 of file GeometricSearchData.C.
Referenced by FEProblemBase::meshChangedHelper(), and DisplacedProblem::updateMesh().
|
private |
Completely redo quadrature nodes.
Definition at line 343 of file GeometricSearchData.C.
Referenced by reinit().
void GeometricSearchData::update | ( | GeometricSearchType | type = ALL | ) |
Update all of the search objects.
Definition at line 44 of file GeometricSearchData.C.
Referenced by DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), and DisplacedProblem::updateMesh().
void GeometricSearchData::updateGhostedElems | ( | ) |
Updates the list of ghosted elements at the start of each time step for the nonlinear iteration patch update strategy.
Definition at line 351 of file GeometricSearchData.C.
Referenced by FEProblemBase::possiblyRebuildGeomSearchPatches().
|
private |
Update the positions of the quadrature nodes.
Definition at line 315 of file GeometricSearchData.C.
Referenced by update().
std::map<BoundaryID, std::shared_ptr<ElementPairLocator> > GeometricSearchData::_element_pair_locators |
Definition at line 102 of file GeometricSearchData.h.
Referenced by addElementPairLocator(), NonlinearSystemBase::constraintJacobians(), NonlinearSystemBase::constraintResiduals(), reinit(), and update().
|
private |
Denotes whether this is the first time the geometric search objects have been updated.
Definition at line 138 of file GeometricSearchData.h.
Referenced by update().
MooseMesh& GeometricSearchData::_mesh |
Definition at line 99 of file GeometricSearchData.h.
Referenced by generateQuadratureNodes(), GeometricSearchData(), getNearestNodeLocator(), getPenetrationLocator(), getQuadratureNearestNodeLocator(), getQuadraturePenetrationLocator(), reinit(), and updateQuadratureNodes().
std::map<std::pair<BoundaryID, BoundaryID>, NearestNodeLocator *> GeometricSearchData::_nearest_node_locators |
Definition at line 101 of file GeometricSearchData.h.
Referenced by clearNearestNodeLocators(), NonlinearSystemBase::findImplicitGeometricCouplingEntries(), getNearestNodeLocator(), maxPatchPercentage(), reinit(), FEProblemBase::reinitBecauseOfGhostingOrNewGeomObjects(), update(), updateGhostedElems(), and ~GeometricSearchData().
std::map<std::pair<BoundaryID, BoundaryID>, PenetrationLocator *> GeometricSearchData::_penetration_locators |
Definition at line 100 of file GeometricSearchData.h.
Referenced by NonlinearSystemBase::constraintJacobians(), NonlinearSystemBase::constraintResiduals(), DMMooseGetEmbedding_Private(), DMSetFromOptions_Moose(), getPenetrationLocator(), getPenetrationLocators(), getQuadraturePenetrationLocator(), NonlinearSystemBase::overwriteNodeFace(), reinit(), NonlinearSystemBase::setConstraintSecondaryValues(), update(), and ~GeometricSearchData().
|
protected |
These are real boundaries that have quadrature nodes on them.
Definition at line 106 of file GeometricSearchData.h.
Referenced by generateQuadratureNodes(), reinit(), and update().
|
protected |
A mapping of the real boundary id to the secondary boundary ids.
Definition at line 109 of file GeometricSearchData.h.
Referenced by getQuadratureNearestNodeLocator(), getQuadraturePenetrationLocator(), reinitQuadratureNodes(), and update().
SubProblem& GeometricSearchData::_subproblem |
Definition at line 98 of file GeometricSearchData.h.
Referenced by generateQuadratureNodes(), getNearestNodeLocator(), getPenetrationLocator(), getQuadratureNearestNodeLocator(), getQuadraturePenetrationLocator(), and updateQuadratureNodes().