Discrete dipole approximation codes: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
m Alter: issue, journal, title. Removed parameters. Formatted dashes. | You can use this bot yourself. Report bugs here. | User-activated.
Myurkin (talk | contribs)
Improved introduction, added column "Updated" to tables, added a lot of wiki links. Removed redundant repetitions in the tables by stating it once before the tables, so Short Description is now Features. Added DDSUB, DDFILM, e-DDA, DDEELS, T-DDA.
Line 1:
This article contains list of '''discrete dipole approximation codes''' and their applications.
 
The [[discrete dipole approximation]] (DDA) is a flexible technique for computing scattering and absorption by targets of arbitrary geometry. Given a target of arbitrary geometry, one seeks to calculate its scattering and absorption properties. The DDA iscan be thought either as rigorous discretization of the [[Electric-field integral equation|volume-integral equation for the electric field]]<ref name=Yurkin2007a/> or as an approximation of the continuum target by a finite array of polarizable points<ref name=Draine1994a/>. The latter points acquire dipole moments in response to the local electric field. The dipoles of courseand interact with one another via their electric fields, so the DDA is also sometimes referred to as the coupled dipole approximation/method. It is closely related to (volumetric) method of moments, digitized Green's function, Green's dyadic method/formulation, or volume integral equation method.
 
