MADNESS 0.10.1
Public Member Functions | Public Attributes | Protected Member Functions | Private Attributes | List of all members
DSphere Class Reference

Functor representing the log-derivative of $\epsilon$ along an axis. More...

Inheritance diagram for DSphere:
Inheritance graph
[legend]
Collaboration diagram for DSphere:
Collaboration graph
[legend]

Public Member Functions

 DSphere (const coordT &center, double radius, double sigma)
 
 DSphere (double Vint, double Vext, int axis)
 Constructor.
 
double operator() (const coord_3d &r) const
 Function used by MADNESS to project a function.
 
double operator() (const coordT &x) const
 
- Public Member Functions inherited from madness::FunctionFunctorInterface< double, 3 >
 FunctionFunctorInterface ()
 
virtual ~FunctionFunctorInterface ()
 
virtual coeffT coeff (const keyT &) const
 
virtual void operator() (const Vector< double *, 1 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 2 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 3 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 4 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 5 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 6 > &xvals, double *fvals, int npts) const
 
virtual double operator() (const Vector< double, NDIM > &x) const=0
 You should implement this to return f(x)
 
virtual bool provides_coeff () const
 does this functor directly provide sum coefficients? or only function values?
 
virtual bool screened (const Vector< double, NDIM > &c1, const Vector< double, NDIM > &c2) const
 Can we screen this function based on the bounding box information?
 
void set_length_scale (double lo)
 adapt the special level to resolve the smallest length scale
 
virtual Level special_level ()
 Override this change level refinement for special points (default is 6)
 
virtual std::vector< Vector< double, NDIM > > special_points () const
 Override this to return list of special points to be refined more deeply.
 
virtual bool supports_vectorized () const
 Does the interface support a vectorized operator()?
 
virtual coeffT values (const keyT &key, const Tensor< double > &tensor) const
 

Public Attributes

const coordT center
 
const double expnt
 
const double norm
 
const double radius
 
const double sigma
 
- Public Attributes inherited from madness::FunctionFunctorInterface< double, 3 >
Level special_level_
 

Protected Member Functions

double dmask (double s) const
 Derivative of the mask with respect to $s=sdf/\sigma$.
 

Private Attributes

const int axis
 The component of the log-derivative we want.
 
const double fac
 The factor multiplying the log-derivative.
 

Additional Inherited Members

- Public Types inherited from madness::FunctionFunctorInterface< double, 3 >
typedef GenTensor< double > coeffT
 
typedef Key< NDIMkeyT
 
typedef double value_type
 

Detailed Description

Functor representing the log-derivative of $\epsilon$ along an axis.

A "mask" function is used to smoothly transition from inside the sphere to outside the sphere. The width of this transition region is $\mathcal{O}(\sigma)$.

Constructor & Destructor Documentation

◆ DSphere() [1/2]

DSphere::DSphere ( double  Vint,
double  Vext,
int  axis 
)
inline

Constructor.

Parameters
[in]VintThe dielectric inside the sphere.
[in]VextThe dielectric outside the sphere.
[in]axisThe component of the log-derivative to project with this functor.

◆ DSphere() [2/2]

DSphere::DSphere ( const coordT center,
double  radius,
double  sigma 
)
inline

Member Function Documentation

◆ dmask()

double DSphere::dmask ( double  s) const
inlineprotected

Derivative of the mask with respect to $s=sdf/\sigma$.

Parameters
[in]sThe signed distance (in units of $\sigma$) from the surface of the sphere.
Returns
The derivative of the mask.

References madness::constants::pi.

Referenced by operator()().

◆ operator()() [1/2]

double DSphere::operator() ( const coord_3d r) const
inline

Function used by MADNESS to project a function.

Parameters
[in]rThe coordinate at which to evaluate the function.
Returns
The value of the component of the log-derivative at the point.

References axis, d, dmask(), fac, R, and sigma.

◆ operator()() [2/2]

double DSphere::operator() ( const coordT x) const
inline

References madness::arg(), center, dist(), expnt, norm, and radius.

Member Data Documentation

◆ axis

const int DSphere::axis
private

The component of the log-derivative we want.

Referenced by operator()().

◆ center

const coordT DSphere::center

Referenced by operator()().

◆ expnt

const double DSphere::expnt

Referenced by operator()().

◆ fac

const double DSphere::fac
private

The factor multiplying the log-derivative.

Referenced by operator()().

◆ norm

const double DSphere::norm

Referenced by operator()().

◆ radius

const double DSphere::radius

Referenced by operator()().

◆ sigma

const double DSphere::sigma

Referenced by operator()().


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