TransformIF Class Reference

#include <TransformIF.H>

Inheritance diagram for TransformIF:

Inheritance graph
Collaboration diagram for TransformIF:

Collaboration graph

List of all members.

Detailed Description

This implicit function is a tranformed version of the implicit function passed in the constructor. Various transformations (in 2D and 3D) are allowed including translating, scaling, and rotations.

Public Member Functions

 TransformIF (const BaseIF &a_impFunc)
 TransformIF (const TransformIF &a_inputIF)
 Copy constructor.
virtual ~TransformIF ()
void translate (const RealVect &a_trans)
void scale (const Real &a_scale)
void scale (const RealVect &a_scale)
void rotate (const Real &a_angle, const RealVect &a_point=RealVect::Zero, const RealVect &a_axis=BASISREALV(0))
void rotate (const RealVect &a_axis1, const RealVect &a_axis2, const RealVect &a_point=RealVect::Zero)
virtual Real value (const RealVect &a_point) const
Real value (const IndexTM< Real, GLOBALDIM > &a_point) const
virtual IndexTM< Real, GLOBALDIM > normal (const IndexTM< Real, GLOBALDIM > &a_point) const
virtual Vector< IndexTM< Real,
gradNormal (const IndexTM< Real, GLOBALDIM > &a_point) const
virtual BaseIFnewImplicitFunction () const
virtual bool fastIntersection (const RealVect &a_lo, const RealVect &a_hi) const
virtual GeometryService::InOut InsideOutside (const RealVect &a_lo, const RealVect &a_hi) const

Protected Member Functions

 TransformIF (const BaseIF &a_impFunc, const Real a_transform[SpaceDim+1][SpaceDim+1], const Real a_invTransform[SpaceDim+1][SpaceDim+1])
void vectorMultiply (RealVect &m_outPoint, const Real m_intrans[SpaceDim+1][SpaceDim+1], const RealVect &m_inPoint) const
void vectorMultiply (IndexTM< Real, GLOBALDIM > &m_outPoint, const Real m_intrans[SpaceDim+1][SpaceDim+1], const IndexTM< Real, GLOBALDIM > &m_inPoint) const
void matrixIdentity (Real m_trans[SpaceDim+1][SpaceDim+1]) const
void matrixMultiply (Real m_outTrans[SpaceDim+1][SpaceDim+1], const Real m_intrans1[SpaceDim+1][SpaceDim+1], const Real m_intrans2[SpaceDim+1][SpaceDim+1]) const
void matrixTranslate (Real m_trans[SpaceDim+1][SpaceDim+1], const RealVect &m_translate) const
void matrixScale (Real m_trans[SpaceDim+1][SpaceDim+1], const RealVect &m_scale) const

Protected Attributes

Real m_transform [SpaceDim+1][SpaceDim+1]
Real m_invTransform [SpaceDim+1][SpaceDim+1]

Private Member Functions

 TransformIF ()
void operator= (const TransformIF &a_inputIF)

Constructor & Destructor Documentation

TransformIF::TransformIF ( const BaseIF a_impFunc  ) 

Constructor specifying the implicit function

TransformIF::TransformIF ( const TransformIF a_inputIF  ) 

Copy constructor.

virtual TransformIF::~TransformIF (  )  [virtual]


TransformIF::TransformIF ( const BaseIF a_impFunc,
const Real  a_transform[SpaceDim+1][SpaceDim+1],
const Real  a_invTransform[SpaceDim+1][SpaceDim+1] 
) [protected]

Constructor for the factory

TransformIF::TransformIF (  )  [inline, private]

References MayDay::Error().

Member Function Documentation

void TransformIF::translate ( const RealVect a_trans  ) 

Translate by a_trans

void TransformIF::scale ( const Real a_scale  ) 

Scale (uniformly) by a_scale

void TransformIF::scale ( const RealVect a_scale  ) 

Scale in each direction (idir) by a_scale[idir]

void TransformIF::rotate ( const Real a_angle,
const RealVect a_point = RealVect::Zero,
const RealVect a_axis = BASISREALV(0) 

In 2D - rotate by a_angle about a_point, a_axis is ignored. In 3D - rotate by a_angle about the line in space specified by a_point and and a_axis.

void TransformIF::rotate ( const RealVect a_axis1,
const RealVect a_axis2,
const RealVect a_point = RealVect::Zero 

About a_point, Rotate vector a_axis1 to align with vector a_axis2

virtual Real TransformIF::value ( const RealVect a_point  )  const [virtual]

Return the value of the function at a_point.

Implements BaseIF.

Real TransformIF::value ( const IndexTM< Real, GLOBALDIM > &  a_point  )  const [virtual]

Return the value of the function at a_point (of type INdexTM).

Reimplemented from BaseIF.

virtual IndexTM<Real,GLOBALDIM> TransformIF::normal ( const IndexTM< Real, GLOBALDIM > &  a_point  )  const [virtual]

Return the normalized gradient of the function at a_point. The gradients and normals are based on value, which yields outward-pointing normals (which is different the computational computation elsewhere in Chombo).

Reimplemented from BaseIF.

virtual Vector< IndexTM<Real,GLOBALDIM> > TransformIF::gradNormal ( const IndexTM< Real, GLOBALDIM > &  a_point  )  const [virtual]

Return the gradient of the normal at a_point.

Reimplemented from BaseIF.

virtual BaseIF* TransformIF::newImplicitFunction (  )  const [virtual]

Return a newly allocated derived class. The responsibility for deleting the memory is left to the calling function.

Implements BaseIF.

virtual bool TransformIF::fastIntersection ( const RealVect a_lo,
const RealVect a_hi 
) const [virtual]

Reimplemented from BaseIF.

virtual GeometryService::InOut TransformIF::InsideOutside ( const RealVect a_lo,
const RealVect a_hi 
) const [virtual]

Reimplemented from BaseIF.

void TransformIF::vectorMultiply ( RealVect m_outPoint,
const Real  m_intrans[SpaceDim+1][SpaceDim+1],
const RealVect m_inPoint 
) const [protected]

void TransformIF::vectorMultiply ( IndexTM< Real, GLOBALDIM > &  m_outPoint,
const Real  m_intrans[SpaceDim+1][SpaceDim+1],
const IndexTM< Real, GLOBALDIM > &  m_inPoint 
) const [protected]

void TransformIF::matrixIdentity ( Real  m_trans[SpaceDim+1][SpaceDim+1]  )  const [protected]

void TransformIF::matrixMultiply ( Real  m_outTrans[SpaceDim+1][SpaceDim+1],
const Real  m_intrans1[SpaceDim+1][SpaceDim+1],
const Real  m_intrans2[SpaceDim+1][SpaceDim+1] 
) const [protected]

void TransformIF::matrixTranslate ( Real  m_trans[SpaceDim+1][SpaceDim+1],
const RealVect m_translate 
) const [protected]

void TransformIF::matrixScale ( Real  m_trans[SpaceDim+1][SpaceDim+1],
const RealVect m_scale 
) const [protected]

void TransformIF::operator= ( const TransformIF a_inputIF  )  [inline, private]

References MayDay::Error().

Member Data Documentation

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

Generated on Tue Apr 14 14:24:01 2009 for Chombo + EB by  doxygen 1.5.5