MADNESS
version 0.9
|
given a ket and the 1- and 2-electron potentials, construct the function V phi More...
#include <funcimpl.h>
Public Types | |
typedef Vphi_op_NS< opT, LDIM > | this_type |
typedef CoeffTracker< T, NDIM > | ctT |
typedef CoeffTracker< T, LDIM > | ctL |
Public Member Functions | |
bool | randomize () const |
Vphi_op_NS () | |
Vphi_op_NS (implT *result, const opT &leaf_op, const ctT &iaket, const ctL &iap1, const ctL &iap2, const ctL &iav1, const ctL &iav2, const implT *eri) | |
std::pair< bool, coeffT > | operator() (const Key< NDIM > &key) const |
make and insert the coefficients into result's tree More... | |
std::pair< bool, coeffT > | continue_recursion (const std::vector< bool > child_is_leaf, const tensorT &coeffs, const keyT &key) const |
loop over all children and either insert their sum coeffs or continue the recursion More... | |
tensorT | eri_values (const keyT &key) const |
return the values of the 2-particle potential More... | |
coeffT | make_sum_coeffs (const keyT &key) const |
make the sum coeffs for key More... | |
tensorT | make_childrens_sum_coeffs (const keyT &key) const |
make the sum coeffs for all children of key More... | |
this_type | make_child (const keyT &child) const |
Future< this_type > | activate () const |
this_type | forward_ctor (implT *result1, const opT &leaf_op, const ctT &iaket1, const ctL &iap11, const ctL &iap21, const ctL &iav11, const ctL &iav21, const implT *eri1) |
template<typename Archive > | |
void | serialize (const Archive &ar) |
serialize this (needed for use in recursive_op) More... | |
Public Attributes | |
implT * | result |
where to construct Vphi, no need to track parents More... | |
opT | leaf_op |
deciding if a given FunctionNode will be a leaf node More... | |
ctT | iaket |
the ket of a pair function (exclusive with p1, p2) More... | |
ctL | iap1 |
ctL | iap2 |
the particles 1 and 2 (exclusive with ket) More... | |
ctL | iav1 |
ctL | iav2 |
potentials for particles 1 and 2 More... | |
const implT * | eri |
2-particle potential, must be on-demand More... | |
given a ket and the 1- and 2-electron potentials, construct the function V phi
small memory footstep version of Vphi_op: use the NS form to have information about parent and children to determine if a box is a leaf. This will require compression of the constituent functions, which will lead to more memory usage there, but will avoid oversampling of the result function.
typedef CoeffTracker<T,LDIM> madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::ctL |
typedef CoeffTracker<T,NDIM> madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::ctT |
typedef Vphi_op_NS<opT,LDIM> madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::this_type |
|
inline |
|
inline |
|
inline |
|
inline |
loop over all children and either insert their sum coeffs or continue the recursion
[in] | child_is_leaf | for each child: is it a leaf? |
[in] | coeffs | coefficient tensor with 2^N sum coeffs (=unfiltered NS coeffs) |
[in] | key | the key for the NS coeffs (=parent key of the children) |
References madness::FunctionImpl< T, NDIM >::child_patch(), madness::copy(), madness::FunctionImpl< T, NDIM >::forward_traverse(), madness::FunctionImpl< T, NDIM >::get_coeffs(), madness::FunctionImpl< T, NDIM >::get_tensor_args(), madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::make_child(), madness::WorldContainer< keyT, valueT, hashfunT >::owner(), and madness::WorldObject< Derived >::task().
Referenced by madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::operator()().
|
inline |
return the values of the 2-particle potential
[in] | key | the key for which the values are requested |
References madness::FunctionImpl< T, NDIM >::coeffs2values(), madness::FunctionImpl< T, NDIM >::fcube(), madness::FunctionImpl< T, NDIM >::get_functor(), and madness::FunctionImpl< T, NDIM >::is_on_demand().
Referenced by madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::make_childrens_sum_coeffs(), and madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::make_sum_coeffs().
|
inline |
|
inline |
|
inline |
make the sum coeffs for all children of key
References madness::FunctionImpl< T, NDIM >::assemble_coefficients(), madness::Key< NDIM >::break_apart(), madness::FunctionImpl< T, NDIM >::child_patch(), madness::CoeffTracker< T, NDIM >::coeff(), madness::FunctionImpl< T, NDIM >::coeffs2values(), madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::eri_values(), madness::GenTensor< T >::full_tensor_copy(), madness::CoeffTracker< T, NDIM >::get_impl(), madness::outer(), and madness::FunctionImpl< T, NDIM >::unfilter().
Referenced by madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::operator()().
|
inline |
make the sum coeffs for key
References madness::FunctionImpl< T, NDIM >::assemble_coefficients(), madness::Key< NDIM >::break_apart(), madness::CoeffTracker< T, NDIM >::coeff(), madness::FunctionImpl< T, NDIM >::coeffs2values(), madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::eri_values(), madness::FunctionImpl< T, NDIM >::get_cdata(), madness::CoeffTracker< T, NDIM >::get_impl(), and madness::outer().
Referenced by madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::operator()().
|
inline |
make and insert the coefficients into result's tree
References madness::FunctionImpl< T, NDIM >::child_patch(), madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::continue_recursion(), madness::copy(), madness::error(), madness::FunctionImpl< T, NDIM >::filter(), madness::FunctionImpl< T, NDIM >::get_cdata(), madness::FunctionImpl< T, NDIM >::get_coeffs(), madness::FunctionImpl< T, NDIM >::get_tensor_args(), madness::FunctionImpl< T, NDIM >::get_thresh(), madness::FunctionImpl< T, NDIM >::large, madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::leaf_op, MADNESS_EXCEPTION, madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::make_childrens_sum_coeffs(), madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::make_sum_coeffs(), NDIM, madness::WorldContainer< keyT, valueT, hashfunT >::replace(), madness::FunctionImpl< T, NDIM >::small, and madness::FunctionImpl< T, NDIM >::truncate_tol().
|
inline |
|
inline |
serialize this (needed for use in recursive_op)
References madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::iav2.
const implT* madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::eri |
2-particle potential, must be on-demand
Referenced by madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::make_child().
ctT madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::iaket |
the ket of a pair function (exclusive with p1, p2)
ctL madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::iap1 |
ctL madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::iap2 |
the particles 1 and 2 (exclusive with ket)
ctL madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::iav1 |
ctL madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::iav2 |
potentials for particles 1 and 2
Referenced by madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::serialize().
opT madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::leaf_op |
deciding if a given FunctionNode will be a leaf node
Referenced by madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::operator()().
implT* madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::result |
where to construct Vphi, no need to track parents