Chombo + EB  3.0
Public Member Functions | Static Public Member Functions | List of all members
BaseIF Class Referenceabstract

#include <BaseIF.H>

Inheritance diagram for BaseIF:
Inheritance graph
[legend]

Public Member Functions

 BaseIF ()
 Default constructor. More...
 
virtual ~BaseIF ()
 Default destructor. More...
 
virtual Real value (const RealVect &a_point) const =0
 
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 BaseIFnewImplicitFunction () const =0
 
virtual void print (ostream &out) const
 
virtual void boxLayoutChanged (const DisjointBoxLayout &a_newBoxLayout, const RealVect &a_dx)
 

Static Public Member Functions

static void corners (const Box &a_region, const RealVect &a_origin, const Real &a_dx, RealVect &a_lo, RealVect &a_hi)
 

Detailed Description

This is the base class for an implicit function specification of geometry. All that is needed is a constructor/destructor, a method to give the value of the function at any point in space (in 2D or 3D), and a factory method (these will probably all be very similar).

Constructor & Destructor Documentation

◆ BaseIF()

BaseIF::BaseIF ( )
inline

Default constructor.

◆ ~BaseIF()

virtual BaseIF::~BaseIF ( )
inlinevirtual

Default destructor.

References value().

Member Function Documentation

◆ value() [1/3]

virtual Real BaseIF::value ( const RealVect a_point) const
pure virtual

Return the value of the function at a_point. When delineating a domain, the level set value=0 represents the boundary and value<0 is inside the fluid.

Implemented in DataFileIF, PolynomialIF, ReferenceHeightIF, TransformIF, LatheIF, GaussianIF, RhodoneaIF, TorusIF, TiltedCylinderIF, BilinearIF, GaussianSphereIF, MultiSphereIF, PlaneIF, ComplementIF, EllipsoidIF, PolarIF, SphereIF, HelixIF, HelicoilIF, TylerChannelIF, SumIF, IntersectionIF, UnionIF, MollifyIF, DEMIF, and SphereArrayIF.

Referenced by value(), ReferenceHeightIF::value(), and ~BaseIF().

◆ value() [2/3]

virtual Real BaseIF::value ( const IndexTM< int, GLOBALDIM > &  a_partialDerivative,
const IndexTM< Real, GLOBALDIM > &  a_point 
) const
inlinevirtual

◆ fastIntersection() [1/2]

virtual bool BaseIF::fastIntersection ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const
inlinevirtual

References corners().

Referenced by ComplementIF::fastIntersection().

◆ fastIntersection() [2/2]

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

◆ InsideOutside() [1/2]

virtual GeometryService::InOut BaseIF::InsideOutside ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const
inlinevirtual

References corners().

◆ InsideOutside() [2/2]

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

◆ value() [3/3]

virtual Real BaseIF::value ( const IndexTM< Real, GLOBALDIM > &  a_point) const
inlinevirtual

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

Reimplemented in ReferenceHeightIF, TransformIF, GaussianSphereIF, ComplementIF, BilinearIF, MollifyIF, SumIF, IntersectionIF, and UnionIF.

References MayDay::Abort(), LARGEREALVAL, and newImplicitFunction().

◆ newImplicitFunction()

virtual BaseIF* BaseIF::newImplicitFunction ( ) const
pure virtual

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

Implemented in DataFileIF, ReferenceHeightIF, PolynomialIF, TransformIF, LatheIF, ComplementIF, GaussianIF, GaussianSphereIF, RhodoneaIF, TorusIF, TiltedCylinderIF, BilinearIF, SumIF, MultiSphereIF, PlaneIF, EllipsoidIF, PolarIF, SphereIF, HelixIF, IntersectionIF, MollifyIF, UnionIF, HelicoilIF, TylerChannelIF, DEMIF, and SphereArrayIF.

Referenced by value().

◆ print()

virtual void BaseIF::print ( ostream &  out) const
inlinevirtual

Reimplemented in ReferenceHeightIF.

References MayDay::Abort().

Referenced by ReferenceHeightIF::print().

◆ corners()

static void BaseIF::corners ( const Box a_region,
const RealVect a_origin,
const Real a_dx,
RealVect a_lo,
RealVect a_hi 
)
inlinestatic

◆ boxLayoutChanged()

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

Inform the implicit function, IF, of a BoxLayout change in the application that is using it. If the implicit function uses distributed data, this gives it a chance to react to the spatial layout of the application that is using it.

This is a empty implementation for IFs that don't need this functionality.

Reimplemented in ReferenceHeightIF, LatheIF, TransformIF, ComplementIF, IntersectionIF, UnionIF, SumIF, HelixIF, MollifyIF, and HelicoilIF.

Referenced by HelicoilIF::boxLayoutChanged(), MollifyIF::boxLayoutChanged(), HelixIF::boxLayoutChanged(), ComplementIF::boxLayoutChanged(), TransformIF::boxLayoutChanged(), LatheIF::boxLayoutChanged(), and ReferenceHeightIF::boxLayoutChanged().


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