==Classification==
The compilation contains information about the [[discrete dipole approximation]], relevant links, and their applications. There are reviews
<ref name=Draine1994a>{{Cite journal
| doi = 10.1364/JOSAA.11.001491
|author1=B. T. Draine |author2=P. J. Flatau
| title = Discrete dipole approximation for scattering calculations
| journal = J. Opt. Soc. Am. A
| volume = 11
| issue = 4
| pages = 1491–1499
| year = 1994
|bibcode = 1994JOSAA..11.1491D }}</ref>
<ref name=Yurkin2007a>{{Cite journal
| doi = 10.1016/j.jqsrt.2007.01.034
| volume = 106
| issue = 1–3
| pages = 558–589
|author1=M. A. Yurkin |author2=A. G. Hoekstra
| title = The discrete dipole approximation: an overview and recent developments
| journal = J. Quant. Spectrosc. Radiat. Transfer
| year = 2007
| url = http://sites.google.com/site/yurkin/publications/papers/YurkinandHoekstra-2007-Thediscretedipoleapproximation%2Canoverviewandrecentdevelopments.pdf
|bibcode = 2007JQSRT.106..558Y |arxiv = 0704.0038 }}</ref>
as well as published comparison of existing codes.
<ref>{{Cite journal
| doi = 10.1016/j.jqsrt.2007.01.026
| volume = 106
| issue = 1–3
| pages = 417–436
|author1=A. Penttila |author2=E. Zubko |author3=K. Lumme |author4=K. Muinonen |author5=M. A. Yurkin |author6=B. T. Draine |author7=J. Rahola |author8=A. G. Hoekstra |author9=Y. Shkuratov
| title = Comparison between discrete dipole implementations and exact techniques
| journal = J. Quant. Spectrosc. Radiat. Transfer
| year = 2007
| url = http://sites.google.com/site/yurkin/publications/papers/Penttilaetal-2007-Comparisonbetweendiscretedipoleimplementations.pdf
|bibcode = 2007JQSRT.106..417P }}</ref> All of the codes apply to arbitrary-shaped inhomogeneous nonmagnetic particles and particle systems in free space or homogeneous dielectric host medium (handling of substrate is discussed separately). The calculated quantities typically include [[Radar_cross-section|angle-resolved scattered fields]] (or the [[Mueller_calculus#Mueller_matrices|Mueller matrices]]), [[Cross_section_(physics)#Scattering_of_light|integral cross-sections]] (extinction, absorption, and scattering), and internal fields. Therefore, the description of the codes below focuses on their unique features, including other computed quantities and computational optimizations/parallelization.
|bibcode = 2007JQSRT.106..417P }}</ref>
 
===General -purpose public ___domainopen-source DDA codes===
All of the following use regular grids (cubic or rectangular cuboid), [[Iterative_method#Krylov_subspace_methods|Krylov-subspace iterative methods]] to solve large system of linear equations, and [[Toeplitz_matrix#Discrete_convolution|FFT-acceleration of the matrix-vector products]]. It results in almost linear computational complexity in number of dipoles (discretization voxels) for both time and memory.<ref name=Yurkin2007a/> Importantly, the source code is freely available.
{| class="wikitable"
|- style="background-color: #efefef;"
! Name !! Authors !! References !! Language !! ShortUpdated Description!! Features
|-
| [http://ddscat.wikidot.com/ DDSCAT]
| DDSCAT <ref>[http://www.astro.princeton.edu/~draine/DDSCAT.7.0.html DDSCAT B. T. Draine page]</ref><ref>[http://code.google.com/p/ddscat/ DDSCAT Google Code page]</ref>
| B. T. Draine and P. J. Flatau
| <ref name=Draine1994a/>
<ref>{{Cite journal
| doi = 10.1364/JOSAA.25.002693
| volume = 25
| issue = 11
| pages = 2693–2703
|author1=B. T. Draine |author2=P. J. Flatau
| title = Discrete-dipole approximation for periodic targets: theory and tests
| journal = J. Opt. Soc. Am. A
| year = 2008
| arxiv = 0809.0338
|bibcode = 2008JOSAA..25.2693D }}</ref>
| Fortran
| 2016 (v.{{nbsp}}7.3.2)
| Calculates scattering and absorption of electromagnetic waves by particles of arbitrary geometry and periodic particles. Last release 7.3.2, August 2016.
| Can also handle periodic particles and efficiently calculate [[Electromagnetic_radiation#Near_and_far_fields|near fields]]. Uses [[OpenMP]] acceleration.
|-
| [http://space.univ.kiev.ua/Choliy/DDscatcpp/ DDscat.C++]
| V. Choliy
| <ref>{{Cite journal
| volume = 3
| pages = 66–70
| author = V. Y. Choliy
| title = The discrete dipole approximation code DDscat.C++: features, limitations and plans
| journal = Adv. Astron. Space Phys.
| year = 2013
|url = http://aasp.kiev.ua/index.php?text=v3-066-070-Choliy
|bibcode = 2013AASP....3...66C }}</ref>
| C++
| 2017 (v.{{nbsp}}7.3.1)
| Version of DDSCAT translated to C++
| Version of DDSCAT translated to C++ with some further improvements.
|-
| [https://github.com/adda-team/adda/ ADDA]
| M. A. Yurkin, A. G. Hoekstra, and [https://github.com/adda-team/adda/graphs/contributors others]
| <ref>{{Cite journal
| doi = 10.1016/j.jqsrt.2007.01.033
| volume = 106
| issue = 1–3
| pages = 546–557
|author1=M. A. Yurkin |author2=V. P. Maltsev |author3=A. G. Hoekstra | title = The discrete dipole approximation for simulation of light scattering by particles much larger than the wavelength
| journal = J. Quant. Spectrosc. Radiat. Transfer
| year = 2007
| url = http://sites.google.com/site/yurkin/publications/papers/Yurkinetal-2007-Thediscretedipoleapproximationforsimulationoflightscattering.pdf
|bibcode = 2007JQSRT.106..546Y |arxiv = 0704.0037 }}</ref>
<ref>{{Cite journal
| doi = 10.1016/j.jqsrt.2011.01.031
| volume = 112
| issue = 13
| pages = 2234–2247
|author1=M. A. Yurkin |author2=A. G. Hoekstra | title = The discrete-dipole-approximation code ADDA: capabilities and known limitations
| journal = J. Quant. Spectrosc. Radiat. Transfer
| year = 2011
| url = https://sites.google.com/site/yurkin/publications/papers/YurkinandHoekstra-2011-Thediscrete-dipole-approximationcodeADDAcapab.pdf
|bibcode = 2011JQSRT.112.2234Y }}</ref>
| C
| 2018 (v.{{nbsp}}1.4.0-alpha)
| Calculates scattering and absorption of electromagnetic waves by particles of arbitrary geometry in free space or near a plane substrate. Can also calculate emission (decay-rate) enhancement of point emitters. Can employ GPU and MPI to accelerate computations.
| Implements fast and rigorous consideration of a plane substrate, and allows rectangular-cuboid voxels for highly oblate or prolate particles. Can also calculate [[Purcell_effect|emission (decay-rate) enhancement]] of point emitters.[[Electromagnetic_radiation#Near_and_far_fields|Near-fields]] calculation is not very efficient. Uses [[Message_Passing_Interface|MPI]] parallelization and can run on GPU ([[OpenCL]]).
|-
| [http://www.opendda.org/ OpenDDA]
| J. McDonald
| <ref>{{Cite journal
| doi = 10.1177/1094342008097914
| volume = 23
| issue = 1
| pages = 42–61
|author1=J. McDonald |author2=A. Golden |author3=G. Jennings
| title = OpenDDA: a novel high-performance computational framework for the discrete dipole approximation
| journal = Int. J. High Perf. Comp. Appl.
| year = 2009
| arxiv = 0908.0863
}}</ref>
<ref>{{Cite journalthesis
|author = J. McDonald
|journal type = PhD Thesis
|title = OpenDDA - a novel high-performance computational framework for the discrete dipole approximation
|publisher = National University of Ireland
|year = 2007
|place = Galway
|url = http://www.opendda.org/assets/docs/thesis_JMcD_OpenDDA.pdf
|year = 2007
|deadurl = yes
|archiveurl url = https://web.archive.org/web/20110727150256/http://www.opendda.org/assets/docs/thesis_JMcD_OpenDDA.pdf
|deadurl = yes
|archivedate = 2011-07-27
|archiveurl = https://web.archive.org/web/20110727150256/http://www.opendda.org/assets/docs/thesis_JMcD_OpenDDA.pdf
|df =
|archivedate = 2011-07-27
}}</ref>
| C
| 2009 (v.{{nbsp}}0.4.1)
| Calculates scattering and absorption of electromagnetic waves by particles of arbitrary geometry.
| Uses both [[OpenMP]] and [[Message_Passing_Interface|MPI]] parallelization. Focuses on computational efficiency.
|-
| [https://github.com/steffen-kiess/dda DDA-GPU]
| S. Kieß
| <ref>{{Cite journal
| doi = 10.2351/1.4719936
| volume = 24
| issue = 4
| pages = 042010
|author1=M. Zimmermann |author2=A. Tausendfreund |author3=S. Patzelt |author4=G. Goch |author5=S. Kieß |author6=M. Z. Shaikh |author7=M. Gregoire |author8=S. Simon
| title = In-process measuring procedure for sub-100 nm structures
| journal = J. Laser Appl.
| year = 2012
|bibcode = 2012JLasA..24d2010Z }}</ref>
| C++
| 2016
| Calculates scattering and absorption of electromagnetic waves by particles of arbitrary geometry, using GPU for acceleration. Algorithms are partly based on ADDA.
| Runs on GPU ([[OpenCL]]). Algorithms are partly based on ADDA.
|-
| [http://www.zjuisee.zju.edu.cn/weisha/SourceForge/sourceforge.html VIE-FFT]
| WeiW. E. I. Sha
| <ref>{{Cite journal
| doi = 10.1364/OE.19.015908
| volume = 19
| issue = 17
| pages = 15908–15918
|author1=WeiW. E. I. Sha |author2=WallaceW. C. H. Choy |author3=YongpinY. P. Chen |author4=WengW. ChoC. Chew
| title = Optical Designdesign of Organicorganic Solarsolar Cellcell with Hybridhybrid Plasmonicplasmonic Systemsystem
| journal = OpticsOpt. Express
| year = 2011}}</ref>
| C/C++
| 2019
| Simulate electromagnetic/optical response from arbitrary-shaped three-dimensional nanostructures with lossy and dispersive materials, offering theoretical results of extinction cross section, absorption cross section, scattering pattern (radar cross section), near-field distribution, and material absorption. The full-wave frequency-___domain solver is based on the biconjugate gradient stabilized (BICGSTAB) fast Fourier transform (FFT)-volume integral equation algorithm, which is as fast as FFT accelerated discrete-dipole approximation (DDA) approach. Updated at Jan. 3, 2019
| Also calculates [[Electromagnetic_radiation#Near_and_far_fields|near fields]] and material absorption. Named differently, but the algorithms are very similar to the ones used in the mainstream DDA.
|}
 
===Specialized DDA codes===
These list include codes that do not qualify for the previous section. The reasons include the following: source code is not available (then the update date is approximate), [[FFT]] acceleration is absent or reduced, the code focuses on specific applications, not allowing easy calculation of standard scattering quantities.
{| class="wikitable"
|- style="background-color: #efefef;"
! Name !! Authors !! References !! Language !! ShortUpdated Description!! Features
|-
| DDSURF, DDSUB, DDFILM
| R. Schmehl and, B. M. Nebeker, and H. Zhang
| <ref>{{Cite journal
| doi = 10.1364/JOSAA.14.003026
| volume = 14
| issue = 11
| pages = 3026–3036
|author1=R. Schmehl |author2=B. M. Nebeker |author3=E. D. Hirleman
| title = Discrete-dipole approximation for scattering by features on surfaces by means of a two-dimensional fast Fourier transform technique
| journal = J. Opt. Soc. Am. A
| year = 1997
|bibcode = 1997JOSAA..14.3026S }}</ref>
<ref>{{Cite thesis
|author = B. M. Nebeker
|type = PhD
|title = Modeling of light scattering from features above and below surfaces using the discrete-dipole approximation
|publisher = Arizona State University
|place = Tempe, AZ, USA
|year = 1998}}</ref>
<ref>{{Cite journal
|doi = 10.1364/JOSAA.25.001728
|volume = 25
|issue = 7
|pages = 1728–1736
|author1 = E. Bae| author2 = H. Zhang| author3 = E. D. Hirleman
|title = Application of the discrete dipole approximation for dipoles embedded in film
|journal = J. Opt. Soc. Am. A
|year = 2008 }}</ref>
| Fortran
| 2008
| Calculates scattering and absorption of electromagnetic waves by particles of arbitrary geometry on or in proximity to a surface. For the latter 2D [[FFT]] is used.
| Rigorous handling of semi-infinite substrate and finite films (with arbitrary particle placement), but only 2D [[FFT]] acceleration is used.
|-
| DDMM
|
| D. W. Mackowski
| <ref>{{Cite journal
| doi = 10.1364/JOSAA.19.000881
| volume = 19
| issue = 5
| pages = 881–893
| author = D. W. Mackowski
| title = Discrete dipole moment method for calculation of the T matrix for nonspherical particles
| journal = J. Opt. Soc. Am. A
| year = 2002
|bibcode = 2002JOSAA..19..881M }}</ref>
| Fortran
| 2002
| Calculates scattering and absorption of electromagnetic waves by particles of arbitrary geometry and calculates analytically orientationally averaged scattering properties.
| Calculates [[T-matrix_method|T-matrix]], which can then be used to efficiently calculate orientation-averaged scattering properties.
|-
| CDA
| M. D. McMahon
| <ref>{{Cite journalthesis
| author = M. D. McMahon
| journaltype = PhD Thesis
| title = Effects of geometrical order on the linear and nonlinear optical properties of metal nanoparticles
|publisher = Vanderbilt University
| year = 2006
|place = Nashville, TN, USA
| url = http://etd.library.vanderbilt.edu/ETD-db/available/etd-09012006-153819/unrestricted/MatthewMcMahonDissertation.pdf
|year = 2006
|url = http://etd.library.vanderbilt.edu/ETD-db/available/etd-09012006-153819/unrestricted/MatthewMcMahonDissertation.pdf
}}</ref>
| Matlab
| 2006
| Calculates scattering and absorption of electromagnetic waves by particles of arbitrary geometry.
|
|-
| [http://code.google.com/p/dda-si/ DDA-SI]
| V. L. Y. Loke
| <ref>{{Cite journal
| doi = 10.1016/j.jqsrt.2011.03.012
| volume = 112
| issue = 11
| pages = 1711–1725
| author = V. L. Y. Loke |author2 = P. M. Mengüç |author3 = Timo A. Nieminen
|title = Discrete dipole approximation with surface interaction: Computational toolbox for MATLAB
| author2 = P. M. Mengüç
|journal = J. Quant. Spectrosc. Radiat. Transfer
| author3 = Timo A. Nieminen
|year = 2011
| last-author-amp = yes
| title = Discrete dipole approximation with surface interaction: Computational toolbox for MATLAB
| journal = Journal of Quantitative Spectroscopy and Radiative Transfer
| year = 2011
|bibcode = 2011JQSRT.112.1711L }}</ref>
| Matlab
| 2011 (v.{{nbsp}}0.1)
| Calculates scattering and absorption of electromagnetic waves by particles of arbitrary geometry on or in proximity to a surface. No [[FFT]] acceleration is used.
| Rigorous handling of substrate, but no [[FFT]] acceleration is used.
|
|-
| [http://faculty.washington.edu/masiello/Masiello_Group_Website/e-DDA.html ''e''-DDA]
| A. Vaschillo and N. Bigelow
| <ref>{{Cite journal
|doi = 10.1021/nn302980u
|volume = 6
|issue = 8
|pages = 7497–7504
|author1 = N. W. Bigelow |author2 = A. Vaschillo |author3 = V. Iberi |author4 = J. P. Camden| author5 = D. J. Masiello
|title = Characterization of the electron- and photon-driven plasmonic excitations of metal nanorods
|journal = ACS Nano
|year = 2012}}</ref>
| Fortran
| 2015 (v.{{nbsp}}1.2)
| Simulates electron-energy loss spectroscopy and cathodoluminescence. Built upon DDSCAT 7.1.
|
|-
| [http://perso.fundp.ac.be/~lhenrard/ddeels/ddeels.php DDEELS]
| N. Geuquet, S.-O. Guillaume and L. Henrard
| <ref>{{Cite journal
|doi = 10.1016/j.ultramic.2010.01.013
|volume = 110
|issue = 8
|pages = 1075–1080
|author1 = N. Geuquet |author2 = L. Henrard
|title = EELS and optical response of a noble metal nanoparticle in the frame of a discrete dipole approximation
|journal = Ultramicroscopy
|year= 2010}}</ref>
| Fortran
| 2013 (v.{{nbsp}}2.1)
| Simulates electron-energy loss spectroscopy and cathodoluminescence. Handles substrate through image approximation, but no [[FFT]] acceleration is used.
|-
| T-DDA
| S. Edalatpour
| <ref>{{Cite journal
|doi = 10.1016/j.jqsrt.2013.08.021
|volume = 133
|pages = 364–373
|author1 = S. Edalatpour |author2 = M. Francoeur
|title = The Thermal Discrete Dipole Approximation (T-DDA) for near-field radiative heat transfer simulations in three-dimensional arbitrary geometries| |journal = J. Quant. Spectrosc. Radiat. Transfer
|year = 2014}}</ref>
| Fortran
| 2014
| Simulates near-field radiative heat transfer. The computational bottleneck is direct matrix inverion (no [[FFT]] acceleration is used). Uses [[OpenMP]] and [[MPI]] parallelization.
|}