# SmoothUnion Class Reference

`#include <SmoothUnion.H>`

Inheritance diagram for SmoothUnion:

[legend]

## 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| min(a,b) = 0.5*(a+b - | a-b |)

## Public Member Functions

SmoothUnion (const Vector< BaseIF * > &a_impFuncs, const Real &a_delta)
virtual ~SmoothUnion ()
Destructor.
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
virtual BaseIFnewImplicitFunction () const
virtual Real smoothMin (const IntVect &a_deriv, const RealVect &a_point, const int &a_closestIF, const int &a_nextClosestIF) const
void findClosest (int &a_closestIF, int &a_nextClosestIF, int &a_numWithinDelta, const RealVect &a_point) const

## Protected Attributes

int m_numFuncs
Vector< BaseIF * > m_impFuncs
Real m_delta

## Private Member Functions

SmoothUnion ()
SmoothUnion (const SmoothUnion &a_inputIF)
void operator= (const SmoothUnion &a_inputIF)

## Constructor & Destructor Documentation

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

Constructor specifying any number of implicit functions as inputs.

 virtual SmoothUnion::~SmoothUnion ( ) ` [virtual]`

Destructor.

 SmoothUnion::SmoothUnion ( ) ` [inline, private]`

References MayDay::Abort().

 SmoothUnion::SmoothUnion ( const SmoothUnion & a_inputIF ) ` [inline, private]`

References MayDay::Abort().

## Member Function Documentation

 virtual Real SmoothUnion::value ( const RealVect & a_point ) const` [virtual]`

Return the value of the function at a_point.

Implements BaseIF.

 virtual Real SmoothUnion::derivative ( const IntVect & a_deriv, const RealVect & a_point ) const` [virtual]`

return the partial derivative at the point

Reimplemented from BaseIF.

 virtual BaseIF* SmoothUnion::newImplicitFunction ( ) const` [virtual]`

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

Implements BaseIF.

 virtual Real SmoothUnion::smoothMin ( const IntVect & a_deriv, const RealVect & a_point, const int & a_closestIF, const int & a_nextClosestIF ) const` [virtual]`

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

 void SmoothUnion::operator= ( const SmoothUnion & a_inputIF ) ` [inline, private]`

References MayDay::Abort().

## Member Data Documentation

 int SmoothUnion::m_numFuncs` [protected]`

 Vector SmoothUnion::m_impFuncs` [protected]`

 Real SmoothUnion::m_delta` [protected]`

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

Generated on Fri Apr 5 04:25:18 2019 for Chombo + EB by  1.5.5