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. |
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
==Classification==
The compilation contains information about the [[discrete dipole approximation]], relevant links, and their applications. There are reviews
<ref name=Draine1994a>{{Cite journal
|
|author1=B. T. Draine |author2=P. J. Flatau
| |
|
|
|
|
|bibcode = 1994JOSAA..11.1491D }}</ref>
<ref name=Yurkin2007a>{{Cite journal
|
|
|
|
|author1=M. A. Yurkin |author2=A. G. Hoekstra
| |
|
|
|bibcode = 2007JQSRT.106..558Y |arxiv = 0704.0038 }}</ref>
as well as published comparison of existing codes.
<ref>{{Cite journal
|
|
|
|
|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
| |
|
|
|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.
===General
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 !!
|-
| [http://ddscat.wikidot.com/ DDSCAT]
| B. T. Draine and P. J. Flatau
| <ref name=Draine1994a/>
<ref>{{Cite journal
|
|
|
|
|author1=B. T. Draine |author2=P. J. Flatau
| |
|
|
|bibcode = 2008JOSAA..25.2693D }}</ref>
| Fortran
| 2016 (v.{{nbsp}}7.3.2)
| 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
|
|
|
|
|
|
|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++ 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
|
|
|
|
|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
|
|
|
|bibcode = 2007JQSRT.106..546Y |arxiv = 0704.0037 }}</ref>
<ref>{{Cite journal
|
|
|
|
|author1=M. A. Yurkin |author2=A. G. Hoekstra | title = The discrete-dipole-approximation code ADDA: capabilities and known limitations
|
|
|
|bibcode = 2011JQSRT.112.2234Y }}</ref>
| C
| 2018 (v.{{nbsp}}1.4.0-alpha)
| 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
|
|
|
|
|author1=J. McDonald |author2=A. Golden |author3=G. Jennings
| |
|
|
}}</ref>
<ref>{{Cite
|publisher = National University of Ireland
|place = Galway
|year = 2007
|deadurl = yes
|archiveurl = https://web.archive.org/web/20110727150256/http://www.opendda.org/assets/docs/thesis_JMcD_OpenDDA.pdf
|archivedate = 2011-07-27
}}</ref>
| C
| 2009 (v.{{nbsp}}0.4.1)
| 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
|
|
|
|
|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
| |
|
|bibcode = 2012JLasA..24d2010Z }}</ref>
| C++
| 2016
| Runs on GPU ([[OpenCL]]). Algorithms are partly based on ADDA.
|-
| [http://www.zjuisee.zju.edu.cn/weisha/SourceForge/sourceforge.html VIE-FFT]
|
| <ref>{{Cite journal
|
|
|
|
|author1=
|
|
|
| C/C++
| 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 !!
|-
| DDSURF, DDSUB, DDFILM
| R. Schmehl
| <ref>{{Cite journal
|
|
|
|
|author1=R. Schmehl |author2=B. M. Nebeker |author3=E. D. Hirleman
| |
|
|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
| 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
|
|
|
|
|
|
|
|
|bibcode = 2002JOSAA..19..881M }}</ref>
| Fortran
| 2002
| Calculates [[T-matrix_method|T-matrix]], which can then be used to efficiently calculate orientation-averaged scattering properties.
|-
| CDA
| M. D. McMahon
| <ref>{{Cite
|
|
|
|publisher = Vanderbilt University
|place = Nashville, TN, USA
|year = 2006
|url = http://etd.library.vanderbilt.edu/ETD-db/available/etd-09012006-153819/unrestricted/MatthewMcMahonDissertation.pdf
}}</ref>
| Matlab
| 2006
|
|-
| [http://code.google.com/p/dda-si/ DDA-SI]
| V. L. Y. Loke
| <ref>{{Cite journal
|
|
|
|
|
|title = Discrete dipole approximation with surface interaction: Computational toolbox for MATLAB
|journal = J. Quant. Spectrosc. Radiat. Transfer
|year = 2011
|bibcode = 2011JQSRT.112.1711L }}</ref>
| Matlab
| 2011 (v.{{nbsp}}0.1)
| 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.
|}
|