Beyn wrappers for periodic system.
[qpms.git] / TODO.md
blob12d25df1b09637476c0cc4cf266e3fc17f8d23e4
1 TODO list before public release
2 ===============================
4 - Tests!
5 - Docs!
6 - Cross section calculations.
7 - Field calculations.
8 - Complex frequencies, n's, k's.
9 - Transforming point (meta)generators.
10 - Check whether moble's quaternions and my 
11   quaternions give the same results in tmatrices.py
12 - Ewald summations of all types of lattices (dimensionality-wise).
13 - Split lattices.h into separate point generator and lattice vector manipulation parts.
14   * Maybe move something from the .h to .c file.
15 - Check exact normalisation convention of scuff-tmatrix output.
16 - Check whether the Condon-Shortley phase affects the form of Wigner matrices.
17 - The xflip, yflip and possible i-factor problem.
18 - General 3D point group symmetries.
19   * Instead the current hard-coded limited set.
20   * The generation, finding subgroups etc. should be "easy" with
21     quaternions and stuff, as the  set is quite limited, 
22     see [Wikipedia](https://en.wikipedia.org/wiki/Point_groups_in_three_dimensions).
23   * Not sure about the representations, though.
24   * As a description of a T-matrix / particle metadata.
25 - Nice CLI for all general enough utilities.
26 - Remove legacy code.
27 - Split qpms_c.pyx.
28 - Reduce compiler warnings.
29 - Python exceptions instead of hard crashes in the C library where possible.
30 - Scatsystem init sometimes fail due to rounding errors and hardcoded absolute tolerance 
31   in the qpms_tmatrix_isclose() call.
32 - Prefix all identifiers. Maybe think about a different prefix than qpms?
33 - Consistent indentation and style overall.
34 - Rewrite the parallelized translation matrix, mode problem matrix generators
35   in a way that reuses as much code as possible without copypasting
37 Nice but less important features
38 --------------------------------
40 - Static, thread-safe caches of constant coefficients + API without the current "calculators".