MADNESS
version 0.9
|
FunctionCommonData holds all Function data common for given k. More...
#include <function_common_data.h>
Public Types | |
typedef Tensor< T > | tensorT |
Type of tensor used to hold coeff. More... | |
Static Public Member Functions | |
static const FunctionCommonData< T, NDIM > & | get (int k) |
static void | _init_quadrature (int k, int npt, Tensor< double > &quad_x, Tensor< double > &quad_w, Tensor< double > &quad_phi, Tensor< double > &quad_phiw, Tensor< double > &quad_phit) |
Initialize the quadrature information. More... | |
Public Attributes | |
int | k |
order of the wavelet More... | |
int | npt |
no. of quadrature points More... | |
Slice | s [4] |
s[0]=Slice(0,k-1), s[1]=Slice(k,2*k-1), etc. More... | |
std::vector< Slice > | s0 |
s[0] in each dimension to get scaling coeff More... | |
std::vector< Slice > | sh |
Slice(0,(k-1)/2) in each dimension for autorefine test. More... | |
std::vector< long > | vk |
(k,...) used to initialize Tensors More... | |
std::vector< long > | v2k |
(2k,...) used to initialize Tensors More... | |
std::vector< long > | vq |
(npt,...) used to initialize Tensors More... | |
Key< NDIM > | key0 |
Key for root node. More... | |
Tensor< double > | quad_x |
quadrature points More... | |
Tensor< double > | quad_w |
quadrature weights More... | |
Tensor< double > | quad_phi |
quad_phi(i,j) = at x[i] value of phi[j] More... | |
Tensor< double > | quad_phit |
transpose of quad_phi More... | |
Tensor< double > | quad_phiw |
quad_phiw(i,j) = at x[i] value of w[i]*phi[j] More... | |
Tensor< double > | h0 |
Tensor< double > | h1 |
Tensor< double > | g0 |
Tensor< double > | g1 |
The separate blocks of twoscale coefficients. More... | |
Tensor< double > | h0T |
Tensor< double > | h1T |
Tensor< double > | g0T |
Tensor< double > | g1T |
The separate blocks of twoscale coefficients. More... | |
Tensor< double > | hg |
Tensor< double > | hgT |
The full twoscale coeff (2k,2k) and transpose. More... | |
Tensor< double > | hgsonly |
hg[0:k,:] More... | |
FunctionCommonData holds all Function data common for given k.
Since Function assignment and copy constructors are shallow it greatly simplifies maintaining consistent state to have all (permanent) state encapsulated in a single class. The state is shared between instances using a shared_ptr. Also, separating shared from instance specific state accelerates the constructor, which is important for massive parallelism, and permitting inexpensive use of temporaries. The default copy constructor and assignment operator are used but are probably never invoked.
typedef Tensor<T> madness::FunctionCommonData< T, NDIM >::tensorT |
Type of tensor used to hold coeff.
|
static |
Initialize the quadrature information.
Made public with all arguments thru interface for reuse in FunctionImpl::err_box
References madness::gauss_legendre(), madness::legendre_scaling_functions(), mu, and madness::transpose().
Referenced by madness::FunctionImpl< Q, NDIM >::errsq_local(), and madness::FunctionImpl< T, NDIM >::print_plane_local().
|
inlinestatic |
Referenced by madness::FunctionImpl< Q, NDIM >::mul().
Tensor<double> madness::FunctionCommonData< T, NDIM >::g0 |
Tensor<double> madness::FunctionCommonData< T, NDIM >::g0T |
Tensor<double> madness::FunctionCommonData< T, NDIM >::g1 |
The separate blocks of twoscale coefficients.
Tensor<double> madness::FunctionCommonData< T, NDIM >::g1T |
The separate blocks of twoscale coefficients.
Tensor<double> madness::FunctionCommonData< T, NDIM >::h0 |
Tensor<double> madness::FunctionCommonData< T, NDIM >::h0T |
Tensor<double> madness::FunctionCommonData< T, NDIM >::h1 |
Tensor<double> madness::FunctionCommonData< T, NDIM >::h1T |
Tensor<double> madness::FunctionCommonData< T, NDIM >::hg |
Referenced by madness::FunctionImpl< Q, NDIM >::NScoeffs2values().
Tensor<double> madness::FunctionCommonData< T, NDIM >::hgsonly |
hg[0:k,:]
Tensor<double> madness::FunctionCommonData< T, NDIM >::hgT |
The full twoscale coeff (2k,2k) and transpose.
Referenced by madness::FunctionImpl< Q, NDIM >::values2NScoeffs().
int madness::FunctionCommonData< T, NDIM >::k |
Key<NDIM> madness::FunctionCommonData< T, NDIM >::key0 |
Key for root node.
Referenced by madness::FunctionImpl< Q, NDIM >::binaryXX(), madness::FunctionImpl< Q, NDIM >::FunctionImpl(), madness::FunctionImpl< Q, NDIM >::gaxpy_ext(), madness::FunctionImpl< Q, NDIM >::gaxpy_inplace_reconstructed(), madness::FunctionImpl< Q, NDIM >::hartree_product(), madness::FunctionImpl< Q, NDIM >::make_Vphi(), madness::FunctionImpl< Q, NDIM >::multiply(), madness::FunctionImpl< Q, NDIM >::mulXX(), madness::FunctionImpl< Q, NDIM >::mulXXvec(), madness::FunctionImpl< Q, NDIM >::project_out(), madness::FunctionImpl< Q, NDIM >::recursive_apply(), madness::FunctionImpl< Q, NDIM >::refine(), madness::FunctionImpl< Q, NDIM >::unaryXX(), and madness::FunctionImpl< Q, NDIM >::unaryXXvalues().
int madness::FunctionCommonData< T, NDIM >::npt |
no. of quadrature points
Referenced by madness::FunctionImpl< Q, NDIM >::errsq_local(), madness::FunctionImpl< Q, NDIM >::fcube_for_mul(), madness::FunctionImpl< Q, NDIM >::NS_fcube_for_mul(), madness::FunctionImpl< Q, NDIM >::NScoeffs2values(), and madness::FunctionImpl< Q, NDIM >::values2NScoeffs().
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phi |
quad_phi(i,j) = at x[i] value of phi[j]
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phit |
transpose of quad_phi
Referenced by madness::FunctionImpl< Q, NDIM >::coeffs2values(), madness::FunctionImpl< Q, NDIM >::mul(), and madness::FunctionImpl< Q, NDIM >::NScoeffs2values().
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phiw |
quad_phiw(i,j) = at x[i] value of w[i]*phi[j]
Referenced by madness::FunctionImpl< Q, NDIM >::do_binary_op(), madness::FunctionImpl< Q, NDIM >::do_mul(), madness::FunctionImpl< Q, NDIM >::mul(), madness::FunctionImpl< Q, NDIM >::values2coeffs(), and madness::FunctionImpl< Q, NDIM >::values2NScoeffs().
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_w |
quadrature weights
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_x |
Slice madness::FunctionCommonData< T, NDIM >::s[4] |
s[0]=Slice(0,k-1), s[1]=Slice(k,2*k-1), etc.
Referenced by madness::FunctionImpl< Q, NDIM >::NScoeffs2values(), and madness::FunctionImpl< Q, NDIM >::values2NScoeffs().
std::vector<Slice> madness::FunctionCommonData< T, NDIM >::s0 |
s[0] in each dimension to get scaling coeff
Referenced by madness::FunctionImpl< Q, NDIM >::binaryXXa(), madness::FunctionImpl< Q, NDIM >::gaxpy_ext_recursive(), madness::FunctionImpl< Q, NDIM >::inner_ext_recursive(), madness::FunctionImpl< Q, NDIM >::mul(), madness::FunctionImpl< Q, NDIM >::mulXXa(), madness::FunctionImpl< Q, NDIM >::mulXXveca(), and madness::FunctionImpl< Q, NDIM >::refine_op().
std::vector<Slice> madness::FunctionCommonData< T, NDIM >::sh |
Slice(0,(k-1)/2) in each dimension for autorefine test.
std::vector<long> madness::FunctionCommonData< T, NDIM >::v2k |
(2k,...) used to initialize Tensors
Referenced by madness::FunctionImpl< Q, NDIM >::binaryXXa(), madness::FunctionImpl< Q, NDIM >::gaxpy_ext_recursive(), madness::FunctionImpl< Q, NDIM >::inner_ext_recursive(), madness::FunctionImpl< Q, NDIM >::mulXXa(), madness::FunctionImpl< Q, NDIM >::mulXXveca(), madness::FunctionImpl< Q, NDIM >::refine_op(), and madness::FunctionImpl< Q, NDIM >::vtransform_doit().
std::vector<long> madness::FunctionCommonData< T, NDIM >::vk |
(k,...) used to initialize Tensors
Referenced by madness::FunctionImpl< Q, NDIM >::do_binary_op(), madness::FunctionImpl< Q, NDIM >::do_mul(), madness::FunctionImpl< Q, NDIM >::do_project_out(), madness::FunctionImpl< Q, NDIM >::inner_ext_node(), madness::FunctionImpl< Q, NDIM >::mul(), madness::FunctionImpl< Q, NDIM >::mulXXa(), madness::FunctionImpl< Q, NDIM >::mulXXveca(), madness::FunctionImpl< Q, NDIM >::read_grid(), and madness::FunctionImpl< Q, NDIM >::read_grid2().
std::vector<long> madness::FunctionCommonData< T, NDIM >::vq |
(npt,...) used to initialize Tensors