MADNESS  0.10.1
Public Types | Public Member Functions | Public Attributes | List of all members
madness::Convolution1D< Q > Class Template Referenceabstract

Provides the common functionality/interface of all 1D convolutions. More...

#include <convolution1d.h>

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

Public Types

typedef Q opT
 The apply function uses this to infer resultT=opT*inputT. More...
 

Public Member Functions

 Convolution1D (int k, int npt, int maxR, double arg=0.0)
 
virtual ~Convolution1D ()
 
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 > & get_rnlp (Level n, Translation lx) const
 
virtual bool issmall (Level n, Translation lx) const =0
 Returns true if the block of rnlp is expected to be small. More...
 
const ConvolutionData1D< Q > * mod_nonstandard (const Key< 2 > &op_key) const
 Returns a pointer to the cached modified make_nonstandard form of the operator. More...
 
virtual Level natural_level () const
 Returns the level for projection. More...
 
const ConvolutionData1D< Q > * nonstandard (Level n, Translation lx) const
 Returns a pointer to the cached make_nonstandard form of the operator. More...
 
Q phase (double R) const
 
Q phase (double_complex R) const
 
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...
 
virtual Tensor< Qrnlp (Level n, Translation lx) const =0
 Compute the projection of the operator onto the double order polynomials. More...
 

Public Attributes

double arg
 
Tensor< double > c
 
Tensor< double > hg
 
Tensor< double > hgT
 
Tensor< double > hgT2k
 
int k
 Wavelet order. More...
 
int maxR
 Number of lattice translations for sum. More...
 
SimpleCache< ConvolutionData1D< Q >, 2 > mod_ns_cache
 
int npt
 Number of quadrature points (is this used?) More...
 
SimpleCache< ConvolutionData1D< Q >, 1 > ns_cache
 
Tensor< double > quad_w
 
Tensor< double > quad_x
 
SimpleCache< Tensor< Q >, 1 > rnlij_cache
 
SimpleCache< Tensor< Q >, 1 > rnlp_cache
 

Detailed Description

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

Provides the common functionality/interface of all 1D convolutions.

interface for 1 term and for 1 dimension; the actual data are kept in ConvolutionData1D Derived classes must implement rnlp, issmall, natural_level

Member Typedef Documentation

◆ opT

template<typename Q >
typedef Q madness::Convolution1D< Q >::opT

The apply function uses this to infer resultT=opT*inputT.

Constructor & Destructor Documentation

◆ ~Convolution1D()

template<typename Q >
virtual madness::Convolution1D< Q >::~Convolution1D ( )
inlinevirtual

◆ Convolution1D()

template<typename Q >
madness::Convolution1D< Q >::Convolution1D ( int  k,
int  npt,
int  maxR,
double  arg = 0.0 
)
inline

Member Function Documentation

◆ get_issmall()

template<typename Q >
bool madness::Convolution1D< Q >::get_issmall ( Level  n,
Translation  lx 
) const
inline

Returns true if the block of rnlp is expected to be small including periodicity.

References madness::Convolution1D< Q >::issmall(), madness::Convolution1D< Q >::maxR, and R.

Referenced by madness::Convolution1D< Q >::get_rnlp(), and madness::Convolution1D< Q >::nonstandard().

◆ get_rnlp()

template<typename Q >
const Tensor<Q>& madness::Convolution1D< Q >::get_rnlp ( Level  n,
Translation  lx 
) const
inline

◆ issmall()

template<typename Q >
virtual bool madness::Convolution1D< Q >::issmall ( Level  n,
Translation  lx 
) const
pure virtual

Returns true if the block of rnlp is expected to be small.

Implemented in madness::GaussianConvolution1D< Q >, and madness::GenericConvolution1D< Q, opT >.

Referenced by madness::Convolution1D< Q >::get_issmall().

◆ mod_nonstandard()

template<typename Q >
const ConvolutionData1D<Q>* madness::Convolution1D< Q >::mod_nonstandard ( const Key< 2 > &  op_key) const
inline

Returns a pointer to the cached modified make_nonstandard form of the operator.

Parameters
[in]op_keyholds the scale and the source and target translations
Returns
a pointer to the cached modified make_nonstandard form of the operator

