Transformable Class Reference

Transformable is a base class for all classes that perform some kind of precalculation of function values on elements. These classes (PrecalcShapeset, 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_t idx)
 Sets the current transform at once as if it was created by multiple calls to push_transform().
uint64_t get_transform () const
void reset_transform ()
 Empties the stack, loads identity transform.
double get_transform_jacobian () const
Trfget_ctm () const
int get_depth () const

Protected Attributes

Elementelement
 the active element
Trfctm
 current sub-element transformation matrix
uint64_t sub_idx
 sub-element transformation index. Data type is equal to the type used by Judy.
Trf stack [21]
 transformation matrix stack
int top
 stack top

Static Protected Attributes

static const uint64_t H2D_MAX_IDX = 0x4000
 largest sub_idx for top <= 10. Data type is equal to the type used by Judy.

Detailed Description

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


Constructor & Destructor Documentation

Transformable::Transformable (  )  [inline]
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.
int Transformable::get_depth (  )  const [inline]
Returns:
The depth of the current transformation.
uint64_t 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.
virtual void Transformable::pop_transform (  )  [inline, 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, Function< TYPE >, and RefMap.

virtual void Transformable::push_transform ( int  son  )  [inline, 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:
son [in] Son element number in the range [0-3] for triangles and [0-7] for quads.

Reimplemented in Filter, Function< TYPE >, and RefMap.

void Transformable::reset_transform (  )  [inline]

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:
e [in] Element associated with the function being represented by the class.

Reimplemented in Filter, LinearFilter, PrecalcShapeset, RefMap, MeshFunction, and Solution.

void Transformable::set_transform ( uint64_t  idx  ) 

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

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

Member Data Documentation

Trf* Transformable::ctm [protected]

current sub-element transformation matrix

the active element

const uint64_t Transformable::H2D_MAX_IDX = 0x4000 [static, protected]

largest sub_idx for top <= 10. Data type is equal to the type used by Judy.

Trf Transformable::stack[21] [protected]

transformation matrix stack

uint64_t Transformable::sub_idx [protected]

sub-element transformation index. Data type is equal to the type used by Judy.

int Transformable::top [protected]

stack top


The documentation for this class was generated from the following files:
Generated on Sat Jun 5 15:17:43 2010 for Hermes2D Library: Real Version by  doxygen 1.6.3