Transformable Class Reference

Transformable is a base class for all classes that perform some kind of precalculation of function values on elements. These classes (ShapeFunction, Solution, RefMap) inherit from Transformable the ability to transform integration points to the sub-elements of an element. More...

#include <transform.h>

Inherited by Function< TYPE >, and RefMap.

List of all members.

Public Member Functions

 Transformable ()
virtual ~Transformable ()
virtual void set_active_element (Element *e)
 Called by the assembling procedure and by other functions. In PrecalcShapeset it sets an internal variable that can be later retrieved by get_active_element(). In Solution it selects the element to retrieve solution values for, etc.
Elementget_active_element () const
virtual void push_transform (int son)
 Multiplies the current transformation matrix on the right by a transformation to the specified son element and pushes it on top of the matrix stack. All integration points will then be transformed to this sub-element. This process can be repeated.
virtual void pop_transform ()
 Removes the current transformation matrix from the top of the stack. The new top becomes the current transformation matrix. This returns the transform to the state before the last push_transform() was performed.
void set_transform (uint64 idx)
 Sets the current transform at once as if it was created by multiple calls to push_transform().
uint64 get_transform () const
void reset_transform ()
 Empties the stack, loads identity transform.
double get_transform_jacobian () const
Trfget_ctm () const

Protected Attributes

Elementelement
Trfctm
 the active element
uint64 sub_idx
 current sub-element transformation matrix
Trf stack [H3D_STACK_SIZE]
int top
 transformation matrix stack

Static Protected Attributes

static const int H3D_STACK_SIZE = 10
static const unsigned max_idx = 0x4000
 sub-element transformation index
static Trf hex_trf []
 stack top
static Trf tetra_trf []

Friends

class Projection

Detailed Description

Transformable is a base class for all classes that perform some kind of precalculation of function values on elements. These classes (ShapeFunction, Solution, RefMap) inherit from Transformable the ability to transform integration points to the sub-elements of an element.

The purpose of this class to transform elements to sub-elements (multi-mesh)


Constructor & Destructor Documentation

Transformable::Transformable (  ) 
virtual Transformable::~Transformable (  )  [inline, virtual]

Member Function Documentation

Element* Transformable::get_active_element (  )  const [inline]
Returns:
The element associated with the function being represented by the class.
Trf* Transformable::get_ctm (  )  const [inline]
Returns:
The current transformation matrix.
uint64 Transformable::get_transform (  )  const [inline]
Returns:
The current transform index.
double Transformable::get_transform_jacobian (  )  const [inline]
Returns:
The jacobian of the current transformation matrix.
void Transformable::pop_transform (  )  [virtual]

Removes the current transformation matrix from the top of the stack. The new top becomes the current transformation matrix. This returns the transform to the state before the last push_transform() was performed.

Reimplemented in Filter, and RefMap.

void Transformable::push_transform ( int  son  )  [virtual]

Multiplies the current transformation matrix on the right by a transformation to the specified son element and pushes it on top of the matrix stack. All integration points will then be transformed to this sub-element. This process can be repeated.

Parameters:
[in] son - Son element number in the range [0-25] for hexes.

Reimplemented in Filter, and RefMap.

void Transformable::reset_transform (  ) 

Empties the stack, loads identity transform.

virtual void Transformable::set_active_element ( Element e  )  [inline, virtual]

Called by the assembling procedure and by other functions. In PrecalcShapeset it sets an internal variable that can be later retrieved by get_active_element(). In Solution it selects the element to retrieve solution values for, etc.

Parameters:
[in] e - Element associated with the function being represented by the class.

Reimplemented in Filter, RefMap, ShapeFunction, MeshFunction, and Solution.

void Transformable::set_transform ( uint64  idx  ) 

Sets the current transform at once as if it was created by multiple calls to push_transform().

Parameters:
[in] idx The number of the sub-element, as returned by get_transform().

Friends And Related Function Documentation

friend class Projection [friend]

Member Data Documentation

Trf* Transformable::ctm [protected]

the active element

const int Transformable::H3D_STACK_SIZE = 10 [static, protected]
Trf Transformable::hex_trf [static, protected]

stack top

const unsigned Transformable::max_idx = 0x4000 [static, protected]

sub-element transformation index

current sub-element transformation matrix

Trf Transformable::tetra_trf [static, protected]
Initial value:
 {
        { { 1, 1, 1 }, { 0, 0, 0 } }                    
}
int Transformable::top [protected]

transformation matrix stack


The documentation for this class was generated from the following files:
Generated on Fri Sep 3 09:22:20 2010 for Hermes3D Library: Real Version by  doxygen 1.6.3