#include <TetLinearCoordConn.h>
Public Member Functions | |
virtual void | subdivide () |
Purpose : Subdivide a tetrahedron in 8 smaller ones. | |
Static Public Attributes | |
static const int | NUM_EDGES = TetLinearTraits::NUM_EDGES |
Protected Member Functions | |
virtual Element * | makeElem (const size_t elemIndex) const |
Return an instance of 3D with linear shape functions and linear tetrahedron as geometry. | |
Private Member Functions | |
void | getEdgeNeighborList (std::vector< std::vector< std::vector< int > > > &neighbors) const |
void TetLinearCoordConn::getEdgeNeighborList | ( | std::vector< std::vector< std::vector< int > > > & | neighbors | ) | const [inline, private] |
neighbors,: | the output vector for each element p, populate an indexed list L of pairs (q,j), where i is index of each pair, such that p shares it's i with q's edge j. There should be a corresponding entry (p,i) in q's list at index j. |
virtual Element* TetLinearCoordConn::makeElem | ( | const size_t | elemIndex | ) | const [inline, protected, virtual] |
Return an instance of 3D with linear shape functions and linear tetrahedron as geometry.
Implements CoordConn.
virtual void TetLinearCoordConn::subdivide | ( | ) | [inline, virtual] |
Purpose : Subdivide a tetrahedron in 8 smaller ones.
Algorithm to subdivide a test: Parent tet: ABCD. Since a consistent numbering of edges is crucial, the following convention is adopted : 1 - AB, 2-BC, 3-CA, 4-CD, 5-AD, 6-BD. Midpoints of edges AB,BC,CA,CD,AD,BD are M1, M2, M3, M4, M5, M6 resply.
Tet1: A-M1-M3-M5, Tet2: M1-B-M2-M6, Tet3: M3-M2-C-M4, Tet4: M5-M6-M4-D,
Tet5: M1-M4-M5-M6, Tet6: M1-M4-M6-M2, Tet7: M1-M4-M2-M3, Tet8: M1-M4-M3-M5.
Implements CoordConn.
const int TetLinearCoordConn::NUM_EDGES = TetLinearTraits::NUM_EDGES [static] |