#include <BaseIF.H>
Public Member Functions | |
BaseIF () | |
Default constructor. | |
virtual | ~BaseIF () |
Default destructor. | |
virtual IndMomSpaceDim | getExactVolumeMoments (const VolIndex &a_vof, const Real &a_dx) const |
return int x^p dV for the vof | |
virtual IndMomSpaceDim | getExactEBMoments (const VolIndex &a_vof, const Real &a_dx) const |
return int_eb x^p dA for the eb | |
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 | |
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 | |
virtual Real | value (const RealVect &a_point) const =0 |
virtual Real | derivative (const IntVect &a_deriv, const RealVect &a_point) const |
return the partial derivative at the point | |
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 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 Real | derivative (const IndexTM< int, GLOBALDIM > &a_deriv, const IndexTM< Real, GLOBALDIM > &a_point) const |
virtual BaseIF * | newImplicitFunction () const =0 |
virtual void | print (ostream &out) const |
virtual void | makeGrids (const ProblemDomain &a_domain, DisjointBoxLayout &a_grids, const int &a_maxGridSize, const int &a_maxIrregGridSize) |
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) |
BaseIF::BaseIF | ( | ) | [inline] |
Default constructor.
virtual BaseIF::~BaseIF | ( | ) | [inline, virtual] |
Default destructor.
virtual IndMomSpaceDim BaseIF::getExactVolumeMoments | ( | const VolIndex & | a_vof, | |
const Real & | a_dx | |||
) | const [inline, virtual] |
return int x^p dV for the vof
Reimplemented in MonomialIF.
References MayDay::Error(), and IndexedMoments< Dim, P >::setToZero().
virtual IndMomSpaceDim BaseIF::getExactEBMoments | ( | const VolIndex & | a_vof, | |
const Real & | a_dx | |||
) | const [inline, virtual] |
return int_eb x^p dA for the eb
Reimplemented in MonomialIF.
References MayDay::Error(), and IndexedMoments< Dim, P >::setToZero().
virtual IndMomSpaceDim BaseIF::getExactEBNormalMoments | ( | const VolIndex & | a_vof, | |
const Real & | a_dx, | |||
const int & | a_ni | |||
) | const [inline, virtual] |
return int_eb x^p n_i dA for the eb
Reimplemented in MonomialIF.
References MayDay::Error(), and IndexedMoments< Dim, P >::setToZero().
virtual IndMomSpaceDim BaseIF::getExactEBNormalPartialDerivs | ( | const VolIndex & | a_vof, | |
const Real & | a_dx, | |||
const int & | a_ni | |||
) | const [inline, virtual] |
virtual IndMomSDMinOne BaseIF::getExactFaceMoments | ( | const FaceIndex & | a_face, | |
const Real & | a_dx | |||
) | const [inline, virtual] |
return int x^p dA for the face
Reimplemented in MonomialIF.
References MayDay::Error(), and IndexedMoments< Dim, P >::setToZero().
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 BilinearIF, ComplementIF, DataFileIF, DEMIF, EllipsoidIF, GaussianIF, GaussianSphereIF, HelicoilIF, HelixIF, HyperPlaneIF, HyperSphereIF, IntersectionIF, LatheIF, MollifyIF, MonomialIF, MultiSphereIF, ParabolaIF, PolarIF, PolynomialIF, ReferenceHeightIF, RhodoneaIF, SimpleEllipsoidIF, SineIF, SmoothIntersection, SmoothUnion, SphereArrayIF, STLIF, SumIF, TiltedCylinderIF, TorusIF, TransformIF, TylerChannelIF, and UnionIF.
Referenced by ReferenceHeightIF::value(), and value().
virtual Real BaseIF::derivative | ( | const IntVect & | a_deriv, | |
const RealVect & | a_point | |||
) | const [inline, virtual] |
return the partial derivative at the point
Reimplemented in GaussianSphereIF, SmoothIntersection, and SmoothUnion.
References MayDay::Error().
Referenced by derivative(), and value().
virtual Real BaseIF::value | ( | const IndexTM< int, GLOBALDIM > & | a_partialDerivative, | |
const IndexTM< Real, GLOBALDIM > & | a_point | |||
) | const [inline, virtual] |
Reimplemented in BilinearIF, ComplementIF, DataFileIF, HyperPlaneIF, HyperSphereIF, IntersectionIF, MollifyIF, MultiSphereIF, PolynomialIF, ReferenceHeightIF, SumIF, and UnionIF.
References derivative(), and value().
virtual bool BaseIF::fastIntersection | ( | const Box & | a_region, | |
const ProblemDomain & | a_domain, | |||
const RealVect & | a_origin, | |||
const Real & | a_dx | |||
) | const [inline, virtual] |
virtual bool BaseIF::fastIntersection | ( | const RealVect & | a_low, | |
const RealVect & | a_high | |||
) | const [inline, virtual] |
Reimplemented in ComplementIF, IntersectionIF, LatheIF, SphereArrayIF, TiltedCylinderIF, TransformIF, and UnionIF.
virtual GeometryService::InOut BaseIF::InsideOutside | ( | const Box & | a_region, | |
const ProblemDomain & | a_domain, | |||
const RealVect & | a_origin, | |||
const Real & | a_dx | |||
) | const [inline, virtual] |
References corners().
virtual GeometryService::InOut BaseIF::InsideOutside | ( | const RealVect & | a_low, | |
const RealVect & | a_high | |||
) | const [inline, virtual] |
Reimplemented in ComplementIF, IntersectionIF, LatheIF, TiltedCylinderIF, TransformIF, and UnionIF.
References MayDay::Abort(), and GeometryService::Irregular.
Return the value of the function at a_point (of type INdexTM).
Reimplemented in BilinearIF, ComplementIF, DataFileIF, HyperPlaneIF, HyperSphereIF, IntersectionIF, MollifyIF, ReferenceHeightIF, SumIF, TransformIF, and UnionIF.
virtual Real BaseIF::derivative | ( | const IndexTM< int, GLOBALDIM > & | a_deriv, | |
const IndexTM< Real, GLOBALDIM > & | a_point | |||
) | const [inline, virtual] |
Return the derivative of the function at a_point (of type INdexTM).
References CH_assert, derivative(), GLOBALDIM, and SpaceDim.
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 BilinearIF, ComplementIF, DataFileIF, DEMIF, EllipsoidIF, GaussianIF, GaussianSphereIF, HelicoilIF, HelixIF, HyperPlaneIF, HyperSphereIF, IntersectionIF, LatheIF, MollifyIF, MonomialIF, MultiSphereIF, ParabolaIF, PolarIF, PolynomialIF, ReferenceHeightIF, RhodoneaIF, SimpleEllipsoidIF, SineIF, SmoothIntersection, SmoothUnion, SphereArrayIF, STLIF, SumIF, TiltedCylinderIF, TorusIF, TransformIF, TylerChannelIF, and UnionIF.
virtual void BaseIF::print | ( | ostream & | out | ) | const [inline, virtual] |
Reimplemented in ReferenceHeightIF.
References MayDay::Abort().
Referenced by ReferenceHeightIF::print().
virtual void BaseIF::makeGrids | ( | const ProblemDomain & | a_domain, | |
DisjointBoxLayout & | a_grids, | |||
const int & | a_maxGridSize, | |||
const int & | a_maxIrregGridSize | |||
) | [inline, virtual] |
An Implicit Function has three options for implementing this function 1) do nothing, allow the empty base implementation to remain in place as a null-op 2) take the makeGrids call as a directive: Here are the grids EBIndexSpace is wanting to use, configure yourself accordingly to make this efficient for you. 3) discard the DisjointBoxLayout EBIndexSpace would like and insert your own implementation of layout EBIndexSpace will faithfully use a_grids returned from this function, including it's load balance.
static void BaseIF::corners | ( | const Box & | a_region, | |
const RealVect & | a_origin, | |||
const Real & | a_dx, | |||
RealVect & | a_lo, | |||
RealVect & | a_hi | |||
) | [inline, static] |
References Box::bigEnd(), Box::smallEnd(), and IntVect::Unit.
Referenced by fastIntersection(), and InsideOutside().
virtual void BaseIF::boxLayoutChanged | ( | const DisjointBoxLayout & | a_newBoxLayout, | |
const RealVect & | a_dx | |||
) | [inline, virtual] |
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 ComplementIF, HelicoilIF, HelixIF, IntersectionIF, LatheIF, MollifyIF, ReferenceHeightIF, SumIF, TransformIF, and UnionIF.
Referenced by TransformIF::boxLayoutChanged(), ReferenceHeightIF::boxLayoutChanged(), MollifyIF::boxLayoutChanged(), LatheIF::boxLayoutChanged(), HelixIF::boxLayoutChanged(), HelicoilIF::boxLayoutChanged(), and ComplementIF::boxLayoutChanged().