reduce_to_fundamental_sector#

de_ebsd.diffraction.reduce_to_fundamental_sector(directions, space_group, cache_key=None)[source]#

Fold directions onto the point-group fundamental sector.

The master pattern is invariant under the crystal point group – I(k) = I(g k) – so directions related by symmetry share one intensity. Reduces every direction to its canonical fundamental-sector representative (orix in_fundamental_sector) and deduplicates on-device: symmetry-equivalent grid points map to a bit-identical representative, so the fold is exact (no interpolation). Cubic grids collapse ~15x; low-symmetry groups less.

cache_key (e.g. the grid npx) memoizes the result – the fold depends only on the grid and the point group, so passing it makes repeated calls (energy bins, refine) free.

Returns (reps, inverse) – the unique representative directions to evaluate, and an index mapping each input direction to its representative, so full_values = backend(reps)[inverse].