- Sometimes information needs to be exchanged between disconnected pieces of mesh.
- Examples include:
- Mechanical Contact
- Gap Heat Conduction
- Mesh Tying
- The Geometric Search system allows an application to track evolving geometric relationships.
- Currently, this entails two main capabilities:
- Both of the capabilities work in parallel and with both Parallel- and Serial-Mesh.
- NearestNodeLocator provides the nearest node on a "Master" boundary for each node on a "Slave" boundary (and the other way around).
- The distance between the two nodes is also provided.
- It works by generating a "Neighborhood" of nodes on the Master side that are close to the Slave node.
- The size of the Neighborhood can be controlled in the input file by setting the
patch_size parameter in the
- To use a NearestNodeLocator
getNearestNodeLocator(master_id, slave_id) to create the object.
- The functions
nearestNode() both take a node ID and return either the distance to the nearest node or a
Node pointer for the nearest node respectively.
- A PenetrationLocator provides the perpendicular distance from a Slave node to a Master side and the "contact point" on the Master side.
- The distance returned is negative if penetration hasn't yet occurred and positive if it has.
- To get a NearestNodeLocator
#include "PenetrationLocator.h" and call
getPenetrationLocator(master_id, slave_id) to create the object.
- The algorithm in PenetrationLocator utilizes a NearestNodeLocator so
patch_size is still important.