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

#include <SmoothIntersection.H>

Inheritance diagram for SmoothIntersection:
Inheritance graph
[legend]

Public Member Functions

 SmoothIntersection (const Vector< BaseIF *> &a_impFuncs, const Real &a_delta)
 
virtual ~SmoothIntersection ()
 Destructor. More...
 
virtual Real value (const RealVect &a_point) const
 
virtual Real derivative (const IntVect &a_deriv, const RealVect &a_point) const
 return the partial derivative at the point More...
 
virtual BaseIFnewImplicitFunction () const
 
virtual Real smoothMax (const IntVect &a_deriv, const RealVect &a_point, const int &a_closestIF, const int &a_nextClosestIF) const
 max(a,b) = 0.5*(a+b + | a-b |) More...
 
void findClosest (int &a_closestIF, int &a_nextClosestIF, int &a_numWithinDelta, const RealVect &a_point) const
 
- Public Member Functions inherited from BaseIF
 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 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 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)
 

Protected Attributes

int m_numFuncs
 
Vector< BaseIF * > m_impFuncs
 
Real m_delta
 
IntVect m_ivDebug
 
Real m_dxDebug
 
RealVect m_rvDebug
 

Private Member Functions

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

This implicit function is the maximum of two (of more) implicit functions with which it is constructed. This results in an implicit function whose interior is the intersection of the interiors of the given implicit functions. For the maximum, it uses the smooth absolute value Ae(a,b) |a-b| max(a,b) = 0.5*(a+b + | a-b |)

Constructor & Destructor Documentation

◆ SmoothIntersection() [1/3]

SmoothIntersection::SmoothIntersection ( const Vector< BaseIF *> &  a_impFuncs,
const Real a_delta 
)

Constructor specifying any number of implicit functions as inputs.

◆ ~SmoothIntersection()

virtual SmoothIntersection::~SmoothIntersection ( )
virtual

Destructor.

◆ SmoothIntersection() [2/3]

SmoothIntersection::SmoothIntersection ( )
inlineprivate

References MayDay::Abort().

◆ SmoothIntersection() [3/3]

SmoothIntersection::SmoothIntersection ( const SmoothIntersection a_inputIF)
inlineprivate

References MayDay::Abort().

Member Function Documentation

◆ value()

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

Return the value of the function at a_point.

Implements BaseIF.

◆ derivative()

virtual Real SmoothIntersection::derivative ( const IntVect a_deriv,
const RealVect a_point 
) const
virtual

return the partial derivative at the point

Reimplemented from BaseIF.

◆ newImplicitFunction()

virtual BaseIF* SmoothIntersection::newImplicitFunction ( ) const
virtual

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

Implements BaseIF.

◆ smoothMax()

virtual Real SmoothIntersection::smoothMax ( const IntVect a_deriv,
const RealVect a_point,
const int &  a_closestIF,
const int &  a_nextClosestIF 
) const
virtual

max(a,b) = 0.5*(a+b + | a-b |)

loops through all the functions

◆ findClosest()

void SmoothIntersection::findClosest ( int &  a_closestIF,
int &  a_nextClosestIF,
int &  a_numWithinDelta,
const RealVect a_point 
) const

◆ operator=()

void SmoothIntersection::operator= ( const SmoothIntersection a_inputIF)
inlineprivate

References MayDay::Abort().

Member Data Documentation

◆ m_numFuncs

int SmoothIntersection::m_numFuncs
protected

◆ m_impFuncs

Vector<BaseIF*> SmoothIntersection::m_impFuncs
protected

◆ m_delta

Real SmoothIntersection::m_delta
protected

◆ m_ivDebug

IntVect SmoothIntersection::m_ivDebug
protected

◆ m_dxDebug

Real SmoothIntersection::m_dxDebug
protected

◆ m_rvDebug

RealVect SmoothIntersection::m_rvDebug
protected

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