MADNESS 0.10.1
|
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. | |
Static Public Member Functions | |
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. | |
static const FunctionCommonData< T, NDIM > & | get (int k) |
Public Attributes | |
Tensor< double > | g0 |
Tensor< double > | g0T |
Tensor< double > | g1 |
The separate blocks of twoscale coefficients. | |
Tensor< double > | g1T |
The separate blocks of twoscale coefficients. | |
Tensor< double > | h0 |
Tensor< double > | h0T |
Tensor< double > | h1 |
Tensor< double > | h1T |
Tensor< double > | hg |
Tensor< double > | hgsonly |
hg[0:k,:] | |
Tensor< double > | hgT |
The full twoscale coeff (2k,2k) and transpose. | |
int | k |
order of the wavelet | |
Key< NDIM > | key0 |
Key for root node. | |
int | npt |
no. of quadrature points | |
Tensor< double > | quad_phi |
quad_phi(i,j) = at x[i] value of phi[j] | |
Tensor< double > | quad_phit |
transpose of quad_phi | |
Tensor< double > | quad_phiw |
quad_phiw(i,j) = at x[i] value of w[i]*phi[j] | |
Tensor< double > | quad_w |
quadrature weights | |
Tensor< double > | quad_x |
quadrature points | |
Slice | s [4] |
s[0]=Slice(0,k-1), s[1]=Slice(k,2*k-1), etc. | |
std::vector< Slice > | s0 |
s[0] in each dimension to get scaling coeff | |
std::vector< Slice > | sh |
Slice(0,(k-1)/2) in each dimension for autorefine test. | |
std::vector< long > | v2k |
(2k,...) used to initialize Tensors | |
std::vector< long > | vk |
(k,...) used to initialize Tensors | |
std::vector< long > | vq |
(npt,...) used to initialize Tensors | |
Private Member Functions | |
FunctionCommonData (int k) | |
Private. Do first use initialization via get. | |
void | _init_twoscale () |
Private. Initialize the twoscale coefficients. | |
Static Private Attributes | |
static const FunctionCommonData< T, NDIM > * | data [MAXK] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} |
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.
|
inlineprivate |
Private. Do first use initialization via get.
References madness::FunctionCommonData< T, NDIM >::_init_quadrature(), madness::FunctionCommonData< T, NDIM >::_init_twoscale(), madness::FunctionCommonData< T, NDIM >::k, madness::FunctionCommonData< T, NDIM >::key0, NDIM, madness::FunctionCommonData< T, NDIM >::npt, madness::FunctionCommonData< T, NDIM >::quad_phi, madness::FunctionCommonData< T, NDIM >::quad_phit, madness::FunctionCommonData< T, NDIM >::quad_phiw, madness::FunctionCommonData< T, NDIM >::quad_w, madness::FunctionCommonData< T, NDIM >::quad_x, madness::FunctionCommonData< T, NDIM >::s, madness::FunctionCommonData< T, NDIM >::s0, madness::FunctionCommonData< T, NDIM >::sh, madness::FunctionCommonData< T, NDIM >::v2k, madness::FunctionCommonData< T, NDIM >::vk, and madness::FunctionCommonData< T, NDIM >::vq.
|
static |
Initialize the quadrature information.
Made public with all arguments thru interface for reuse in FunctionImpl::err_box
References madness::gauss_legendre(), k, madness::legendre_scaling_functions(), mu, madness::Tensor< T >::ptr(), and madness::transpose().
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData(), madness::FunctionImpl< T, NDIM >::errsq_local(), and madness::FunctionImpl< T, NDIM >::print_plane_local().
|
private |
Private. Initialize the twoscale coefficients.
References madness::_(), madness::copy(), k, madness::transpose(), and madness::two_scale_hg().
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().
|
inlinestatic |
References madness::FunctionCommonData< T, NDIM >::k, MADNESS_ASSERT, MADNESS_PRAGMA_CLANG, madness::MAXK, and madness::pop().
Referenced by madness::FunctionImpl< T, NDIM >::mul(), madness::FunctionImpl< T, NDIM >::pointwise_multiplier< LDIM >::operator()(), madness::FunctionImpl< T, NDIM >::pointwise_multiplier< LDIM >::operator()(), madness::FunctionImpl< T, NDIM >::tnorm(), madness::FunctionImpl< T, NDIM >::tnorm(), and madness::FunctionImpl< T, NDIM >::tnorm().
|
staticprivate |
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 |
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.
int madness::FunctionCommonData< T, NDIM >::k |
order of the wavelet
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData(), and madness::FunctionCommonData< T, NDIM >::get().
Key for root node.
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().
int madness::FunctionCommonData< T, NDIM >::npt |
no. of quadrature points
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phi |
quad_phi(i,j) = at x[i] value of phi[j]
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phit |
transpose of quad_phi
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData(), and madness::FunctionImpl< T, NDIM >::mul().
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phiw |
quad_phiw(i,j) = at x[i] value of w[i]*phi[j]
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData(), and madness::FunctionImpl< T, NDIM >::mul().
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_w |
quadrature weights
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().
Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_x |
quadrature points
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData(), madness::guessfactory::ExopUnaryOpStructure::operator()(), madness::guessfactory::ExopUnaryOpStructure::operator()(), madness::BinaryOpStructure< NDIM >::operator()(), madness::UnaryOpStructure< NDIM >::operator()(), and madness::apply_kernel_helper::slater_apply().
Slice madness::FunctionCommonData< T, NDIM >::s[4] |
s[0]=Slice(0,k-1), s[1]=Slice(k,2*k-1), etc.
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().
std::vector<Slice> madness::FunctionCommonData< T, NDIM >::s0 |
s[0] in each dimension to get scaling coeff
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData(), madness::FunctionImpl< T, NDIM >::mul(), and madness::FunctionNode< T, NDIM >::recompute_snorm_and_dnorm().
std::vector<Slice> madness::FunctionCommonData< T, NDIM >::sh |
Slice(0,(k-1)/2) in each dimension for autorefine test.
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().
std::vector<long> madness::FunctionCommonData< T, NDIM >::v2k |
(2k,...) used to initialize Tensors
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().
std::vector<long> madness::FunctionCommonData< T, NDIM >::vk |
(k,...) used to initialize Tensors
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData(), madness::FunctionImpl< T, NDIM >::inner_ext_node(), madness::FunctionImpl< T, NDIM >::mul(), and madness::FunctionNode< T, NDIM >::recompute_snorm_and_dnorm().
std::vector<long> madness::FunctionCommonData< T, NDIM >::vq |
(npt,...) used to initialize Tensors
Referenced by madness::FunctionCommonData< T, NDIM >::FunctionCommonData().