-
Notifications
You must be signed in to change notification settings - Fork 58
This list is far from being complete, therefore please send your questions to [email protected].
It is ADDA.
- Read GettingStarted and other pages it links to.
- In particular, go through the Tutorial to understand basic ADDA functionality.
- Scan through the manual to understand where to get more details if needed.
Development of ADDA is focused on its core functionality (that is efficient and large-scale simulations of interaction of electromagnetic waves with particles). Any kind of pre- and post-processing can be implemented by scripts or independent programs without changing the core code. Some examples can be found in misc/ folder (short overview). Also a few wrappers are available.
- Make sure you are using the latest version of ADDA. Read carefully the relevant parts of the manual.
- Check this FAQ.
- If that does not help, you're encouraged to send your question to [email protected]. Please try to make your question as specific as possible. If your question is based on a particular run, provide all relevant input and output files, at least
log
.
- Make sure you are using the latest version of ADDA. If you modified the code yourself, try the original release.
- Look at the list of known bugs at the issue tracker, maybe your bug is already known.
- Try to understand how exactly the bug occurs, write down the sequence of actions that lead to it.
- Please try to localize the bug, i.e. try to remove as much command line parameters as possible without removing the bug. Also try to use default versions of input files, which you have modified.
-
Submit your bug to the issue tracker, including input files and
Makefile
that you used for compilation. Do not forget to include all the relevant output files, at leastlog
. Please also include a brief description of your operation system and hardware. We will try to fix the bug as soon as possible.
How to simulate light scattering by a particle which shape can not be described by any of the ADDA predefined shapes?
The simplest is to specify your particle by a shape file. However, if your shape can easily be described in some parametric form and you are going to simulate a lot of particles with shapes from this class or if you think other users will probably simulate the same shapes, you are encouraged to implement new shape inside ADDA.
To produce a shape file you can use any programming language/software. ADDA contains a couple of auxiliary packages to alleviate this problem:
- Point-in-polyhedron (
misc/pip
, see description) allows transformation of .obj format (and several other common 3D formats) into the format readable by ADDA. There is also another code (related) with similar functionality. - Hyperfun (
misc/hyperfun
, see description) provides a toolchain for working with Hyperfun models. Part of this toolchain can be used to transform other shape formats, like .wrl.
The most general solution is freely available software LiteBil. It allows both quick testing of shape files produced by ADDA or other software, and producing nice pictures for publication.
There are also tools developed by Roman Schuh, which are available upon request. See this discussion for details.
Just apply ADDA to an equivalent problem of a particle in vacuum with both wavelength and particle refractive index divided by the refractive index of the medium. Most of the calculated scattering quantities can then be used without modification. See section Applicability of the DDA of the manual for details.
How to calculate scattering by a particle near or inside the infinite plane-parallel plane substrate?
Starting from v.1.3b4 ADDA can rigorously and efficiently handle particles near the plane homogeneous substrate. Possible approximate approaches for more complicated cases, like multi-layered substrates or particles crossing the substrate, are discussed in Section Extensions of the DDA of the manual.
It is defined as in Bohren & Huffman "Absorption and scattering of Light by Small Particles" (1983), and it is not normalized. Some other codes may compute Stokes scattering matrix, which is normalized so that 1,1-element is equal to 1 after averaging over the whole solid angle. This matrix should be multiplied by πCsca/λ2 to get Mueller matrix. Csca is the scattering cross section for unpolarized light, equal to average of scattering cross sections for any two perpendicular incident polarizations. See section Mueller matrix of the manual for more details.
We are currently working to implement this feature in a convenient manner (issue 10). For now there are two possible workarounds:
- (Recommended) You may save dipole polarizations to file by ADDA and then use auxiliary package
misc/near_field
(see description). - Or you may extend the computational box with "dummy" dipoles located at points where you wish to calculate near-field. Saving the internal fields by ADDA will then produce the desired result, but at expense of extra computational time. Please see the section Near-field of the manual for details.
Currently there is no automatic way to do it, although we plan to implement it (issue 35). Currently one may either perform separate simulation for each value of wavelength, or semi-automate this process by some kind of script or wrapper. The latter options are discussed in comments to issue 35.
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 ...