#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, libMesh::Order order=libMesh::FIRST) |
PenetrationLocator & | getQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, libMesh::Order order=libMesh::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 | setSearchUsingPointLocator (bool state) |
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... | |
bool | _search_using_point_locator |
Denotes whether the PenetrationLocator objects should use a point locator rather than cheaper node-to-element connectivity searches once the nearest nodes have been identified. 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 316 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 277 of file GeometricSearchData.C.
Referenced by reinitQuadratureNodes(), and update().
NearestNodeLocator & GeometricSearchData::getNearestNodeLocator | ( | const BoundaryName & | primary, |
const BoundaryName & | secondary | ||
) |
Definition at line 221 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 234 of file GeometricSearchData.C.
PenetrationLocator & GeometricSearchData::getPenetrationLocator | ( | const BoundaryName & | primary, |
const BoundaryName & | secondary, | ||
libMesh::Order | order = libMesh::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 253 of file GeometricSearchData.C.
Referenced by GeometricSearchInterface::getQuadratureNearestNodeLocator(), and getQuadraturePenetrationLocator().
NearestNodeLocator & GeometricSearchData::getQuadratureNearestNodeLocator | ( | const BoundaryID | primary_id, |
const BoundaryID | secondary_id | ||
) |
Definition at line 266 of file GeometricSearchData.C.
PenetrationLocator & GeometricSearchData::getQuadraturePenetrationLocator | ( | const BoundaryName & | primary, |
const BoundaryName & | secondary, | ||
libMesh::Order | order = libMesh::FIRST |
||
) |
Definition at line 183 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::meshChanged(), and DisplacedProblem::updateMesh().
|
private |
Completely redo quadrature nodes.
Definition at line 367 of file GeometricSearchData.C.
Referenced by reinit().
void GeometricSearchData::setSearchUsingPointLocator | ( | bool | state | ) |
Definition at line 323 of file GeometricSearchData.C.
Referenced by GeometricSearchInterface::GeometricSearchInterface().
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 375 of file GeometricSearchData.C.
Referenced by FEProblemBase::possiblyRebuildGeomSearchPatches().
|
private |
Update the positions of the quadrature nodes.
Definition at line 339 of file GeometricSearchData.C.
Referenced by update().
std::map<BoundaryID, std::shared_ptr<ElementPairLocator> > GeometricSearchData::_element_pair_locators |
Definition at line 104 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 140 of file GeometricSearchData.h.
Referenced by update().
MooseMesh& GeometricSearchData::_mesh |
Definition at line 101 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 103 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 102 of file GeometricSearchData.h.
Referenced by NonlinearSystemBase::constraintJacobians(), NonlinearSystemBase::constraintResiduals(), DMMooseGetEmbedding_Private(), getPenetrationLocator(), getPenetrationLocators(), getQuadraturePenetrationLocator(), NonlinearSystemBase::overwriteNodeFace(), reinit(), NonlinearSystemBase::setConstraintSecondaryValues(), setSearchUsingPointLocator(), update(), and ~GeometricSearchData().
|
protected |
These are real boundaries that have quadrature nodes on them.
Definition at line 108 of file GeometricSearchData.h.
Referenced by generateQuadratureNodes(), reinit(), and update().
|
private |
Denotes whether the PenetrationLocator objects should use a point locator rather than cheaper node-to-element connectivity searches once the nearest nodes have been identified.
Definition at line 147 of file GeometricSearchData.h.
Referenced by getPenetrationLocator(), getQuadraturePenetrationLocator(), and setSearchUsingPointLocator().
|
protected |
A mapping of the real boundary id to the secondary boundary ids.
Definition at line 111 of file GeometricSearchData.h.
Referenced by getQuadratureNearestNodeLocator(), getQuadraturePenetrationLocator(), reinitQuadratureNodes(), and update().
SubProblem& GeometricSearchData::_subproblem |
Definition at line 100 of file GeometricSearchData.h.
Referenced by generateQuadratureNodes(), getNearestNodeLocator(), getPenetrationLocator(), getQuadratureNearestNodeLocator(), getQuadraturePenetrationLocator(), and updateQuadratureNodes().