MADNESS 0.10.1
|
Provides the common functionality/interface of all 1D convolutions. More...
#include <convolution1d.h>
Public Types | |
typedef Q | opT |
The apply function uses this to infer resultT=opT*inputT. | |
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. | |
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. | |
const ConvolutionData1D< Q > * | mod_nonstandard (const Key< 2 > &op_key) const |
Returns a pointer to the cached modified make_nonstandard form of the operator. | |
virtual Level | natural_level () const |
Returns the level for projection. | |
const ConvolutionData1D< Q > * | nonstandard (Level n, Translation lx) const |
Returns a pointer to the cached make_nonstandard form of the operator. | |
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. | |
virtual Tensor< Q > | rnlp (Level n, Translation lx) const =0 |
Compute the projection of the operator onto the double order polynomials. | |
Public Attributes | |
double | arg |
Tensor< double > | c |
Tensor< double > | hg |
Tensor< double > | hgT |
Tensor< double > | hgT2k |
int | k |
Wavelet order. | |
int | maxR |
Number of lattice translations for sum. | |
SimpleCache< ConvolutionData1D< Q >, 2 > | mod_ns_cache |
int | npt |
Number of quadrature points (is this used?) | |
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 |
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
typedef Q madness::Convolution1D< Q >::opT |
The apply function uses this to infer resultT=opT*inputT.
|
inlinevirtual |
|
inline |
References madness::autoc(), madness::Convolution1D< Q >::c, madness::gauss_legendre(), madness::Convolution1D< Q >::hg, madness::Convolution1D< Q >::hgT, madness::Convolution1D< Q >::hgT2k, madness::Convolution1D< Q >::k, MADNESS_ASSERT, MADNESS_CHECK, madness::Convolution1D< Q >::npt, madness::Tensor< T >::ptr(), madness::Convolution1D< Q >::quad_w, madness::Convolution1D< Q >::quad_x, madness::transpose(), and madness::two_scale_hg().
|
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().
|
inline |
References madness::copy(), madness::Tensor< T >::gaxpy(), madness::Convolution1D< Q >::get_issmall(), madness::Convolution1D< Q >::get_rnlp(), madness::Convolution1D< Q >::hgT2k, madness::Convolution1D< Q >::k, madness::Convolution1D< Q >::maxR, madness::Convolution1D< Q >::natural_level(), p(), madness::Convolution1D< Q >::phase(), Q(), R, madness::Convolution1D< Q >::rnlp(), madness::Convolution1D< Q >::rnlp_cache, and madness::transform().
Referenced by madness::GenericConvolution1D< Q, opT >::GenericConvolution1D(), madness::Convolution1D< Q >::get_rnlp(), and madness::Convolution1D< Q >::rnlij().
|
pure virtual |
Returns true if the block of rnlp is expected to be small.
Implemented in madness::GenericConvolution1D< Q, opT >, and madness::GaussianConvolution1D< Q >.
Referenced by madness::Convolution1D< Q >::get_issmall().
|
inline |
Returns a pointer to the cached modified make_nonstandard form of the operator.
[in] | op_key | holds the scale and the source and target translations |
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().
|
inlinevirtual |
Returns the level for projection.
Reimplemented in madness::GenericConvolution1D< Q, opT >, and madness::GaussianConvolution1D< Q >.
Referenced by madness::Convolution1D< Q >::get_rnlp().
|
inline |
Returns a pointer to the cached make_nonstandard form of the operator.
References madness::copy_2d_patch(), madness::fast_transpose(), madness::Convolution1D< Q >::get_issmall(), madness::Convolution1D< Q >::hgT, madness::Convolution1D< Q >::k, madness::Convolution1D< Q >::ns_cache, p(), madness::Tensor< T >::ptr(), R, madness::Convolution1D< Q >::rnlij(), s0, T(), and madness::transform().
|
inline |
Referenced by madness::Convolution1D< Q >::get_rnlp().
|
inline |
References madness::Convolution1D< Q >::arg, and R.
|
inline |
Computes the transition matrix elements for the convolution for n,l.
Returns the tensor
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().
|
pure virtual |
Compute the projection of the operator onto the double order polynomials.
Implemented in madness::GenericConvolution1D< Q, opT >, and madness::GaussianConvolution1D< Q >.
Referenced by madness::Convolution1D< Q >::get_rnlp().
double madness::Convolution1D< Q >::arg |
Referenced by madness::Convolution1D< Q >::phase().
Tensor<double> madness::Convolution1D< Q >::c |
Referenced by madness::Convolution1D< Q >::Convolution1D(), and madness::Convolution1D< Q >::rnlij().
Tensor<double> madness::Convolution1D< Q >::hg |
Tensor<double> madness::Convolution1D< Q >::hgT |
Tensor<double> madness::Convolution1D< Q >::hgT2k |
Referenced by madness::Convolution1D< Q >::Convolution1D(), and madness::Convolution1D< Q >::get_rnlp().
int madness::Convolution1D< Q >::k |
int madness::Convolution1D< Q >::maxR |
Number of lattice translations for sum.
Referenced by madness::Convolution1D< Q >::get_issmall(), and madness::Convolution1D< Q >::get_rnlp().
|
mutable |
Referenced by madness::Convolution1D< Q >::mod_nonstandard().
int madness::Convolution1D< Q >::npt |
Number of quadrature points (is this used?)
Referenced by madness::Convolution1D< Q >::Convolution1D(), madness::GenericConvolution1D< Q, opT >::rnlp(), and madness::GaussianConvolution1D< Q >::rnlp().
|
mutable |
Referenced by madness::Convolution1D< Q >::nonstandard().
Tensor<double> madness::Convolution1D< Q >::quad_w |
Tensor<double> madness::Convolution1D< Q >::quad_x |
|
mutable |
Referenced by madness::Convolution1D< Q >::rnlij().
|
mutable |
Referenced by madness::Convolution1D< Q >::get_rnlp().