GeometricSearchData
Sometimes information needs to be exchanged between topologically-disconnected pieces of mesh which are in or near contact with each other.
Examples include: - Mechanical Contact - Gap Heat Conduction - Radiation - Constraints - Mesh Tying
The Geometric Search system allows an application to track evolving geometric relationships.
Currently, this entails two main capabilities:
NearestNodeLocatorandPenetrationLocator.The
PenetrationLocatorcapability defaults to a quick, mesh-topology-based location algorithm. Cases where a surface element may touch a node that is not one of its own nodes, such as Flex IGA meshes and adaptively-refined 3D meshes, shouldsetSearchUsingPointLocator(true)to switch to a more thorough octree-based algorithm.Most user interaction with GeometricSearchData is likely to be through objects which inherit from
GeometricSearchInterface. Users can change the algorithm of PenetrationLocator by settingsearch_method=all_proximate_sideson such objects.Both of the capabilities work in parallel and with both distributed and replicated meshes.
Locators can be requested using four different methods on the
GeometricSearchDataAPI: -getQuadraturePenetrationLocator-getPenetrationLocator-getQuadratureNearestNodeLocator-getNearestNodeLocatorThe
*Quadrature*based methods should be used within quadrature-point based objects like: -Materialse.g. theHeatConductionmodule'sGapConductanceobject -IntegratedBCse.g. theHeatConductionmodule'sGapHeatTransferobject - ElementalAuxKernelse.g. the elemental versions ofGapValueAux,NearestNodeDistanceAux, andPenetrationAuxThe non-quadrature based methods should be used for nodal objects such as: -
NodeFaceConstraintse.g. theContactmodule'sMechanicalContactConstraintobject - NodalAuxKernelse.g. the nodal versions ofGapValueAux,NearestNodeDistanceAux, andPenetrationAuxgeometric search objects like
NearestNodeLocatorandPenetrationLocatorshould hold to their geometric purpose and not call algebraic APIs likeFEProblemBase::preparewhich will querylibMesh::DofObjectinformation. This information may or may not have been initialized at the time that geometric search objects are being updated, so any query attempt may result in failed assertions or segmentation faults.