-
Notifications
You must be signed in to change notification settings - Fork 59
Links
A variety of links to different application examples of ADDA and to related codes.
- Codes that use ADDA
- Tools that operate with ADDA input/output
- Branches/forks of ADDA
- Other related (DDA) codes
- University courses
- Media and consolidated reports
- HoloPy can be used as a Python wrapper for ADDA (tutorial).
- R wrapper for ADDA.
- Python wrapper for ADDA to calculate spectra of nanoparticles (tutorial).
- Python tool to generate spherical-quadrature points and wrappers/code snippets (1, 2) to use them for orientation averaging with ADDA.
- Graphical user interface based on Java.
- Tutorial for applying ADDA to complex ice crystals.
- addatmatrix – Python code to run ADDA with multiple incident fields and calculate the T-matrix. Can also automatically install ADDA as a dependency.
Here we do not list tools/workflows that are supplied in misc/ folder.
- Processing of shape files:
- LiteBil allows visualization of ADDA and DDSCAT shape files.
- Python scripts to visualize particle shape, colored by x-position, using Matplotlib or using Povray (the latter is much faster).
-
adda_geom_info
from ADDA geometry tools provides basic information about the shape (e.g., ranges along all axes and mean position). -
embed_and_join
from ADDA geometry tools joins several shapes or puts one into a rectangular box. -
addaview
andadda_shadow
from SnowflakeToolkit provides 3D visualization or a single oriented image of a shape.
- Producing shape files:
- crystal_dda – Python script generating shape files of 2D planar branched ice crystals.
- SnowflakeToolkit – C++ package for generating ice and snow particles (including aggregates, riming, and melting).
-
MeshConvert
from ADDA geometry tools converts.obj
files to shape ones. Similar to misc/pip.
- Producing shape files for DDSCAT that can also be read by ADDA:
-
DDSCAT File Conversion Tool converts
.obj
files to shape ones. Similar to misc/pip. - DDA polyhedral targets – a collection of codes to generate shape files of polyhedra.
- DDSCAT-tools generate a sphere randomly covered by smaller spheres, and a slab with a sphere on top of it.
- ScatPy generates and visualizes complex shapes (among others).
- DDSCAT-inputgen generates roughened spheres and spheroids.
- CrystalCreatorGUI – a GUI for generating shape files of nanoparticles, based on Wulff constructions.
- EMBS - Python plugin for Blender to generate shape models of black carbon particles, potentially with coating.
- TEM2DDSCAT generates 3D shape files from 2D TEM images by extrapolation.
-
DDSCAT File Conversion Tool converts
- Producing incident-beam files for ADDA:
- Python scripts to produce paraxial versions of Hermite-Gaussian, Laguerre-Gaussian, Bessel, and Airy beams are given in (Hui et al. 2022).
-
coherent_incoherent
from ADDA geometry tools calculates average and difference from average for internal fields from several ADDA runs. - T-DDA – a code to compute the steady-state temperature distribution for a set of nanoparticles in a host medium. It starts from distributed absorption (heat) rates that can be computed by any standard DDA code, including ADDA (the code itself doesn't include DDA simulations). Those absorption rates are related to internal fields, but the specific input file format is not specified.
The following are works in progress with varying degree of completeness. Use them at your own risk and refer to corresponding developers for further information. Due to the nature of project-driven scientific software, some of them stay dormant for years, but we still hope to merge them into the master
repository someday.
- Bessel beams implementation – already in the
master
branch, #209. - Simulations of electron-energy-loss spectroscopy (EELS) – fork, #155.
- Improved (potentially) FCD formulation – branch ifcd.
- OpenCL acceleration for the Sparse mode – branch sparse_ocl.
- Weighted discretization – branch wd, #12.
- NetCDF support and front-end – described in report, partly reflected at the fork.
- Optimized calculation of Sommerfeld integrals (makes it negligibly fast for most problems) – fork, #176.
- Support for complex refractive index of host (outer) medium and/or complex frequency – fork, #91, #219.
- Efficient simulations for many refractive indices at once – fork, #121.
- Efficient simulations for many incident fields/orientations at once – fork, #54.
This list is limited to the codes, which can simulate particle of finite sizes. Thus, it does not include many "coupled-dipoles" codes focusing on a set of small (nano-)particles, each being approximated by a single dipole (or a combination of electric and magnetic dipole). They can be found at other web sites mentioned at the end of this section.
- DDSCAT – popular general-purpose DDA code.
- DDscat.C++ – port of DDSCAT into C++.
- nanoDDSCAT+ – GUI front end for DDSCAT.
- OpenDDA – highly-optimized DDA code, uses both MPI and OpenMP parallelization.
- IF-DDA – idiot-friendly DDA, a Fortran code (uses FFT and OpenMP) with GUI front end.
- IF-DDAM – same as IF-DDA, but for multilayered host medium (and only 2D FFT is used).
- DDA-GPU – GPU-accelerated (using OpenCL) DDA code. Algorithms are partly based on ADDA.
- DDA-SI – Matlab DDA code which includes surface interaction (by Sommerfeld integrals), but lacks FFT acceleration.
- pyDDA – port of DDA-SI into Python.
- MPDDA – basic DDA implementation on Matlab, which uses FFT and GPU.
- e-DDA – DDA with electron excitation, simulates electron-energy loss spectroscopy (EELS) and cathodoluminescence (CL). Built upon DDSCAT 7.1. There is also an outdated fork, built upon DDSCAT 7.3.
- DDEELS – similar to the above (simulates EELS and CL), but independent of other codes. Lacks FFT acceleration, but can account for substrate through image approximation.
- VoxScatter – Matlab volume-integral-equation code. Can operate as standard DDA or as Method of Moments with evaluation of the double integrals of the Green's tensors. Employs circulant preconditioning.
- MARIE – Matlab volume-integral-equation code, specialized for magnetic resonance imaging. Contains GUI.
- pyGDM – Python/Fortran implementation of Green's dyadic method (equivalent to the DDA), uses matrix inversion instead of FFT and iterative solvers.
- PyDScat-GPU, RD-DDA – Python implementation of the DDA, based on matrix inversion, and its extension to accelerate multiple simulations (for shapes different by only a single dipole) using rank-one decomposition.
- Topo-DDA – Topological optimization using the DDA
- SGP-DDA – Multi-material optimization of particle composition based on the DDA and sequential global programming
- block-DDA – C++ DDA code, including block-iterative solution for multiple incident fields
- CoupledElectricMagneticDipoles.jl – Julia implementation of DDA and CEMD, based on matrix inversion
See also
- Computational light scattering, University of Helsinki.
- Astrophysical light scattering problems, University of Helsinki.
- Small bodies in the Solar system I, comets, University of Helsinki (2008–2013).
- Atmospheric Radiative Transfer (lecture 18), Georgia Institute of Technology.
- History of Russian market of open-source software (in Russian, May 2010)
- McFarquhar G.M. and Um J. Influences of orientation averaging scheme on the scattering properties of atmospheric ice crystals: Applications to atmospheric halo formation, 2014 Blue Waters Annual Report, pp. 48–49.
- Um J. and McFarquhar G.M. Applicability of geometric optics method for calculations of single scattering properties of atmospheric ice crystals, 2015 Blue Waters Annual Report, pp. 56–57.
- Biophysicist from NSU developed a code for optical studies of interstellar dust, nanoparticles and blood cells (in Russian, May 2016)
- Computer code of Siberian scientists can detect the "decease signal" (Video in Russian, May 2016)
- Um J. and McFarquhar G.M. Dependence of the directional intensity and polarization of light scattered by small ice crystals on their shape and size: Applications for airborne cloud probes, 2016 Blue Waters Annual Report, pp. 76–78.
- Um J. and McFarquhar G.M. Impacts of orientation and morphology of small atmospheric ice crystals on in-situ aircraft measurements: Scattering calculations, 2017 Blue Waters Annual Report, pp. 92–93.
Home (Getting started)
Frequently asked questions
Features
Tutorial
Comparison with other codes
Largest simulations
Compiling ADDA
Installing FFTW3
Installing MPI
Using OpenCL
Installing clFFT
Installing clBLAS
Using sparse mode
Installing MinGW
Using MSYS2
Papers that use ADDA
Awards
References
Links
Acknowledgements
Instruction for committers
Code design & structure
Style guide
Using VS Code
Using Eclipse
Early development history
Adding new ...