Discrete dipole approximation codes: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Add: s2cid. | You can use this bot yourself. Report bugs here. | Suggested by Ost316 | Category:Articles for deletion | via #UCB_Category
Tag: New redirect
Line 1:
#REDIRECT [[Discrete dipole approximation#Discrete Dipole Approximation Codes]]
<!-- Please do not remove or change this AfD message until the discussion has been closed. -->
{{Article for deletion/dated|page=Discrete dipole approximation codes|timestamp=20200828191016|year=2020|month=August|day=28|substed=yes}}
<!-- Once discussion is closed, please place on talk page: {{Old AfD multi|page=Discrete dipole approximation codes|date=28 August 2020|result='''keep'''}} -->
<!-- End of AfD message, feel free to edit beyond this point -->
This article contains list of '''discrete dipole approximation codes''' and their applications.
 
{{Rcat shell|
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 can 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 and 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.
{{R to related topic}}
 
}}
==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 |citeseerx = 10.1.1.454.1175|doi-access=free
}}</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 |s2cid = 119572857
}}</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.
 
===General-purpose open-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 !! Updated !! Features
|-
| [http://ddscat.wikidot.com/ DDSCAT]
| 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
|pmid = 18978846
|arxiv = 0809.0338
|bibcode = 2008JOSAA..25.2693D |s2cid = 15747060
}}</ref>
| Fortran
| 2019 (v.{{nbsp}}7.3.3)
| 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++ 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 |s2cid = 119574693
}}</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)
| 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
|bibcode = 2009arXiv0908.0863M
|s2cid = 10285783
}}</ref>
<ref>{{Cite thesis
|author = J. McDonald
|type = PhD
|title = OpenDDA - a novel high-performance computational framework for the discrete dipole approximation
|publisher = National University of Ireland
|place = Galway
|year = 2007
|url = http://www.opendda.org/assets/docs/thesis_JMcD_OpenDDA.pdf
|url-status = dead
|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 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
| Runs on GPU (OpenCL). Algorithms are partly based on ADDA.
|-
| [http://www.zjuisee.zju.edu.cn/weisha/SourceForge/sourceforge.html VIE-FFT]
| W. E. I. Sha
| <ref>{{Cite journal
|doi = 10.1364/OE.19.015908
|pmid = 21934954
|volume = 19
|issue = 17
|pages = 15908–15918
|author1=W. E. I. Sha |author2=W. C. H. Choy |author3=Y. P. Chen |author4=W. C. Chew
|title = Optical design of organic solar cell with hybrid plasmonic system
|journal = Opt. Express
|year = 2011|bibcode = 2011OExpr..1915908S
}}</ref>
| 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), [[Fast Fourier transform|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 !! Updated !! Features
|-
| DDSURF, DDSUB, DDFILM
| R. Schmehl, 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 |pmid = 18594631
|bibcode = 2008JOSAA..25.1728B
}}</ref>
| Fortran
| 2008
| Rigorous handling of semi-infinite substrate and finite films (with arbitrary particle placement), but only 2D [[Fast Fourier transform|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
|pmid = 11999964
|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 thesis
|author = M. D. McMahon
|type = PhD
|title = Effects of geometrical order on the linear and nonlinear optical properties of metal nanoparticles
|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
|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
|journal = J. Quant. Spectrosc. Radiat. Transfer
|year = 2011
|bibcode = 2011JQSRT.112.1711L }}</ref>
| Matlab
| 2014 (v.{{nbsp}}0.2)
| 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
|pmid = 22849410
|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
| 2019 (v.{{nbsp}}2.0)
| Simulates electron-energy loss spectroscopy and cathodoluminescence. Built upon DDSCAT 7.1.
|
|-
| [https://perso.unamur.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.1103/PhysRevE.91.063307
|pmid = 26172822
|volume = 91
|issue = 6
|pages = 063307
|author1 = S. Edalatpour |author2 = M. Čuma |author3 = T. Trueax |author4 = R. Backman |author5 = M. Francoeur
|title = Convergence analysis of the thermal discrete dipole approximation
|journal = Phys. Rev. E
|year = 2015|bibcode = 2015PhRvE..91f3307E
|arxiv = 1502.02186
|s2cid = 21556373
}}</ref>
| Fortran
| 2015
| Simulates near-field radiative heat transfer. The computational bottleneck is direct matrix inversion (no FFT acceleration is used). Uses OpenMP and MPI parallelization.
|}
 
==Relevant scattering codes==
* [[Codes for electromagnetic scattering by spheres]]
* [[Codes for electromagnetic scattering by cylinders]]
 
==See also==
* [[Computational electromagnetics]]
* [[Light scattering by particles]]
* [[List of atmospheric radiative transfer codes]]
 
==References==
<references/>
 
==External links==
* [http://www.scattport.org/index.php/light-scattering-software/volume-integral List of volume-integral (DDA-type) codes at ScattPort]
 
{{DEFAULTSORT:Discrete dipole approximation codes}}
[[Category:Science-related lists]]
[[Category:Scattering, absorption and radiative transfer codes]]