References madness::copy(), madness::fast_transpose(), madness::Convolution1D< Q >::hg, madness::Convolution1D< Q >::k, madness::Key< NDIM >::level(), MADNESS_ASSERT, madness::Convolution1D< Q >::mod_ns_cache, p(), madness::Tensor< T >::ptr(), R, madness::Convolution1D< Q >::rnlij(), s0, T(), madness::transform(), and madness::Key< NDIM >::translation().

◆ natural_level()

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

Returns the level for projection.

Reimplemented in madness::GaussianConvolution1D< Q >, and madness::GenericConvolution1D< Q, opT >.

Referenced by madness::Convolution1D< Q >::get_rnlp().

◆ nonstandard()

template<typename Q >
const ConvolutionData1D<Q>* madness::Convolution1D< Q >::nonstandard ( Level  n,
Translation  lx 
) const
inline

◆ phase() [1/2]

template<typename Q >
Q madness::Convolution1D< Q >::phase ( double  R) const
inline

◆ phase() [2/2]

template<typename Q >
Q madness::Convolution1D< Q >::phase ( double_complex  R) const
inline

◆ rnlij()

template<typename Q >
const Tensor<Q>& madness::Convolution1D< Q >::rnlij ( Level  n,
Translation  lx,
bool  do_transpose = false 
) const
inline

Computes the transition matrix elements for the convolution for n,l.

Returns the tensor

r(i,j) = int(K(x-y) phi[n0](x) phi[nl](y), x=0..1, y=0..1)
vecfuncT K(vecfuncT &ket, vecfuncT &bra, vecfuncT &vf)

This is computed from the matrix elements over the correlation function which in turn are computed from the matrix elements over the double order legendre polynomials.

References madness::Convolution1D< Q >::c, madness::Convolution1D< Q >::get_rnlp(), madness::inner(), madness::Convolution1D< Q >::k, p(), pow(), R, madness::Convolution1D< Q >::rnlij_cache, and madness::transpose().

Referenced by madness::Convolution1D< Q >::mod_nonstandard(), and madness::Convolution1D< Q >::nonstandard().

◆ rnlp()

template<typename Q >
virtual Tensor<Q> madness::Convolution1D< Q >::rnlp ( Level  n,
Translation  lx 
) const
pure virtual

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

Implemented in madness::GaussianConvolution1D< Q >, and madness::GenericConvolution1D< Q, opT >.

Referenced by madness::Convolution1D< Q >::get_rnlp().

Member Data Documentation

◆ arg

template<typename Q >
double madness::Convolution1D< Q >::arg

◆ c

template<typename Q >
Tensor<double> madness::Convolution1D< Q >::c

◆ hg

template<typename Q >
Tensor<double> madness::Convolution1D< Q >::hg

◆ hgT

template<typename Q >
Tensor<double> madness::Convolution1D< Q >::hgT

◆ hgT2k

template<typename Q >
Tensor<double> madness::Convolution1D< Q >::hgT2k

◆ k

template<typename Q >
int madness::Convolution1D< Q >::k

◆ maxR

template<typename Q >
int madness::Convolution1D< Q >::maxR

Number of lattice translations for sum.

Referenced by madness::Convolution1D< Q >::get_issmall(), and madness::Convolution1D< Q >::get_rnlp().

◆ mod_ns_cache

template<typename Q >
SimpleCache<ConvolutionData1D<Q>, 2> madness::Convolution1D< Q >::mod_ns_cache
mutable

◆ npt

template<typename Q >
int madness::Convolution1D< Q >::npt

◆ ns_cache

template<typename Q >
SimpleCache<ConvolutionData1D<Q>, 1> madness::Convolution1D< Q >::ns_cache
mutable

◆ quad_w

template<typename Q >
Tensor<double> madness::Convolution1D< Q >::quad_w

◆ quad_x

template<typename Q >
Tensor<double> madness::Convolution1D< Q >::quad_x

◆ rnlij_cache

template<typename Q >
SimpleCache<Tensor<Q>, 1> madness::Convolution1D< Q >::rnlij_cache
mutable

◆ rnlp_cache

template<typename Q >
SimpleCache<Tensor<Q>, 1> madness::Convolution1D< Q >::rnlp_cache
mutable

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