TRIQS / nda

C++ library for multi-dimensional arrays
https://triqs.github.io/nda
Other
13 stars 11 forks source link

Implementation of symmetry reduction for nda arrays #39

Closed dominikkiese closed 1 year ago

dominikkiese commented 1 year ago

Added new types nda::operation and nda::sym_grp. The latter can be constructed from a list of callable objects F modelling the NdaSymmetry concept (take the indices of an nda::array, mutate them and return an nda::operation) and an nda::array. Instances of nda::sym_grp contain a list of orbits (with associated operations) traversed by recursively applying F to non-equivalent elements of the array. Given a set of symmetries, this allows one to restrict the calculation of array elements to an irreducible subset instead of the whole object.

Wentzell commented 1 year ago

This was merged into unstable

Wentzell commented 1 year ago

Thank you @dominikkiese for this useful addition