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

#include <HelicoilIF.H>

Inheritance diagram for HelicoilIF:
Inheritance graph

Public Member Functions

 HelicoilIF (const Real &a_helixR, const Real &a_helixPitch, const Real &a_circleR, const bool &a_inside)
 HelicoilIF (const HelicoilIF &a_inputIF)
 Copy constructor. More...
virtual ~HelicoilIF ()
 Destructor. More...
virtual Real value (const RealVect &a_point) const
virtual BaseIFnewImplicitFunction () 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 bool fastIntersection (const RealVect &a_low, const RealVect &a_high) const
virtual GeometryService::InOut InsideOutside (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
virtual GeometryService::InOut InsideOutside (const RealVect &a_low, const RealVect &a_high) const
virtual Real value (const IndexTM< Real, GLOBALDIM > &a_point) const
virtual void print (ostream &out) const

Protected Attributes

Real m_helixR
Real m_helixPitch
Real m_circleR
bool m_inside
Real m_ellipseR
bool m_vertical

Private Member Functions

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

In 3D this is an approximation of a circle swept around a helix which is always in the plane normal to the tangent of the helix. If the slope of the helix is less than 1.0, this is achieved by sweeping an ellipse oriented vertically along a helix. If the slope is greater than or equal to 1.0, this is achieved by sweeping an ellipse oriented horizontally along a helix. The eccentricity of the ellipse is adjusted based on the slope.

In 2D this is an ellipse offset from the origin.

Constructor & Destructor Documentation

◆ HelicoilIF() [1/3]

HelicoilIF::HelicoilIF ( const Real a_helixR,
const Real a_helixPitch,
const Real a_circleR,
const bool &  a_inside 

Constructor specifying the helix radius, pitch, radius of the swept circle, and whether the domain is on the inside (a_inside), i.e. where the function is negative.

◆ HelicoilIF() [2/3]

HelicoilIF::HelicoilIF ( const HelicoilIF a_inputIF)

Copy constructor.

◆ ~HelicoilIF()

virtual HelicoilIF::~HelicoilIF ( )


◆ HelicoilIF() [3/3]

HelicoilIF::HelicoilIF ( )

References MayDay::Abort().

Member Function Documentation

◆ value()

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

Return the value of the function at a_point.

Implements BaseIF.

◆ newImplicitFunction()

virtual BaseIF* HelicoilIF::newImplicitFunction ( ) const

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

Implements BaseIF.

◆ boxLayoutChanged()

virtual void HelicoilIF::boxLayoutChanged ( const DisjointBoxLayout a_newBoxLayout,
const RealVect a_dx 

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

Reimplemented from BaseIF.

References BaseIF::boxLayoutChanged(), and m_helixIF.

◆ operator=()

void HelicoilIF::operator= ( const HelicoilIF a_inputIF)

References MayDay::Abort().

Member Data Documentation

◆ m_helixR

Real HelicoilIF::m_helixR

◆ m_helixPitch

Real HelicoilIF::m_helixPitch

◆ m_circleR

Real HelicoilIF::m_circleR

◆ m_inside

bool HelicoilIF::m_inside

◆ m_ellipseR

Real HelicoilIF::m_ellipseR

◆ m_vertical

bool HelicoilIF::m_vertical

◆ m_helixIF

BaseIF* HelicoilIF::m_helixIF

Referenced by boxLayoutChanged().

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