mesh::Tet Class Reference

#include <tet.h>

Inheritance diagram for mesh::Tet:

Inheritance graph
[legend]
Collaboration diagram for mesh::Tet:

Collaboration graph
[legend]
List of all members.

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
Faceget_face (int i) const
Edgeget_edge (int i) const
Pointget_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 &center, Vector3 &extent) const
TetMeshget_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

Detailed Description

Tetrahedron
Author:
Roman Geus

Definition at line 35 of file tet.h.


Constructor & Destructor Documentation

mesh::Tet::Tet ( const TetMesh mesh,
id_t  id,
id_t  corners[4],
id_t  material 
)

Constructor. Initialises all member variables. Enforces the positive orientation of the tetrahedron by potentially swapping two corners.

Parameters:
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:

mesh::Tet::~Tet (  )  [inline]

Destructor.

Definition at line 48 of file tet.h.


Member Function Documentation

void mesh::Tet::cartesian_to_simplex ( const Vector3 cartesian,
Vector4 simplex 
) const

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:

void mesh::Tet::get_bounding_box ( Vector3 center,
Vector3 extent 
) const

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.

Parameters:
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).
See also:
nedelecelement.cpp and Tetmesh::generateEdges() for details about numbering.

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.

Parameters:
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 
)

Set id local edge i.

Definition at line 53 of file tet.cpp.

References _edges.

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 
)

Set id local Face i.

Definition at line 49 of file tet.cpp.

References _faces.


Member Data Documentation

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]

Definition at line 236 of file tet.h.

Referenced by get_edge_id(), and set_edge_id().

id_t mesh::Tet::_faces[4] [private]

Definition at line 237 of file tet.h.

Referenced by get_face_id(), and set_face_id().

id_t mesh::Tet::_material [private]

Definition at line 238 of file tet.h.

Referenced by get_material_ID().


The documentation for this class was generated from the following files:
Generated on Fri Oct 26 13:35:18 2007 for FEMAXX (Finite Element Maxwell Eigensolver) by  doxygen 1.4.7