Dear colleagues,
Since this discussion group is not only about the ADDA code, let
me bring your attention to the recently published paper:
Lanier S. Learning to precondition: Reinforcement learning
enhanced three-level circulant preconditioning for the Discrete
Dipole Approximation, J. Quant. Spectrosc. Radiat. Transfer 350,
109741 (2026)
and the corresponding code preconDDA -
https://github.com/Toastlovesjam/preconDDA .
It implements circulant preconditioning in DDA, which largely alleviates convergence problems of the iterative solver for large highly-contrast dielectric particles. The code works on Nvidia GPU, so it can be very fast whenever the simulation fits inside the GPU memory.
I recommend to give it a try, especially, if you hit a limit with ADDA (e.g. trying to simulate particles, say, with size parameter 30 and refractive index 2).
The corresponding ideas can also be implemented in ADDA (see https://github.com/adda-team/adda/issues/244), but it is not trivial, so we do not yet have a specific plan for that.
Maxim.