LatheIF Class Reference

#include <LatheIF.H>

Inheritance diagram for LatheIF:

Inheritance graph
[legend]

List of all members.


Detailed Description

This implicit function takes one or two implicit functions and uses them to produce a generalized surface of revolution.

In 3D, if one function is given, then it is restricted to x >= 0 in the x-y plane (z = 0), revolved around the y axis, and the y axis is rotated to the z axis. In 2D, the function is restricted to x >= 0 and the x axis (y = 0) and revolved around the origin.

In 3D, if two functions are given then the first is restricted to x >= 0 in the x-y plane (z = 0), revolved around the y axis, and the y axis is rotated to the z axis. At each angle between 0 and 2*Pi, the second function restricted to the x axis (y = z = 0) is used to get an angle to rotate the first function in the x-y plane with respect to a given point before it is rotated about the y axis. In 2D, the first function is used as above and the second function is ignored.

Note: the second function (if given) should have the same value at x = 0 and x = 2*Pi (y = z = 0) or a values that differs by some integer multiple of 2*Pi.

Public Member Functions

 LatheIF (const BaseIF &a_impFunc1, const bool &a_inside)
 LatheIF (const BaseIF &a_impFunc1, const BaseIF &a_impFunc2, const RealVect &a_point, const bool &a_inside)
 LatheIF (const LatheIF &a_inputIF)
 Copy constructor.
virtual ~LatheIF ()
 Destructor.
virtual Real value (const RealVect &a_point) const
virtual BaseIFnewImplicitFunction () const
virtual bool fastIntersection (const RealVect &a_low, const RealVect &a_high) const
virtual GeometryService::InOut InsideOutside (const RealVect &a_low, const RealVect &a_high) const
virtual void boxLayoutChanged (const DisjointBoxLayout &a_newBoxLayout, const RealVect &a_dx)

Protected Attributes

BaseIFm_impFunc1
BaseIFm_impFunc2
RealVect m_point
bool m_inside

Private Member Functions

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


Constructor & Destructor Documentation

LatheIF::LatheIF ( const BaseIF a_impFunc1,
const bool &  a_inside 
)

Constructor specifying one implicit function to be rotated and whether the domain is on the inside (a_inside), i.e. where the function is negative.

LatheIF::LatheIF ( const BaseIF a_impFunc1,
const BaseIF a_impFunc2,
const RealVect a_point,
const bool &  a_inside 
)

Constructor specifying two implicit functions, one to be rotated and the other to cause an additional rotation about a_point, and whether the domain is on the inside (a_inside), i.e. where the function is negative.

LatheIF::LatheIF ( const LatheIF a_inputIF  ) 

Copy constructor.

virtual LatheIF::~LatheIF (  )  [virtual]

Destructor.

LatheIF::LatheIF (  )  [inline, private]

References MayDay::Abort().


Member Function Documentation

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

Return the value of the function at a_point.

Implements BaseIF.

virtual BaseIF* LatheIF::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 LatheIF::fastIntersection ( const RealVect a_low,
const RealVect a_high 
) const [inline, virtual]

Reimplemented from BaseIF.

virtual GeometryService::InOut LatheIF::InsideOutside ( const RealVect a_low,
const RealVect a_high 
) const [virtual]

Reimplemented from BaseIF.

virtual void LatheIF::boxLayoutChanged ( const DisjointBoxLayout a_newBoxLayout,
const RealVect a_dx 
) [inline, virtual]

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

Reimplemented from BaseIF.

References BaseIF::boxLayoutChanged(), m_impFunc1, and m_impFunc2.

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

References MayDay::Abort().


Member Data Documentation

Referenced by boxLayoutChanged().

Referenced by boxLayoutChanged().

bool LatheIF::m_inside [protected]


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

Generated on Thu Sep 21 03:43:04 2017 for Chombo + EB by  doxygen 1.5.5