vanishes

Function vanishes 

Source
pub(super) fn vanishes<const N: usize>(
    wave: Family,
    inputs: &Inputs<N>,
    direct: &[[Jet<N>; 3]; 3],
    kpar: &[Jet<N>; 3],
) -> bool
Expand description

Whether the sum vanishes by symmetry.

That holds for odd degrees of spherical and odd orders of cylindrical waves where the reduced Bloch vector kpar is exactly zero and twice the reduced shift is exactly one of the combinations of the reduced rows direct with coefficients in {-1, 0, 1} (2 r lies in their cell).

ยงWhy

Inversion maps the images -r - R onto themselves and changes the sign of the waves, so every Ewald part and the self term vanish at any split and k, while the computed parts would leave rounding of the order of the terms. The derivatives that move k alone vanish too; the others keep the check of the predicted loss (cancellation).