Skip to content

Latest commit

 

History

History
61 lines (42 loc) · 7.65 KB

FAQ.md

File metadata and controls

61 lines (42 loc) · 7.65 KB

This list is far from being complete, therefore please send your questions to [email protected].

General

What is the official name of the code?

It is ADDA. You may wonder why the corresponding Google Code identifier is "a-dda", as shown in address bar and in the top-left corner of the page. That is because "adda" was already occupied at Google Code by unrelated project, when we moved here.

I am new to ADDA and want to simulate ... What should I start with?

  • 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.

Do you have GUI/wrapper for ADDA? Can ADDA plot its results?

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.

I run ADDA and get strange output (different from my expectations). What should I do?

  • 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.

I have found a bug in ADDA. What should I do?

  • 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 least log. Please also include a brief description of your operation system and hardware. We will try to fix the bug as soon as possible.

Defining scattering problem

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.

How to visualize shape files of ADDA?

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.

How to simulate light scattering by a particle embedded in a homogeneous non-absorbing medium?

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.

Calculated quantities

How is the Mueller matrix, produced by ADDA, defined and/or normalized?

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.

How to calculate near-field using ADDA?

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.

How to calculate the wavelength spectrum of extinction/scattering/etc.?

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.