template<typename T, std::size_t NDIM>
struct madness::NuclearCuspyBox_op< T, NDIM >
This works similar to the Cuspybox_op: The key is broken apart (2N-dimensional -> 2x N-Dimensional) then it is checked if one of the lower dimensional keys contains a lower dimensional special points (which will be the nuclear-coordinates)
template<typename T , std::size_t NDIM>
Operator which decides if the key belongs to a special box The key is broken appart in two lower dimensional keys (6D -> 2x3D) The special points should be given in a format which can also be broken appart so: 6D special_points = (3D-special-points, 3D-special-points) if the refinement level is already beyond half of the special_level then refinement is only enforded if the broken keys are the same (6D box contains cusp)
Reimplemented from madness::Specialbox_op< T, NDIM >.
References madness::Specialbox_op< T, NDIM >::box_is_at_boundary(), madness::Key< NDIM >::break_apart(), madness::f, madness::Specialbox_op< T, NDIM >::get_half_of_special_level(), madness::FunctionImpl< T, NDIM >::get_special_level(), madness::Key< NDIM >::level(), MADNESS_ASSERT, MADNESS_EXCEPTION, NDIM, madness::simpt2key(), and madness::user_to_sim().