imaging::Tetrahedra3dTransform Class Reference
[Finite Element Module]

Transformation of the tetrahedra reference element. More...

#include <Transform.hpp>

Inheritance diagram for imaging::Tetrahedra3dTransform:

imaging::Transform< 4, 4, 3 >

List of all members.

Public Member Functions

ublas::fixed_matrix< float_t, 3, 2 > & boundary_derivative (size_t face, const ublas::fixed_vector< float_t, 2 > &in, ublas::fixed_matrix< float_t, 3, 2 > &out) const
ublas::fixed_vector< float_t, 3 > & value (const ublas::fixed_vector< float_t, 3 > &in, ublas::fixed_vector< float_t, 3 > &out) const
ublas::fixed_matrix< float_t, 3, 3 > & derivative (const ublas::fixed_vector< float_t, 3 > &in, ublas::fixed_matrix< float_t, 3, 3 > &out) const
ublas::fixed_vector< float_t, 3 > & boundary2element (size_t face_index, const ublas::fixed_vector< float_t, 2 > &in, ublas::fixed_vector< float_t, 3 > &out) const
ublas::fixed_vector< float_t, 3 > & boundary_normal (size_t face, ublas::fixed_vector< float_t, 3 > &out) const

Static Public Member Functions

static size_t face_vertex (size_t face, size_t vertex)


Detailed Description

Transformation of the tetrahedra reference element.

This class implements the transformation of the tetrahedra determined by the vertices (0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1) (the reference element) to tetrahera elements and the transformation of the interval [-1, 1] (the boundary reference element) to the faces of this tetrahedra.

The class provides functions to transform coordinates on the reference element to grid coordinates and computes the derivate of this transformation. Furthermore, the classes transform coordinates on the boundary reference elements of the reference element (i.e. the reference elements of the faces of the reference element) to coordinates on the reference element.

See also:
Transform, Square2dTransform, Interval1dTransform

Member Function Documentation

size_t imaging::Tetrahedra3dTransform::face_vertex ( size_t  face_index,
size_t  face_vertex_index 
) [static]

Returns the vertex index (on the element) of the vertex determined by face_index and face_vertex_index (on the boundary reference element). E.g. the vertex 1 (there are only vertices 0 and 1 on the boundary reference element) on the face 2 of the square reference element (there are 4 faces with indices from zero to 3) is mapped to vertex 3 on the reference element.

Reimplemented from imaging::Transform< 4, 4, 3 >.

Referenced by imaging::Linear3dShapeFunction::face_node().

ublas::fixed_matrix< float_t, 3, 2 > & imaging::Tetrahedra3dTransform::boundary_derivative ( size_t  face,
const ublas::fixed_vector< float_t, 2 > &  in,
ublas::fixed_matrix< float_t, 3, 2 > &  out 
) const

Computes the derivate of the element transform along the face face_index at in (on the boundary reference element) and stores it in out.

References imaging::Transform< 4, 4, 3 >::_vertices.

ublas::fixed_vector< float_t, 3 > & imaging::Tetrahedra3dTransform::value ( const ublas::fixed_vector< float_t, 3 > &  in,
ublas::fixed_vector< float_t, 3 > &  out 
) const

Computes the coordinates of in (on the reference element) and stores them in out.

References imaging::Transform< 4, 4, 3 >::_vertices.

ublas::fixed_matrix< float_t, 3, 3 > & imaging::Tetrahedra3dTransform::derivative ( const ublas::fixed_vector< float_t, 3 > &  in,
ublas::fixed_matrix< float_t, 3, 3 > &  out 
) const

Computes the derivate of the element transform at in (on the reference element) and stores it in out.

References imaging::Transform< 4, 4, 3 >::_vertices.

ublas::fixed_vector< float_t, 3 > & imaging::Tetrahedra3dTransform::boundary2element ( size_t  face_index,
const ublas::fixed_vector< float_t, 2 > &  in,
ublas::fixed_vector< float_t, 3 > &  out 
) const

Transforms the coordinates in on the boundary reference element of the face face_index to coordinates on the reference element and stores them in out.

ublas::fixed_vector< float_t, 3 > & imaging::Tetrahedra3dTransform::boundary_normal ( size_t  face,
ublas::fixed_vector< float_t, 3 > &  out 
) const

Computes the unit boundary normal at the face face_index at in (on the boundary reference element) of the reference element and stores it in out. If the boundaries of the element are linear segments (which is probably always the case), then this function does actually not depend on in. This means the boundary_normal() merely ressembles a look-up table which matches face_index with face normal on the reference element.

References imaging::Transform< 4, 4, 3 >::_vertices.


The documentation for this class was generated from the following files:

Generated on Tue Feb 10 10:01:31 2009 for imaging2 by  doxygen 1.5.5