#include <tet.h>
Inheritance diagram for mesh::Tet:
Public Member Functions | |
Tet (const TetMesh &mesh, id_t id, id_t corners[4], id_t material) | |
~Tet () | |
id_t | get_material_ID () const |
double | get_volume () const |
Vector3 | get_center_of_gravity () const |
id_t | get_face_id (int i) const |
void | set_face_id (int i, id_t id) |
id_t | get_edge_id (int i) const |
void | set_edge_id (int i, id_t id) |
id_t | get_corner_id (int i) const |
Face * | get_face (int i) const |
Edge * | get_edge (int i) const |
Point * | get_corner (int i) const |
bool | get_edge_orientation (int edge_lid) const |
void | set_edge_orientation (int edge_lid, bool orientation) |
void | cartesian_to_simplex (const Vector3 &cartesian, Vector4 &simplex) const |
bool | is_inside (const Vector3 &point) const |
bool | is_inside_gracious (const Vector3 &point) const |
bool | is_inside_bounding_box (const Vector3 &point) const |
bool | is_inside_bounding_box_gracious (const Vector3 &point) const |
void | get_bounding_box (Vector3 ¢er, Vector3 &extent) const |
TetMesh * | get_mesh () const |
Static Public Member Functions | |
static void | get_face_point_lids (int face_lid, int &node1_lid, int &node2_lid, int &node3_lid) |
static void | get_face_edge_lids (int face_lid, int &edge1_lid, int &edge2_lid, int &edge3_lid) |
Private Attributes | |
id_t | _corners [4] |
id_t | _edges [6] |
id_t | _faces [4] |
id_t | _material |
unsigned char | _edge_orientation |
Classes | |
class | CoordinateMatrix |
class | GradientMatrix |
Definition at line 35 of file tet.h.
Constructor. Initialises all member variables. Enforces the positive orientation of the tetrahedron by potentially swapping two corners.
id | Identifying number of tetrahedron. | |
corners | Ids of the four corners of the tetrahedron. |
Definition at line 30 of file tet.cpp.
References _corners, and get_volume().
Here is the call graph for this function:
Convert cartesian coordinates to simplex coordinates with respect to Tet.
Definition at line 91 of file tet.cpp.
References linalg::determinant(), get_volume(), colarray::Vector< T >::inject(), mesh::Vector3::x, mesh::Vector3::y, and mesh::Vector3::z.
Referenced by postprocess::LinearFieldInterpolation::eval(), NedelecElement::eval_cartesian(), NedelecElement::eval_curl_cartesian(), is_inside(), and is_inside_gracious().
Here is the call graph for this function:
Stores the Tet's bounding box in "center" and "extent".
Definition at line 133 of file tet.cpp.
References mesh::Point::get_coord(), get_corner(), mesh::Vector3::make_floor(), and max.
Referenced by mesh::TetMesh::construct_octree(), is_inside_bounding_box(), and is_inside_bounding_box_gracious().
Here is the call graph for this function:
Vector3 mesh::Tet::get_center_of_gravity | ( | ) | const |
Calculate center of gravity
standard loop index
Definition at line 74 of file tet.cpp.
References NCORNERTET.
Point * mesh::Tet::get_corner | ( | int | i | ) | const |
Return pointer to Point object for local corner i.
Definition at line 175 of file tet.cpp.
References get_corner_id(), get_mesh(), and mesh::TetMesh::get_point().
Referenced by export_mesh(), NedelecElement::get_AeMe(), and get_bounding_box().
Here is the call graph for this function:
id_t mesh::Tet::get_corner_id | ( | int | i | ) | const [inline] |
Return id of local corner i.
Definition at line 83 of file tet.h.
References _corners.
Referenced by postprocess::LinearFieldInterpolation::eval(), postprocess::VtkExport::export_mesh(), get_corner(), mesh::Face::get_corner_id(), NedelecElement2::get_dof_ids(), and vtk_export_eigenfields().
Edge * mesh::Tet::get_edge | ( | int | i | ) | const |
Return pointer to Edge object for local edge i.
Definition at line 179 of file tet.cpp.
References mesh::TetMesh::get_edge(), get_edge_id(), and get_mesh().
Referenced by NedelecElement2::get_eliminated_dofs(), and NedelecElement1::get_eliminated_dofs().
Here is the call graph for this function:
id_t mesh::Tet::get_edge_id | ( | int | i | ) | const [inline] |
Get id of local Edge i.
Definition at line 74 of file tet.h.
References _edges.
Referenced by NedelecElement2::get_dof_ids(), NedelecElement1::get_dof_ids(), get_edge(), and mesh::Face::get_edge_id().
bool mesh::Tet::get_edge_orientation | ( | int | edge_lid | ) | const [inline] |
Return orientation of local Edge i: true if local orientation matches global orientation
Definition at line 98 of file tet.h.
References _edge_orientation.
Referenced by NedelecElement::get_Ae(), NedelecElement::get_AeMe(), NedelecElement::get_Me(), and NedelecElement::surface_integral_curl().
Face * mesh::Tet::get_face | ( | int | i | ) | const |
Return pointer to Face object for local face i.
Definition at line 183 of file tet.cpp.
References mesh::TetMesh::get_face(), get_face_id(), and get_mesh().
Referenced by NedelecElement2::get_eliminated_dofs().
Here is the call graph for this function:
static void mesh::Tet::get_face_edge_lids | ( | int | face_lid, | |
int & | edge1_lid, | |||
int & | edge2_lid, | |||
int & | edge3_lid | |||
) | [inline, static] |
Compute local ids of edges of a face.
face_lid | Local id of face (input). | |
edge1_lid | Local id of first edge of face (output). | |
edge2_lid | Local id of second edge of face (output). | |
edge3_lid | Local id of third edge of face (output). |
Definition at line 141 of file tet.h.
Referenced by mesh::Face::get_edge_id().
id_t mesh::Tet::get_face_id | ( | int | i | ) | const [inline] |
Get id of local face i.
Definition at line 65 of file tet.h.
References _faces.
Referenced by mesh::Face::get_corner_id(), NedelecElement2::get_dof_ids(), mesh::Face::get_edge_id(), get_face(), and NedelecElement::surface_integral_curl().
static void mesh::Tet::get_face_point_lids | ( | int | face_lid, | |
int & | node1_lid, | |||
int & | node2_lid, | |||
int & | node3_lid | |||
) | [inline, static] |
Compute local ids of corners of a face.
face_lid | Local id of face (input). | |
node1_lid | Local id of first node of face (output). | |
node2_lid | Local id of second node of face (output). | |
node3_lid | Local id of third node of face (output). |
Definition at line 126 of file tet.h.
Referenced by mesh::TetMesh::generateFaces(), and mesh::Face::get_corner_id().
id_t mesh::Tet::get_material_ID | ( | ) | const |
Material of the tetrahedron.
Definition at line 64 of file tet.cpp.
References _material.
Referenced by NedelecElement::get_AeMe().
TetMesh * mesh::Tet::get_mesh | ( | ) | const |
Return pointer to TetMesh this Tet is part of.
Definition at line 187 of file tet.cpp.
References mesh::TetMesh::get_instance().
Referenced by mesh::Tet::CoordinateMatrix::CoordinateMatrix(), NedelecElement::get_AeMe(), get_corner(), get_edge(), and get_face().
Here is the call graph for this function:
double mesh::Tet::get_volume | ( | ) | const |
Volume of the tetrahedron.
Definition at line 68 of file tet.cpp.
References linalg::determinant().
Referenced by cartesian_to_simplex(), NedelecElement::get_Ae(), NedelecElement::get_Me(), and Tet().
Here is the call graph for this function:
bool mesh::Tet::is_inside | ( | const Vector3 & | point | ) | const |
Return true if "point" is inside the Tet.
Definition at line 107 of file tet.cpp.
References cartesian_to_simplex().
Referenced by mesh::TetMesh::construct_octree().
Here is the call graph for this function:
bool mesh::Tet::is_inside_bounding_box | ( | const Vector3 & | point | ) | const [inline] |
Return true if point is inside the Tet's bounding box.
Definition at line 202 of file tet.h.
References get_bounding_box(), mesh::Vector3::x, mesh::Vector3::y, and mesh::Vector3::z.
Here is the call graph for this function:
bool mesh::Tet::is_inside_bounding_box_gracious | ( | const Vector3 & | point | ) | const [inline] |
Return true if point is inside the Tet's bounding box (with grace tolerance).
Definition at line 213 of file tet.h.
References get_bounding_box(), mesh::Vector3::x, mesh::Vector3::y, and mesh::Vector3::z.
Here is the call graph for this function:
bool mesh::Tet::is_inside_gracious | ( | const Vector3 & | point | ) | const |
Return true if "point" is inside the Tet. The algorithm deciding whether a point is inside the Tet uses a "grace"-tolerance.
Definition at line 119 of file tet.cpp.
References cartesian_to_simplex().
Here is the call graph for this function:
void mesh::Tet::set_edge_id | ( | int | i, | |
id_t | id | |||
) |
void mesh::Tet::set_edge_orientation | ( | int | edge_lid, | |
bool | orientation | |||
) |
Set orientation of local edge i. The orientation is true, if the local orientation matches global orientation.
Definition at line 57 of file tet.cpp.
References _edge_orientation.
void mesh::Tet::set_face_id | ( | int | i, | |
id_t | id | |||
) |
id_t mesh::Tet::_corners[4] [private] |
Definition at line 235 of file tet.h.
Referenced by mesh::Tet::CoordinateMatrix::CoordinateMatrix(), get_corner_id(), and Tet().
unsigned char mesh::Tet::_edge_orientation [private] |
Bitset that stores the orientation of edges: Bit i is set if local orientation of local edge i matches its global orientation. Initialised in TetMesh::generateEdges().
Definition at line 243 of file tet.h.
Referenced by get_edge_orientation(), and set_edge_orientation().
id_t mesh::Tet::_edges[6] [private] |
id_t mesh::Tet::_faces[4] [private] |
id_t mesh::Tet::_material [private] |