|
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] |
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 |
|
static |
Initialize the quadrature information.
Made public with all arguments thru interface for reuse in FunctionImpl::err_box
References _init_quadrature(), madness::gauss_legendre(), k, madness::legendre_scaling_functions(), mu, npt, quad_phi, quad_phit, quad_phiw, quad_w, quad_x, and madness::transpose().
Referenced by FunctionCommonData(), _init_quadrature(), madness::FunctionImpl< T, LDIM >::errsq_local(), and madness::FunctionImpl< T, NDIM >::print_plane_local().
|
private |
Private. Initialize the twoscale coefficients.
References madness::_(), _init_twoscale(), copy(), g0, g0T, g1, g1T, h0, h0T, h1, h1T, hg, hgsonly, hgT, k, madness::transpose(), and madness::two_scale_hg().
Referenced by FunctionCommonData(), and _init_twoscale().
|
inlinestatic |
References FunctionCommonData(), data, k, MADNESS_ASSERT, MADNESS_PRAGMA_CLANG, madness::MAXK, and madness::pop().
Referenced by madness::FunctionImpl< T, LDIM >::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 |
Referenced by get().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::g0 |
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::g0T |
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::g1 |
The separate blocks of twoscale coefficients.
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::g1T |
The separate blocks of twoscale coefficients.
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::h0 |
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::h0T |
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::h1 |
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::h1T |
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::hg |
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::hgsonly |
hg[0:k,:]
Referenced by _init_twoscale().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::hgT |
The full twoscale coeff (2k,2k) and transpose.
Referenced by _init_twoscale().
| int madness::FunctionCommonData< T, NDIM >::k |
order of the wavelet
Referenced by FunctionCommonData(), _init_quadrature(), _init_twoscale(), and get().
| Key<NDIM> madness::FunctionCommonData< T, NDIM >::key0 |
Key for root node.
Referenced by FunctionCommonData().
| int madness::FunctionCommonData< T, NDIM >::npt |
no. of quadrature points
Referenced by FunctionCommonData(), and _init_quadrature().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phi |
quad_phi(i,j) = at x[i] value of phi[j]
Referenced by FunctionCommonData(), and _init_quadrature().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phit |
transpose of quad_phi
Referenced by FunctionCommonData(), _init_quadrature(), and madness::FunctionImpl< T, LDIM >::mul().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_phiw |
quad_phiw(i,j) = at x[i] value of w[i]*phi[j]
Referenced by FunctionCommonData(), _init_quadrature(), and madness::FunctionImpl< T, LDIM >::mul().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_w |
quadrature weights
Referenced by FunctionCommonData(), and _init_quadrature().
| Tensor<double> madness::FunctionCommonData< T, NDIM >::quad_x |
quadrature points
Referenced by FunctionCommonData(), _init_quadrature(), 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 FunctionCommonData().
| std::vector<Slice> madness::FunctionCommonData< T, NDIM >::s0 |
s[0] in each dimension to get scaling coeff
Referenced by FunctionCommonData(), madness::FunctionImpl< T, LDIM >::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 FunctionCommonData().
| std::vector<long> madness::FunctionCommonData< T, NDIM >::v2k |
(2k,...) used to initialize Tensors
Referenced by FunctionCommonData().
| std::vector<long> madness::FunctionCommonData< T, NDIM >::vk |
(k,...) used to initialize Tensors
Referenced by FunctionCommonData(), madness::FunctionImpl< T, LDIM >::inner_ext_node(), madness::FunctionImpl< T, LDIM >::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 FunctionCommonData().