Chombo + EB
3.0
|
#include <BaseIF.H>
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 BaseIF * | newImplicitFunction () 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) |
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).
|
inline |
Default constructor.
|
inlinevirtual |
Default destructor.
References value().
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().
|
inlinevirtual |
Reimplemented in PolynomialIF, ComplementIF, ReferenceHeightIF, BilinearIF, SumIF, IntersectionIF, and UnionIF.
References MayDay::Abort(), LARGEREALVAL, and value().
|
inlinevirtual |
References corners().
Referenced by ComplementIF::fastIntersection().
|
inlinevirtual |
Reimplemented in TransformIF, LatheIF, ComplementIF, TiltedCylinderIF, MultiSphereIF, PlaneIF, SphereIF, IntersectionIF, UnionIF, and SphereArrayIF.
|
inlinevirtual |
References corners().
|
inlinevirtual |
Reimplemented in LatheIF, TransformIF, ComplementIF, TiltedCylinderIF, PlaneIF, SphereIF, MultiSphereIF, IntersectionIF, UnionIF, and SphereArrayIF.
References MayDay::Abort(), and GeometryService::Irregular.
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().
|
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().
|
inlinevirtual |
Reimplemented in ReferenceHeightIF.
References MayDay::Abort().
Referenced by ReferenceHeightIF::print().
|
inlinestatic |
References Box::bigEnd(), Box::smallEnd(), and IntVect::Unit.
Referenced by fastIntersection(), and InsideOutside().
|
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().