|
MADNESS 0.10.1
|
#include <funcimpl.h>

Public Types | |
| typedef CoeffTracker< T, LDIM > | ctL |
| typedef CoeffTracker< T, NDIM > | ctT |
| typedef Vphi_ij_u_op_NS< opT, LDIM > | this_type |
Public Member Functions | |
| Vphi_ij_u_op_NS () | |
| Vphi_ij_u_op_NS (implT *result, const opT &leaf_op, const ctT &iau, const ctL &iai, const ctL &iaj, const implT *eri, double target_precision, int oversampling=1) | |
| void | accumulate_into_result (const keyT &key, const coeffT &coeff) const |
| Future< this_type > | activate () const |
| double | compute_error_from_inaccurate_refinement (const keyT &key, const Key< LDIM > &key1, const Key< LDIM > &key2) const |
| error from inaccurate refinement: cross terms of (snorm,dnorm) for u*[i]*[j] | |
| std::pair< bool, coeffT > | continue_recursion (const std::vector< bool > child_is_leaf, const tensorT &coeffs, const keyT &key) const |
| tensorT | eri_coeffs (const keyT &key) const |
| get ERI coefficients at key (same logic as Vphi_op_NS::eri_coeffs) | |
| this_type | forward_ctor (implT *result1, const opT &leaf_op1, const ctT &iau1, const ctL &iai1, const ctL &iaj1, const implT *eri1, double target_precision1, int oversampling1) |
| bool | have_eri () const |
| bool | have_i () const |
| bool | have_j () const |
| void | leaf_action (const keyT &key, const coeffT &coeff) const |
| this_type | make_child (const keyT &child) const |
| std::pair< coeffT, double > | make_sum_coeffs (const keyT &key) const |
| std::pair< bool, coeffT > | operator() (const keyT &key) const |
| bool | randomize () const |
| template<typename Archive> | |
| void | serialize (const Archive &ar) |
Public Attributes | |
| const implT * | eri |
| exact ERI g(1,2), on-demand, optional (null → function mode) | |
| ctL | iai |
| i(1), NS form, optional (null impl → skip particle-1 multiply) | |
| ctL | iaj |
| j(2), NS form, optional (null impl → skip particle-2 multiply) | |
| ctT | iau |
| u(1,2), NS form, required | |
| opT | leaf_op |
| int | oversampling |
| pointwise_multiplier oversampling (k+oversampling grid) | |
| implT * | result |
| output function (function mode) or accumulation handle (inner mode) | |
| double | target_precision |
| leaf threshold used for the post-screening truncation | |
adaptive multiplication of u(1,2) by optional orbitals i(1) and/or j(2), with optional contraction against an exact ERI g(1,2) Modes (controlled by which pointers are non-null):
Error control: d-norm cross terms (inaccurate refinement, from CoeffTracker::dnorm) plus tnorm error from each pointwise_multiplier application. Replaces multiply_op<LDIM> (adds d-norm error) and do_inner_local_on_demand (adds inaccurate-refinement error and adaptive NS-form traversal).
| typedef CoeffTracker<T,LDIM> madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::ctL |
| typedef CoeffTracker<T,NDIM> madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::ctT |
| typedef Vphi_ij_u_op_NS<opT,LDIM> madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::this_type |
|
inline |
References eri, oversampling, result, and target_precision.
|
inline |
References eri, iai, iaj, iau, leaf_op, MADNESS_ASSERT, oversampling, result, and target_precision.
|
inline |
References madness::FunctionNode< T, NDIM >::accumulate(), and result.
Referenced by leaf_action().
|
inline |
References eri, forward_ctor(), iai, iaj, iau, leaf_op, oversampling, result, target_precision, and madness::detail::wrap_mem_fn().
|
inline |
|
inline |
References madness::FunctionImpl< T, NDIM >::coeffs, madness::copy(), madness::FunctionImpl< T, NDIM >::forward_traverse(), make_child(), p(), and result.
Referenced by operator()().
|
inline |
get ERI coefficients at key (same logic as Vphi_op_NS::eri_coeffs)
References eri, have_eri(), and MADNESS_ASSERT.
Referenced by leaf_action().
|
inline |
Referenced by activate().
|
inline |
References eri.
Referenced by eri_coeffs(), and leaf_action().
|
inline |
References iai.
Referenced by compute_error_from_inaccurate_refinement(), and make_sum_coeffs().
|
inline |
References iaj.
Referenced by compute_error_from_inaccurate_refinement(), and make_sum_coeffs().
|
inline |
leaf action: insert into result (function mode) or contract with ERI and accumulate scalar as the first element of a vk-shaped tensor at key0 (inner mode)
References accumulate_into_result(), eri_coeffs(), madness::Tensor< T >::flat(), madness::GenTensor< T >::full_tensor_copy(), have_eri(), L, result, and madness::TT_FULL.
Referenced by operator()().
|
inline |
References madness::Key< NDIM >::break_apart(), eri, iai, iaj, iau, leaf_op, oversampling, result, and target_precision.
Referenced by continue_recursion().
|
inline |
multiplicative chain: current = u → u·i(1) → u·i(1)·j(2)
Inputs are expected in redundant tree state (cheap to construct from reconstructed, avoids the expensive compress/nonstandard round-trip). In that state CoeffTracker::coeff(key) calls parent_to_child and returns scaling-function coefficients of shape [k]^NDIM, exactly what pointwise_multiplier consumes.
Past a leaf the CoeffTracker pins key_ to the leaf, so coeff(key) interpolates the leaf's [k]^NDIM s-coeffs to the requested level — equivalent to embedding them in a [2k]^NDIM NS tensor (s-part filled, d-part zero) and unfiltering. d-norms past the leaf are zero, which falls out of CoeffTracker::dnorm.
References madness::Key< NDIM >::break_apart(), compute_error_from_inaccurate_refinement(), madness::error(), madness::FunctionImpl< T, NDIM >::pointwise_multiplier< LDIM >::error, madness::GenTensor< T >::full_tensor(), have_i(), have_j(), iai, iaj, iau, madness::FunctionImpl< T, NDIM >::pointwise_multiplier< LDIM >::oversampling, and oversampling.
Referenced by operator()().
|
inline |
|
inline |
|
inline |
References eri, iai, iaj, iau, leaf_op, oversampling, result, and target_precision.
| const implT* madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::eri |
exact ERI g(1,2), on-demand, optional (null → function mode)
Referenced by Vphi_ij_u_op_NS(), Vphi_ij_u_op_NS(), activate(), eri_coeffs(), have_eri(), make_child(), and serialize().
| ctL madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::iai |
i(1), NS form, optional (null impl → skip particle-1 multiply)
Referenced by Vphi_ij_u_op_NS(), activate(), compute_error_from_inaccurate_refinement(), have_i(), make_child(), make_sum_coeffs(), and serialize().
| ctL madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::iaj |
j(2), NS form, optional (null impl → skip particle-2 multiply)
Referenced by Vphi_ij_u_op_NS(), activate(), compute_error_from_inaccurate_refinement(), have_j(), make_child(), make_sum_coeffs(), and serialize().
| ctT madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::iau |
u(1,2), NS form, required
Referenced by Vphi_ij_u_op_NS(), activate(), compute_error_from_inaccurate_refinement(), make_child(), make_sum_coeffs(), and serialize().
| opT madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::leaf_op |
Referenced by Vphi_ij_u_op_NS(), activate(), make_child(), operator()(), and serialize().
| int madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::oversampling |
pointwise_multiplier oversampling (k+oversampling grid)
Referenced by Vphi_ij_u_op_NS(), Vphi_ij_u_op_NS(), activate(), make_child(), make_sum_coeffs(), and serialize().
| implT* madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::result |
output function (function mode) or accumulation handle (inner mode)
Referenced by Vphi_ij_u_op_NS(), Vphi_ij_u_op_NS(), accumulate_into_result(), activate(), continue_recursion(), leaf_action(), make_child(), operator()(), and serialize().
| double madness::FunctionImpl< T, NDIM >::Vphi_ij_u_op_NS< opT, LDIM >::target_precision |
leaf threshold used for the post-screening truncation
Referenced by Vphi_ij_u_op_NS(), Vphi_ij_u_op_NS(), activate(), make_child(), operator()(), and serialize().