Chombo + EB
3.2
|
#include <BaseIF.H>
Public Member Functions | |
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 | 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 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 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) |
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.
|
inlinevirtual |
return int x^p dV for the vof
Reimplemented in MonomialIF.
References MayDay::Error(), and IndexedMoments< Dim, P >::setToZero().
|
inlinevirtual |
return int_eb x^p dA for the eb
Reimplemented in MonomialIF.
References MayDay::Error(), and IndexedMoments< Dim, P >::setToZero().
|
inlinevirtual |
return int_eb x^p n_i dA for the eb
Reimplemented in MonomialIF.
References MayDay::Error(), and IndexedMoments< Dim, P >::setToZero().
|
inlinevirtual |
Reimplemented in MonomialIF.
References MayDay::Error(), and IndexedMoments< Dim, P >::setToZero().
|
inlinevirtual |
return int x^p dA for the face
Reimplemented in MonomialIF.
References MayDay::Error(), IndexedMoments< Dim, P >::setToZero(), and 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 MultiSphereIF, DataFileIF, PolynomialIF, ReferenceHeightIF, MonomialIF, TransformIF, LatheIF, GaussianIF, RhodoneaIF, STLIF, TorusIF, TiltedCylinderIF, BilinearIF, GaussianSphereIF, HyperSphereIF, SineIF, ComplementIF, EllipsoidIF, PolarIF, HelixIF, SimpleEllipsoidIF, HelicoilIF, TylerChannelIF, SumIF, IntersectionIF, UnionIF, MollifyIF, DEMIF, SphereArrayIF, HyperPlaneIF, SmoothIntersection, SmoothUnion, and ParabolaIF.
Referenced by getExactFaceMoments(), ReferenceHeightIF::value(), and value().
|
inlinevirtual |
return the partial derivative at the point
Reimplemented in GaussianSphereIF, SmoothIntersection, and SmoothUnion.
References MayDay::Error().
Referenced by derivative(), and value().
|
inlinevirtual |
Reimplemented in MultiSphereIF, DataFileIF, PolynomialIF, ComplementIF, ReferenceHeightIF, MollifyIF, HyperSphereIF, BilinearIF, SumIF, IntersectionIF, UnionIF, and HyperPlaneIF.
References derivative(), and value().
|
inlinevirtual |
References corners().
Referenced by ComplementIF::fastIntersection().
|
inlinevirtual |
Reimplemented in TransformIF, LatheIF, ComplementIF, TiltedCylinderIF, IntersectionIF, UnionIF, and SphereArrayIF.
|
inlinevirtual |
References corners().
|
inlinevirtual |
Reimplemented in LatheIF, TransformIF, ComplementIF, TiltedCylinderIF, IntersectionIF, and UnionIF.
References MayDay::Abort(), and GeometryService::Irregular.
Return the value of the function at a_point (of type INdexTM).
Reimplemented in DataFileIF, ReferenceHeightIF, TransformIF, ComplementIF, HyperSphereIF, BilinearIF, MollifyIF, SumIF, IntersectionIF, UnionIF, and HyperPlaneIF.
|
inlinevirtual |
Return the derivative of the function at a_point (of type INdexTM).
References CH_assert, derivative(), GLOBALDIM, newImplicitFunction(), and SpaceDim.
|
pure virtual |
Return a newly allocated derived class. The responsibility for deleting the memory is left to the calling function.
Implemented in MultiSphereIF, DataFileIF, ReferenceHeightIF, PolynomialIF, GaussianSphereIF, MonomialIF, TransformIF, LatheIF, ComplementIF, GaussianIF, HyperSphereIF, RhodoneaIF, STLIF, TorusIF, MollifyIF, TiltedCylinderIF, SineIF, BilinearIF, SumIF, EllipsoidIF, PolarIF, SimpleEllipsoidIF, HelixIF, IntersectionIF, UnionIF, HelicoilIF, TylerChannelIF, HyperPlaneIF, SmoothIntersection, SmoothUnion, DEMIF, SphereArrayIF, and ParabolaIF.
Referenced by derivative().
|
inlinevirtual |
Reimplemented in ReferenceHeightIF.
References MayDay::Abort().
Referenced by ReferenceHeightIF::print().
|
inlinevirtual |
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.
|
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, MollifyIF, SumIF, HelixIF, and HelicoilIF.
Referenced by HelicoilIF::boxLayoutChanged(), HelixIF::boxLayoutChanged(), MollifyIF::boxLayoutChanged(), ComplementIF::boxLayoutChanged(), TransformIF::boxLayoutChanged(), LatheIF::boxLayoutChanged(), and ReferenceHeightIF::boxLayoutChanged().