class FESurfaceDistanceEvaluator is a utility class which is used to identify which line (triangle) in 2D (3D) elements are intersecting which grid cells.
#include <ibamr/FESurfaceDistanceEvaluator.h>
|
| | FESurfaceDistanceEvaluator (std::string object_name, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > patch_hierarchy, const libMesh::Mesh &mesh, const libMesh::BoundaryMesh &bdry_mesh, const int gcw=1, bool use_extracted_bdry_mesh=true) |
| | The only constructor of this class. More...
|
| |
| | ~FESurfaceDistanceEvaluator ()=default |
| | Default dstructor. More...
|
| |
| void | mapIntersections () |
| | Map the triangles intersecting a particular grid cell. More...
|
| |
| void | calculateSurfaceNormals () |
| | Compute the face normal of the surface elements. More...
|
| |
| const std::map< SAMRAI::pdat::CellIndex< NDIM >, std::set< const libMesh::Elem * >, IBTK::CellIndexFortranOrder > & | getNeighborIntersectionsMap () |
| | Get the map maintaining triangle-cell intersection and neighbors. More...
|
| |
| void | computeSignedDistance (int n_idx, int d_idx) |
| | Compute the signed distance in the viscinity of the finite element mesh. More...
|
| |
| void | updateSignAwayFromInterface (int d_idx, SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > patch_hierarchy, double large_distance=s_large_distance) |
| | Update the sign of the distance function away from the finite element mesh. More...
|
| |
◆ FESurfaceDistanceEvaluator() [1/3]
| IBAMR::FESurfaceDistanceEvaluator::FESurfaceDistanceEvaluator |
( |
std::string |
object_name, |
|
|
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > |
patch_hierarchy, |
|
|
const libMesh::Mesh & |
mesh, |
|
|
const libMesh::BoundaryMesh & |
bdry_mesh, |
|
|
const int |
gcw = 1, |
|
|
bool |
use_extracted_bdry_mesh = true |
|
) |
| |
◆ ~FESurfaceDistanceEvaluator()
| IBAMR::FESurfaceDistanceEvaluator::~FESurfaceDistanceEvaluator |
( |
| ) |
|
|
default |
◆ FESurfaceDistanceEvaluator() [2/3]
| IBAMR::FESurfaceDistanceEvaluator::FESurfaceDistanceEvaluator |
( |
| ) |
|
|
privatedelete |
◆ FESurfaceDistanceEvaluator() [3/3]
◆ mapIntersections()
| void IBAMR::FESurfaceDistanceEvaluator::mapIntersections |
( |
| ) |
|
◆ calculateSurfaceNormals()
| void IBAMR::FESurfaceDistanceEvaluator::calculateSurfaceNormals |
( |
| ) |
|
◆ getNeighborIntersectionsMap()
◆ computeSignedDistance()
| void IBAMR::FESurfaceDistanceEvaluator::computeSignedDistance |
( |
int |
n_idx, |
|
|
int |
d_idx |
|
) |
| |
◆ updateSignAwayFromInterface()
◆ checkIntersection2D()
(box_tl) *--------------* (box_tr)
| |
| |
| |
| |
| |
(box_bl) *--------------* (box_br)
◆ checkIntersection3D()
^ --------------
| | | vert0
box_half_dx[1] | | | * | | | / \ ^ | * | / \ | box_center | / \ | | / \ | | / \ -----------— --------— <----—> box_half_dx[0] vert1 vert2
◆ operator=()
◆ collectNeighboringPatchElements()
| void IBAMR::FESurfaceDistanceEvaluator::collectNeighboringPatchElements |
( |
int |
level_number | ) |
|
|
private |
In this method, the determination as to whether an element is local or not is based on the physical location of its nodes and centroid.
◆ getClosestPointandAngleWeightedNormal3D()
◆ s_large_distance
| const double IBAMR::FESurfaceDistanceEvaluator::s_large_distance |
|
static |
◆ d_object_name
| std::string IBAMR::FESurfaceDistanceEvaluator::d_object_name |
|
private |
◆ d_patch_hierarchy
Pointer to Patch Hierarchy.
◆ d_mesh
| const libMesh::Mesh& IBAMR::FESurfaceDistanceEvaluator::d_mesh |
|
private |
◆ d_bdry_mesh
| const libMesh::BoundaryMesh& IBAMR::FESurfaceDistanceEvaluator::d_bdry_mesh |
|
private |
◆ d_gcw
| int IBAMR::FESurfaceDistanceEvaluator::d_gcw |
|
private |
The desired ghost cell width.
◆ d_use_vol_extracted_bdry_mesh
| bool IBAMR::FESurfaceDistanceEvaluator::d_use_vol_extracted_bdry_mesh |
|
private |
Check if we are using volume extracted boundary mesh.
◆ d_supported_elem_type
| libMesh::ElemType IBAMR::FESurfaceDistanceEvaluator::d_supported_elem_type |
|
private |
The supported element type for this class.
◆ d_active_neighbor_patch_bdry_elem_map
| std::vector<std::vector<const libMesh::Elem*> > IBAMR::FESurfaceDistanceEvaluator::d_active_neighbor_patch_bdry_elem_map |
|
private |
Data to manage mapping between boundary mesh elements and grid patches.
◆ d_cell_elem_neighbor_map
Map object keeping track of element-cell intersections as well as elements intersecting that cell and its neighboring cells within the ghost cell width. Note that the elements contained in thie map belong to the original solid mesh.
◆ d_node_to_elem
| std::map<const libMesh::Node*, std::set<const libMesh::Elem*> > IBAMR::FESurfaceDistanceEvaluator::d_node_to_elem |
|
private |
Map the node and the set of elements sharing this node.
◆ d_edge_to_elem
| std::map<std::pair<const libMesh::Node*, const libMesh::Node*>, std::set<const libMesh::Elem*> > IBAMR::FESurfaceDistanceEvaluator::d_edge_to_elem |
|
private |
Map the edge and the set of elements sharing this edge.
◆ d_elem_face_normal
| std::map<const libMesh::Elem*, IBTK::VectorNd> IBAMR::FESurfaceDistanceEvaluator::d_elem_face_normal |
|
private |
Map the element and its face normal.
◆ d_large_struct_box
Object to create a bounding box for sign update sweeping algorithm.
The documentation for this class was generated from the following file: