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

#include <LatheIF.H>

Inheritance diagram for LatheIF:
Inheritance graph
[legend]

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. More...
 
virtual ~LatheIF ()
 Destructor. More...
 
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)
 
- Public Member Functions inherited from BaseIF
 BaseIF ()
 Default constructor. More...
 
virtual ~BaseIF ()
 Default destructor. More...
 
virtual IndMomSpaceDim getExactVolumeMoments (const VolIndex &a_vof, const Real &a_dx) const
 return int x^p dV for the vof More...
 
virtual IndMomSpaceDim getExactEBMoments (const VolIndex &a_vof, const Real &a_dx) const
 return int_eb x^p dA for the eb More...
 
virtual IndMomSpaceDim getExactEBNormalMoments (const VolIndex &a_vof, const Real &a_dx, const int &a_ni) const
 return int_eb x^p n_i dA for the eb More...
 
virtual IndMomSpaceDim getExactEBNormalPartialDerivs (const VolIndex &a_vof, const Real &a_dx, const int &a_ni) const
 
virtual IndMomSDMinOne getExactFaceMoments (const FaceIndex &a_face, const Real &a_dx) const
 return int x^p dA for the face More...
 
virtual Real derivative (const IntVect &a_deriv, const RealVect &a_point) const
 return the partial derivative at the point More...
 
virtual Real value (const IndexTM< int, GLOBALDIM > &a_partialDerivative, const IndexTM< Real, GLOBALDIM > &a_point) const
 
virtual Real value (const IntVect &a_deriv, const RealVect &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 Real value (const IndexTM< Real, GLOBALDIM > &a_point) const
 
virtual Real derivative (const IndexTM< int, GLOBALDIM > &a_deriv, const IndexTM< Real, GLOBALDIM > &a_point) const
 
virtual void print (ostream &out) const
 
virtual void makeGrids (const ProblemDomain &a_domain, DisjointBoxLayout &a_grids, const int &a_maxGridSize, const int &a_maxIrregGridSize)
 

Protected Attributes

BaseIFm_impFunc1
 
BaseIFm_impFunc2
 
RealVect m_point
 
bool m_inside
 

Private Member Functions

 LatheIF ()
 
void operator= (const LatheIF &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 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.

Constructor & Destructor Documentation

◆ LatheIF() [1/4]

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

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

LatheIF::LatheIF ( const LatheIF a_inputIF)

Copy constructor.

◆ ~LatheIF()

virtual LatheIF::~LatheIF ( )
virtual

Destructor.

◆ LatheIF() [4/4]

LatheIF::LatheIF ( )
inlineprivate

References MayDay::Abort().

Member Function Documentation

◆ value()

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

Return the value of the function at a_point.

Implements BaseIF.

◆ newImplicitFunction()

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.

◆ fastIntersection()

virtual bool LatheIF::fastIntersection ( const RealVect a_low,
const RealVect a_high 
) const
inlinevirtual

Reimplemented from BaseIF.

References InsideOutside().

◆ InsideOutside()

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

Reimplemented from BaseIF.

Referenced by fastIntersection().

◆ boxLayoutChanged()

virtual void LatheIF::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_impFunc1, and m_impFunc2.

◆ operator=()

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

References MayDay::Abort().

Member Data Documentation

◆ m_impFunc1

BaseIF* LatheIF::m_impFunc1
protected

Referenced by boxLayoutChanged().

◆ m_impFunc2

BaseIF* LatheIF::m_impFunc2
protected

Referenced by boxLayoutChanged().

◆ m_point

RealVect LatheIF::m_point
protected

◆ m_inside

bool LatheIF::m_inside
protected

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