MADNESS 0.10.1
|
Holds displacements for applying operators to avoid replicating for all operators. More...
#include <displacements.h>
Public Member Functions | |
Displacements () | |
const std::vector< Key< NDIM > > & | get_disp () |
return the standard displacements appropriate for operators w/o lattice summation | |
const std::vector< Key< NDIM > > & | get_disp (Level n, const array_of_bools< NDIM > &kernel_lattice_sum_axes) |
Static Public Member Functions | |
static int | bmax_default () |
static void | reset_periodic_axes (const array_of_bools< NDIM > &new_periodic_axes) |
rebuilds periodic displacements so that they are optimal for the given set of periodic axes | |
Static Private Member Functions | |
static bool | cmp_keys (const Key< NDIM > &a, const Key< NDIM > &b) |
static bool | cmp_keys_periodic (const Key< NDIM > &a, const Key< NDIM > &b) |
static void | make_disp (int bmax) |
static void | make_disp_periodic (int bmax, Level n) |
Static Private Attributes | |
static std::vector< Key< NDIM > > | disp |
standard displacements to be used with standard kernels (range-unrestricted, no lattice sum) | |
static std::vector< Key< NDIM > > | disp_periodic [64] |
displacements to be used with lattice-summed kernels | |
static array_of_bools< NDIM > | periodic_axes {false} |
along which axes lattice summation is performed? | |
Holds displacements for applying operators to avoid replicating for all operators.
|
inline |
first time this is called displacements are generated. if boundary conditions are not periodic, the periodic displacements are generated for all axes. This allows to support application of operators with boundary conditions periodic along any axis (including all). If need to use periodic boundary conditions for some axes only, make sure to set the boundary conditions appropriately before the first call to this
References madness::Displacements< NDIM >::bmax_default(), madness::Displacements< NDIM >::disp, madness::Displacements< NDIM >::disp_periodic, MADNESS_PRAGMA_CLANG, madness::Displacements< NDIM >::make_disp(), NDIM, madness::pop(), and madness::Displacements< NDIM >::reset_periodic_axes().
|
inlinestatic |
|
inlinestaticprivate |
Referenced by madness::Displacements< NDIM >::make_disp().
|
inlinestaticprivate |
References a, b, and madness::Displacements< NDIM >::periodic_axes.
Referenced by madness::Displacements< NDIM >::make_disp_periodic().
|
inline |
return the standard displacements appropriate for operators w/o lattice summation
References madness::Displacements< NDIM >::disp, MADNESS_PRAGMA_CLANG, and madness::pop().
|
inline |
References madness::array_of_bools< N >::any(), madness::Displacements< NDIM >::disp, madness::Displacements< NDIM >::disp_periodic, MADNESS_ASSERT, MADNESS_EXCEPTION, MADNESS_PRAGMA_CLANG, NDIM, madness::Displacements< NDIM >::periodic_axes, and madness::pop().
Referenced by madness::FunctionImpl< T, NDIM >::do_apply_directed_screening(), and madness::SeparatedConvolution< Q, NDIM >::get_disp().
|
inlinestaticprivate |
References madness::Displacements< NDIM >::cmp_keys(), d, madness::Displacements< NDIM >::disp, MADNESS_EXCEPTION, and NDIM.
Referenced by madness::Displacements< NDIM >::Displacements().
|
inlinestaticprivate |
References madness::array_of_bools< N >::any(), madness::Displacements< NDIM >::cmp_keys_periodic(), d, madness::Displacements< NDIM >::disp_periodic, MADNESS_ASSERT, MADNESS_PRAGMA_CLANG, NDIM, madness::Displacements< NDIM >::periodic_axes, and madness::pop().
Referenced by madness::Displacements< NDIM >::reset_periodic_axes().
|
inlinestatic |
rebuilds periodic displacements so that they are optimal for the given set of periodic axes
this must be done while no references to prior periodic displacements are outstanding (i.e. no operator application tasks in flight)
new_periodic_axes | the new periodic axes |
References madness::array_of_bools< N >::any(), madness::Displacements< NDIM >::bmax_default(), MADNESS_ASSERT, MADNESS_PRAGMA_CLANG, madness::Displacements< NDIM >::make_disp_periodic(), madness::Displacements< NDIM >::periodic_axes, and madness::pop().
Referenced by madness::Displacements< NDIM >::Displacements().
|
staticprivate |
standard displacements to be used with standard kernels (range-unrestricted, no lattice sum)
Referenced by madness::Displacements< NDIM >::Displacements(), madness::Displacements< NDIM >::get_disp(), madness::Displacements< NDIM >::get_disp(), and madness::Displacements< NDIM >::make_disp().
|
staticprivate |
displacements to be used with lattice-summed kernels
Referenced by madness::Displacements< NDIM >::Displacements(), madness::Displacements< NDIM >::get_disp(), and madness::Displacements< NDIM >::make_disp_periodic().
|
staticprivate |
along which axes lattice summation is performed?
Referenced by madness::Displacements< NDIM >::cmp_keys_periodic(), madness::Displacements< NDIM >::get_disp(), madness::Displacements< NDIM >::make_disp_periodic(), and madness::Displacements< NDIM >::reset_periodic_axes().