mod ace

module ace

ACE ν=3 / λ-SOAP CG contraction of a spherical expansion. ACE ν=3 / λ-SOAP invariants: CG contraction of one spherical expansion.

SOAP is the ν=2 power spectrum Σ_m c_{nlm} c_{n'lm}. The next rotationally invariant is the bispectrum B^{l1 l2 l3}_n = Σ CG(l1 m1, l2 m2 | l3 m3) C_{n l1 m1} C_{n l2 m2} C*_{n l3 m3}. That is the scalar ACE ν=3 / featomic λ=0 product of three expansions. Surface coordination is not this map: SOFI/IRA already return a length.

Functions

fn d_from_c(c: &[f64], n_max: usize, l_max: usize) -> Array2<f64>

∂B/∂c for one centre, shape (ace_dim, n_max n_lm).

fn dim(n_max: usize, l_max: usize) -> usize

n_max times the number of CG triples at l_max.

fn from_c(c: &[f64], n_max: usize, l_max: usize) -> Vec<f64>

ACE ν=3 scalars, length dim.

fn triples(l_max: usize) -> Vec<(usize, usize, usize)>

Allowed (l1, l2, l3) with l1 l2 l3, triangle, and even parity.