MADNESS  version 0.9
Public Member Functions | Public Attributes | List of all members
madness::GaussianConvolution1D< Q > Class Template Reference

1D convolution with (derivative) Gaussian; coeff and expnt given in simulation coordinates [0,1] More...

#include <convolution1d.h>

Inheritance diagram for madness::GaussianConvolution1D< Q >:
Inheritance graph
[legend]
Collaboration diagram for madness::GaussianConvolution1D< Q >:
Collaboration graph
[legend]

Public Member Functions

 GaussianConvolution1D (int k, Q coeff, double expnt, int m, bool periodic, double arg=0.0)
 
virtual ~GaussianConvolution1D ()
 
virtual Level natural_level () const
 Returns the level for projection. More...
 
Tensor< Q > rnlp (Level n, Translation lx) const
 Compute the projection of the operator onto the double order polynomials. More...
 
bool issmall (Level n, Translation lx) const
 Returns true if the block is expected to be small. More...
 
- Public Member Functions inherited from madness::Convolution1D< Q >
virtual ~Convolution1D ()
 
 Convolution1D (int k, int npt, int maxR, double arg=0.0)
 
bool get_issmall (Level n, Translation lx) const
 Returns true if the block of rnlp is expected to be small including periodicity. More...
 
const Tensor< Q > & rnlij (Level n, Translation lx, bool do_transpose=false) const
 Computes the transition matrix elements for the convolution for n,l. More...
 
const ConvolutionData1D< Q > * mod_nonstandard (const Key< 2 > &op_key) const
 Returns a pointer to the cached modified nonstandard form of the operator. More...
 
const ConvolutionData1D< Q > * nonstandard (Level n, Translation lx) const
 Returns a pointer to the cached nonstandard form of the operator. More...
 
phase (double R) const
 
phase (double_complex R) const
 
const Tensor< Q > & get_rnlp (Level n, Translation lx) const
 

Public Attributes

const Q coeff
 Coefficient. More...
 
const double expnt
 Exponent. More...
 
const Level natlev
 Level to evaluate. More...
 
const int m
 Order of derivative (0, 1, or 2 only) More...
 
- Public Attributes inherited from madness::Convolution1D< Q >
int k
 Wavelet order. More...
 
int npt
 Number of quadrature points (is this used?) More...
 
int maxR
 Number of lattice translations for sum. More...
 
Tensor< double > quad_x
 
Tensor< double > quad_w
 
Tensor< double > c
 
Tensor< double > hgT
 
Tensor< double > hg
 
Tensor< double > hgT2k
 
double arg
 
SimpleCache< Tensor< Q >, 1 > rnlp_cache
 
SimpleCache< Tensor< Q >, 1 > rnlij_cache
 
SimpleCache< ConvolutionData1D
< Q >, 1 > 
ns_cache
 
SimpleCache< ConvolutionData1D
< Q >, 2 > 
mod_ns_cache
 

Additional Inherited Members

- Public Types inherited from madness::Convolution1D< Q >
typedef Q opT
 The apply function uses this to infer resultT=opT*inputT. More...
 

Detailed Description

template<typename Q>
class madness::GaussianConvolution1D< Q >

1D convolution with (derivative) Gaussian; coeff and expnt given in simulation coordinates [0,1]

Note that the derivative is computed in simulation coordinates so you must be careful to scale the coefficients correctly.

Constructor & Destructor Documentation

template<typename Q >
madness::GaussianConvolution1D< Q >::GaussianConvolution1D ( int  k,
coeff,
double  expnt,
int  m,
bool  periodic,
double  arg = 0.0 
)
inlineexplicit
template<typename Q >
virtual madness::GaussianConvolution1D< Q >::~GaussianConvolution1D ( )
inlinevirtual

Member Function Documentation

template<typename Q >
bool madness::GaussianConvolution1D< Q >::issmall ( Level  n,
Translation  lx 
) const
inlinevirtual

Returns true if the block is expected to be small.

Implements madness::Convolution1D< Q >.

References beta.

template<typename Q >
virtual Level madness::GaussianConvolution1D< Q >::natural_level ( ) const
inlinevirtual

Returns the level for projection.

Reimplemented from madness::Convolution1D< Q >.

References madness::GaussianConvolution1D< Q >::natlev.

template<typename Q >
Tensor<Q> madness::GaussianConvolution1D< Q >::rnlp ( Level  n,
Translation  lx 
) const
inlinevirtual

Compute the projection of the operator onto the double order polynomials.

The returned reference is to a cached tensor ... if you want to modify it, take a copy first.

Return in v[p] p=0..2*k-1

r(n,l,p) = 2^(-n) * int(K(2^(-n)*(z+l)) * phi(p,z), z=0..1)

The kernel is coeff*exp(-expnt*z^2)*z^m (with m>0). This is equivalent to

r(n,l,p) = 2^(-n*(m+1))*coeff * int( ((d/dz)^m exp(-beta*z^2)) * phi(p,z-l), z=l..l+1)

where

beta = alpha * 2^(-2*n)

Implements madness::Convolution1D< Q >.

References beta, mpfr::exp(), madness::GaussianConvolution1D< Q >::expnt, madness::Convolution1D< Q >::k, madness::legendre_scaling_functions(), mpfr::log(), madness::Convolution1D< Q >::npt, madness::Convolution1D< Q >::quad_w, madness::Convolution1D< Q >::quad_x, and sqrt().

Member Data Documentation

template<typename Q >
const Q madness::GaussianConvolution1D< Q >::coeff

Coefficient.

template<typename Q >
const double madness::GaussianConvolution1D< Q >::expnt
template<typename Q >
const int madness::GaussianConvolution1D< Q >::m

Order of derivative (0, 1, or 2 only)

template<typename Q >
const Level madness::GaussianConvolution1D< Q >::natlev

Level to evaluate.

Referenced by madness::GaussianConvolution1D< Q >::natural_level().


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