guagua-pamcn / a-dda

Automatically exported from code.google.com/p/a-dda
0 stars 0 forks source link

Self-term for particles near surface #180

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
The self-term should be changed from Claussius-Mossotti based one 
(+corrections) to include contribution from the reflected Green's tensor acting 
on the dipole itself. Basically, standard self-term can be thought as based on 
integral (G(r)) over the cube, where the singular part leads to O(1) term, and 
now we should add integral of (G(R)) over the cube. In other words, the 
implementation should correctly describe a single dipole near the surface.

The bad thing is that correction is not necessarily small (as all other 
corrections to polarizability, at least O(kd^2)). The good thing is that it is 
O(d^3/h^3), where h is the distance from the dipole to the surface. So when we 
refine discretization (decrease d for a fixed geometry), its importance 
decrease and should become negligible for most dipoles (except those, directly 
touching the surface). So we can expect that even with this problem, the DDA 
results would converge to the true solution. This is, to some extent, supported 
by available comparisons
http://code.google.com/p/a-dda/wiki/ComparisonOtherCodes#Particles_near_surface

Another bad thing is that the correct polarizability would depend on the 
distance of dipoles to the surface. It is easy to calculate (since 
corresponding reflected Green's tensors are already available in the 
computational grid), if we do not want to get (kd)^2 correctly as well. But the 
variability of the polarizability requires either a nasty hack or continuous 
polarizability (issue 12).

Another part, where self-term appears, is in calculation of absorption 
cross-section (using the default '-scat dr'). There the term responsible to 
Im(alpha) of point dipole should be  corrected (the corresponding formula are 
actually already implemented for exciting point-dipole field as C0refl and can 
be easily added). This should also disappear in the limit of Ndip->inf, but for 
any finite Ndip it may be responsible, e.g., for violation of optical theorem.

Also, if correct polarizability is used, '-scat fin' should automatically 
include the correction (and lead to the same correct result).

Original issue reported on code.google.com by yurkin on 6 Oct 2013 at 6:41

GoogleCodeExporter commented 8 years ago

Original comment by yurkin on 6 Oct 2013 at 6:43

GoogleCodeExporter commented 8 years ago
After careful consideration it seems that there is no problem at all. The 
self-term is the one corresponding to free-space (determined solely by dipole 
size and refractive index). It is correctly calculated and finds its use in 
cc_sqrt and other variables, linking internal field, polarization, and exciting 
field.

The self-reflected-term is actually an interaction of dipole with the surface, 
and it is accounted for by the diagonal elements of the R matrix, which are in 
turn included in FFT-accelerated multiplication of R by vector. So this 
diagonal R-term is like interaction with other dipoles (either directly or 
through the surface) other then self-term.

Moreover, even for a single dipole everything is fine, since R-term is also 
present. 

Original comment by yurkin on 12 Feb 2014 at 12:10