Chombo + EB  3.0
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
TransformIF Class Reference

#include <TransformIF.H>

Inheritance diagram for TransformIF:
Inheritance graph
[legend]

Public Member Functions

 TransformIF (const BaseIF &a_impFunc)
 
 TransformIF (const TransformIF &a_inputIF)
 Copy constructor. More...
 
virtual ~TransformIF ()
 Destructor. More...
 
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 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
 
virtual void boxLayoutChanged (const DisjointBoxLayout &a_newBoxLayout, const RealVect &a_dx)
 
- Public Member Functions inherited from BaseIF
 BaseIF ()
 Default constructor. More...
 
virtual ~BaseIF ()
 Default destructor. More...
 
virtual Real value (const IndexTM< int, GLOBALDIM > &a_partialDerivative, const IndexTM< Real, GLOBALDIM > &a_point) const
 
virtual bool fastIntersection (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
 
virtual GeometryService::InOut InsideOutside (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
 
virtual void print (ostream &out) 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]
 
BaseIFm_impFunc
 

Private Member Functions

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

Additional Inherited Members

- Static Public Member Functions inherited from BaseIF
static void corners (const Box &a_region, const RealVect &a_origin, const Real &a_dx, RealVect &a_lo, RealVect &a_hi)
 

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.

Constructor & Destructor Documentation

◆ TransformIF() [1/4]

TransformIF::TransformIF ( const BaseIF a_impFunc)

Constructor specifying the implicit function

◆ TransformIF() [2/4]

TransformIF::TransformIF ( const TransformIF a_inputIF)

Copy constructor.

◆ ~TransformIF()

virtual TransformIF::~TransformIF ( )
virtual

Destructor.

◆ TransformIF() [3/4]

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() [4/4]

TransformIF::TransformIF ( )
inlineprivate

References MayDay::Abort().

Referenced by boxLayoutChanged().

Member Function Documentation

◆ translate()

void TransformIF::translate ( const RealVect a_trans)

Translate by a_trans

◆ scale() [1/2]

void TransformIF::scale ( const Real a_scale)

Scale (uniformly) by a_scale

◆ scale() [2/2]

void TransformIF::scale ( const RealVect a_scale)

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

◆ rotate() [1/2]

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.

◆ rotate() [2/2]

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

◆ value() [1/2]

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

Return the value of the function at a_point.

Implements BaseIF.

◆ value() [2/2]

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.

◆ newImplicitFunction()

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.

◆ fastIntersection()

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

Reimplemented from BaseIF.

◆ InsideOutside()

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

Reimplemented from BaseIF.

◆ boxLayoutChanged()

virtual void TransformIF::boxLayoutChanged ( const DisjointBoxLayout a_newBoxLayout,
const RealVect a_dx 
)
inlinevirtual

Pass this call onto the IFs contained in this IF class.

Reimplemented from BaseIF.

References BaseIF::boxLayoutChanged(), m_impFunc, SpaceDim, and TransformIF().

◆ vectorMultiply() [1/2]

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

◆ vectorMultiply() [2/2]

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

◆ matrixIdentity()

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

◆ matrixMultiply()

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

◆ matrixTranslate()

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

◆ matrixScale()

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

◆ operator=()

void TransformIF::operator= ( const TransformIF a_inputIF)
inlineprivate

References MayDay::Abort().

Member Data Documentation

◆ m_transform

Real TransformIF::m_transform[SpaceDim+1][SpaceDim+1]
protected

◆ m_invTransform

Real TransformIF::m_invTransform[SpaceDim+1][SpaceDim+1]
protected

◆ m_impFunc

BaseIF* TransformIF::m_impFunc
protected

Referenced by boxLayoutChanged().


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