Open GoogleCodeExporter opened 9 years ago
Similar ideas can be used for size averaging or calculating a spectrum of
wavelengths (see issue 35).
Original comment by yurkin
on 6 Jan 2011 at 7:40
In general, this can be optimized by block-iterative methods.
Another related idea is to use Compressive Sensing, which employs a more efficient basis for incident and scattered angles (instead of plane waves). A nice overview is given in L. Carin, D. Liu, W. Lin, and B. Guo, “Compressive sensing for multi-static scattering analysis,” J. Comput. Phys. 228, 3464–3477 (2009).
But it also seems analogous to the usage of the spherical-harmonics basis (#138) and T-matrix computation (#103). Right now it is not clear, which approach can be more efficient.
Konstantin Inzhevatrkin (@inzhevatkin) has implemented a preliminary solution to this issue on a development branch: https://github.com/inzhevatkin/adda/tree/Bicg_block
It uses block conjugate gradient iterative solver (applicable to any variations of the incident fields, including particle orientations). Several tests show acceleration up to 2-3 times, but a convenient way to use the code (specify orientations) need to be devised.
The first known implementation of the block DDA seems to be: https://github.com/nmoteki/block-DDA . However, it has no documentation except for the related publication (also contains only a few sentences, block of 4 incident beams is used): Moteki N., Adachi K., Ohata S., Yoshida A., Harigaya T., Koike M., and Kondo Y. Anthropogenic iron oxide aerosols enhance atmospheric heating, Nat. Commun. 8, 15329 (2017).
There is also a library of various block-iterative methods by the same author (with documentation) - https://github.com/nmoteki/block-Krylov-linear-solvers
Original issue reported on code.google.com by
yurkin
on 24 Dec 2008 at 7:46