Open GoogleCodeExporter opened 8 years ago
This issue was discussed at TaCoNa Photonics 2012, see
http://dx.doi.org/10.1063/1.4750091
http://dx.doi.org/10.1063/1.4750119
Overall, ADDA is ready for such simulations using '-beam read ...'. Any
singular field (e.g. general multipole) can be used, as long as the singularity
is outside of the scatterer (nanoparticle). The internal fields produced by
ADDA will be correct, but cross sections are not exactly what one might expect.
Absorption cross section is the correct one, i.e. it exactly corresponds to the
non-radiative part of the energy removed from emitter (or decreased emitter
lifetime). However, the scattering (and extinction) cross sections correspond
only to the dipoles inside the scatterer and do not include (all) interference
with the emitting dipole.
In other words, the cross sections calculated by ADDA correspond to the energy
flow through the scatterer surface, which is now not equal to that through the
very large sphere (due to the singularity between these two surfaces). But it
is the latter which correspond to the full power emitted by the system. I
foresee two ways to compute it:
1) through the electric field due to the scatterer on the emitting dipole. This
should be quite easy to implement into ADDA, but will require separate formulae
for different types of emitters (different multipoles, finite size, etc.).
2) by calculating the energy flow in the far-field. This can be done for any
incident field, but requires it to be known not only on the scatterer surface,
but also in the far-field. Alternatively, a multipole expansion of the incident
field will be sufficient. For very small particles and dipole emitter
considering only the total dipole moment of the system (emitter + nanoparticle)
should be a fine approximation.
Finally, the extinction cross section should be calculated by the formulae for
non-plane beams, which is not guaranteed if a field is generated by a code hack
inside GenerateB.c - see AddingBeam for details.
Original comment by yurkin
on 5 Nov 2012 at 5:17
Stefania D'Agostino has recently published a paper, which describes the method
(1) in the previous comment.
http://dx.doi.org/10.1007/s11468-013-9512-3
Original comment by yurkin
on 2 Apr 2013 at 3:14
Another similar paper is http://dx.doi.org/10.1103/PhysRevB.87.205413 , where
convergence and accuracy of the simulations is carefully assessed, and a lot of
examples are given.
Original comment by yurkin
on 26 May 2013 at 8:26
For a general implementation, suitable for multipole incident field, the
multipole expansion of the scattered field (issue 138) can be useful.
Original comment by yurkin
on 4 Jul 2013 at 9:50
Original comment by yurkin
on 27 Jul 2013 at 5:24
Another paper http://dx.doi.org/10.1103/PhysRevLett.111.026803 shows that
magnetic dipole is also relevant. This adds motivation for a general multipole
formulation.
Original comment by yurkin
on 27 Jul 2013 at 7:09
Original comment by yurkin
on 24 Sep 2013 at 6:55
It is also related to issue 30. But solving the latter is only half of the
problem, since it is not clear how to define the scattered fields (what would
be the parallel and perpendicular directions?).
One of the possibilities is to define the components of the scattered fields
with respect to the laboratory reference frame, which is, in turn, connected to
issue 170.
Original comment by yurkin
on 25 Sep 2013 at 8:08
First implementation of point-dipole incident field is given by r1265. Further
improvements are on the way.
Original comment by yurkin
on 26 Sep 2013 at 9:56
Decay rate enhancements are can be calculated since r1266.
Original comment by yurkin
on 3 Dec 2013 at 8:18
It seem to work in surface mode (issue 101), but the dipole should be strictly
above the surface, and absorption in the substrate is not properly accounted
for (total rate is correct, but rad and nonrad parts are not).
Original comment by yurkin
on 6 Feb 2014 at 10:24
r1308 fixed a bug that caused deadlock for dipole incident field in MPI mode.
Also, it changed the normalization of the incident dipole field. Now p0*k^3=1.
Original comment by yurkin
on 16 Feb 2014 at 4:50
With release 1.3b4 (see http://code.google.com/p/a-dda/wiki/Downloads ) this
functionality is officially in beta-testing stage.
Original comment by yurkin
on 20 Feb 2014 at 4:48
Comparison of this feature with exact theory for a sphere shows perfect
accuracy (with fine discretization)
http://code.google.com/p/a-dda/wiki/ComparisonOtherCodes#Decay_rate_enhancements
Original comment by yurkin
on 6 May 2014 at 9:34
Original issue reported on code.google.com by
yurkin
on 6 Jun 2012 at 5:01