Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rayleigh limit #36

Open
GoogleCodeExporter opened this issue Aug 12, 2015 · 6 comments
Open

Rayleigh limit #36

GoogleCodeExporter opened this issue Aug 12, 2015 · 6 comments
Labels
comp-Logic Related to internal code logic performance Simulation speed, memory consumption pri-Medium Worth assigning to a milestone usability Makes using code more convenient
Milestone

Comments

@GoogleCodeExporter
Copy link

Implement special Rayleigh mode, which enables some simplifications (like
using CG iterative solver and calculating only total polarizability
tensor). Use additional symmetries of the particle (rotation around y and x
axes by 90 degrees). See ideas of Budko & Samokhin (2005) for iterative
solvers. Also think, how to calculate the total static polarizability
tensor of the particle, using three different incident polarizations.

Original issue reported on code.google.com by yurkin on 24 Dec 2008 at 7:10

@GoogleCodeExporter
Copy link
Author

The general overrelaxation method proposed by Budko & Samokhin (2005) should 
not be better than the default QMR.

However there is another relevant idea, which is described by issue 121.

#121

Original comment by yurkin on 6 Jan 2011 at 7:34

@GoogleCodeExporter
Copy link
Author

Currently, numerical instability happens inside ADDA when decreasing the size 
of the scatterer. So the results are generally reliable down to d/lambda = 1e-5 
for all iterative solvers except CSYM. For the latter problems start to appear 
already at 1e-3 (reason unknown).

Original comment by yurkin on 29 Mar 2013 at 7:23

  • Added labels: Priority-High
  • Removed labels: Priority-Medium

@GoogleCodeExporter GoogleCodeExporter added OpSys-All pri-High Of higher priority, but no guarantees usability Makes using code more convenient comp-Logic Related to internal code logic performance Simulation speed, memory consumption labels Aug 12, 2015
@myurkin myurkin added feature Allows new functionality and removed Type-Enhancement labels Aug 13, 2015
@myurkin myurkin self-assigned this Nov 12, 2015
@myurkin
Copy link
Member

myurkin commented Feb 9, 2016

Another grand simplification is calculation for a range of the refractive index (equivalent to the spectrum of wavelengths - #35), which brings the problem to a shifted system with real symmetric original matrix. Efficient algorithms exist for that:
Simoncini V, Szyld DB. Recent computational developments in Krylov subspace methods for linear systems. Num. Lin. Alg. Appl. 2007;14:1–59. doi: 10.1002/nla.499

Similar ideas can be applied to a range of refractive indices in full-wavelength case, as well. But there the original matrix is complex symmetric, which complicates the matter. But the relevant algorithms do exist (see above paper).

UPD: this is more relevant for #121.

@myurkin myurkin added this to the 1.6 milestone Jul 10, 2018
@myurkin myurkin added pri-Medium Worth assigning to a milestone and removed pri-High Of higher priority, but no guarantees labels Jul 10, 2018
@myurkin
Copy link
Member

myurkin commented Sep 27, 2020

Another idea in the framework of the Rayleigh (static) limit is the calculations of O(x^2) and O(x^3) corrections to the polarization to get the result for a small (nano-)particle. In principle, this can be done by one-two solutions of the static problems with different incident fields, based on the theory in
Moskalensky A.E. and Yurkin M.A. A point electric dipole: from basic optical properties to the fluctuation-dissipation theorem, Rev. Phys. 6, 100047 (2021).

Similarly, calculating the static response to monomials of order one or two (as incident fields), one can obtain the "non-local" contribution to the polarizability (response to field derivatives), which was described in
Bobylev D.A., Smirnova D.A., and Gorlach M.A. Nonlocal response of Mie-resonant dielectric particles, Phys. Rev. B 102, 115110 (2020).

@myurkin myurkin modified the milestones: 1.6, 1.7 Apr 24, 2021
@myurkin myurkin removed their assignment Apr 24, 2021
@myurkin myurkin removed the feature Allows new functionality label Apr 24, 2021
@myurkin
Copy link
Member

myurkin commented Jun 26, 2021

This can potentially be also used for calculation of surfaces charges for complex objects, which is a first step to simulate charged particles in the DDA - see
Kundracik F., Kocifaj M., Videen G., and Markoš P. Optical properties of charged nonspherical particles determined using the discrete dipole approximation, J. Quant. Spectrosc. Radiat. Transfer 254, 107245 (2020).

@myurkin
Copy link
Member

myurkin commented Nov 8, 2022

If such static DDA is implemented, care should be taken with respect to the use of static Green's tensor. While in most cases Im(G) can be safely neglected for sufficiently small particles, it is tightly related to the radiative correction of the polarizability. The two may become important when, for instance, the dipole source is placed inside a particle. But even then using fully static versions of both G and polarizability may lead to the correct result.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp-Logic Related to internal code logic performance Simulation speed, memory consumption pri-Medium Worth assigning to a milestone usability Makes using code more convenient
Projects
None yet
Development

No branches or pull requests

2 participants