2020-05-31 14:13:56 +03:00
|
|
|
TODO list before 1.0 release
|
|
|
|
============================
|
2019-06-27 16:42:35 +03:00
|
|
|
|
|
|
|
- Tests!
|
|
|
|
- Docs!
|
2020-05-31 14:13:56 +03:00
|
|
|
- Cross section calculations. (Done in some Python scripts.)
|
|
|
|
- Field calculations. (Partly done, needs more testing.)
|
|
|
|
* Also test periodic vs. nonperiodic consistence (big finite lattice + absorbing medium vs. infinite lattice + absorbing medium).
|
|
|
|
- Complex frequencies, n's, k's. (Mostly done.)
|
2019-06-27 16:42:35 +03:00
|
|
|
- Transforming point (meta)generators.
|
2019-07-21 23:37:25 +03:00
|
|
|
- Check whether moble's quaternions and my
|
|
|
|
quaternions give the same results in tmatrices.py
|
2019-06-27 16:42:35 +03:00
|
|
|
- Ewald summations of all types of lattices (dimensionality-wise).
|
|
|
|
- Split lattices.h into separate point generator and lattice vector manipulation parts.
|
|
|
|
* Maybe move something from the .h to .c file.
|
|
|
|
- Check exact normalisation convention of scuff-tmatrix output.
|
|
|
|
- Check whether the Condon-Shortley phase affects the form of Wigner matrices.
|
|
|
|
- The xflip, yflip and possible i-factor problem.
|
|
|
|
- General 3D point group symmetries.
|
|
|
|
* Instead the current hard-coded limited set.
|
|
|
|
* The generation, finding subgroups etc. should be "easy" with
|
|
|
|
quaternions and stuff, as the set is quite limited,
|
|
|
|
see [Wikipedia](https://en.wikipedia.org/wiki/Point_groups_in_three_dimensions).
|
|
|
|
* Not sure about the representations, though.
|
|
|
|
* As a description of a T-matrix / particle metadata.
|
|
|
|
- Nice CLI for all general enough utilities.
|
|
|
|
- Remove legacy code.
|
2020-07-03 23:04:53 +03:00
|
|
|
- Split `qpms_c.pyx`.
|
2019-07-22 10:08:09 +03:00
|
|
|
- Reduce compiler warnings.
|
2020-07-03 23:04:53 +03:00
|
|
|
- Serialisation (saving, loading) of `ScatteringSystem` and other structures.
|
2019-10-07 15:15:34 +03:00
|
|
|
- Python exceptions instead of hard crashes in the C library where possible.
|
|
|
|
- Scatsystem init sometimes fail due to rounding errors and hardcoded absolute tolerance
|
2020-07-03 23:04:53 +03:00
|
|
|
in the `qpms_tmatrix_isclose()` call.
|
2019-06-27 16:42:35 +03:00
|
|
|
- Prefix all identifiers. Maybe think about a different prefix than qpms?
|
|
|
|
- Consistent indentation and style overall.
|
2019-07-22 01:08:41 +03:00
|
|
|
- Rewrite the parallelized translation matrix, mode problem matrix generators
|
|
|
|
in a way that reuses as much code as possible without copypasting
|
2019-06-27 16:42:35 +03:00
|
|
|
|
2019-07-09 20:25:29 +03:00
|
|
|
Nice but less important features
|
|
|
|
--------------------------------
|
2019-06-27 16:42:35 +03:00
|
|
|
|
2019-07-09 20:25:29 +03:00
|
|
|
- Static, thread-safe caches of constant coefficients + API without the current "calculators".
|
2019-06-27 16:42:35 +03:00
|
|
|
|
2020-07-02 22:36:53 +03:00
|
|
|
|
|
|
|
Optimisations
|
|
|
|
-------------
|
|
|
|
|
|
|
|
- Leaving out the irrelevant elements if a "rectangular" block of the translations matrix is needed.
|
|
|
|
- Ewald sums with "non-parallel" shifts (are about 20 times slower than the purely parallel ones).
|
|
|
|
- Reusing intermediate results (profiling needed)
|
|
|
|
* Bessel, Legendre functions (see also branch `finite_lattice_speedup`)
|
|
|
|
* Lattice points (sorting and scaling)
|
|
|
|
* Γ/Δ functions (for periodic lattices)
|
|
|
|
- More parallelisation.
|
|
|
|
- Possibly pre-calculation of the (precise) coefficients in Bessel and Legendre functions (using gmp)
|
|
|
|
- Asymptotic approximations of the Bessel functions for far fields.
|