Team : Thématiques

Home › The Institute › TeamsSEMOThématiques › IFDDA


Idiot Friendly-Discrete dipole approximation (IF-DDA)

Idiot Friendly-Discrete Dipole Approximation

Rigorous three-dimensional electromagnetic diffraction calculation code

version 0.9.19 : IF-DDA : object in free space

version 0.8.4 : IF-DDAM : object in a multilayer


IF-DDA is a numerical tool for solving the electromagnetic scattering problem in three dimensions. IF-DDA is based on the DDA (discrete dipole approximation) which is a volume-integral equation method. The DDA (also referred to as the coupled dipole method) was originally proposed by by Purcell and Pennypacker where the object under study is discretized into a set of small subunits and the field at each subunit position is computed through a self consistent equation. Then the diffracted field can be computed easily. This method can be used to arbitrarily shaped, inhomogeneous, anisotropic particles. The radiation condition is automatically satisfied, because the Green's function satisfies the radiation condition. The computation is confined to the volume of the scatterer, hence this method does not need any PML (perfect matching layer). IF-DDA has a very friendly guide user interface where many particles (cuboid, sphere, ellipsoid, many spheres,...), beams (plane wave, Gaussian wave, multiple plane waves,...) are accessible with a drop-down menu. The studies are selected with the mouse:
  • - Cross section (Extinction, scattering, absorption)
  • - Poynting vector
  • - Microscopy (holographic, bright field, dark field,...)
  • - Optical force
  • - Optical torque
  • - Near field
IF-DDAM is as IFDDA but the object can be placed in a multilayer that may support guided waves or plasmon.
For details on the DDA, please refer to:
P. C. Chaumet, The Discrete Dipole Approximation : a review, Mathematics 10 , 3049 (2022).
For details of the IFDDA code, please refer to:
P. C. Chaumet, D. Sentenac, G. Maire, M. Rasedujjaman, T. Zhang and A. Sentenac, IFDDA, an easy-to-use code for simulating the field scattered by 3D inhomogeneous objects in a stratified medium: tutorial, J. Opt. Soc. Am. A 38 , 1841 (2021).

Examples of the GUI

The figure (left) below shows, how the beam and the object are chosen. First of all the power and the waist (or diameter for the laser beam) are fixed and then with the drop-down menu you choose the beam (linear or circular plane wave, Gaussian wave, antenna, many planes waves or arbitrary beam). Then you chose the object with the drop-down menu (sphere, cuboid, cylinder, ellipsoid, inhomogeneous sphere, concentric spheres, multiple spheres or arbitrary object) and in clicking "Props" you fix the characteristics of the object (size) and with "epsilon" and "iso" you choose the values of the permittivity and if it is anisotrope. Discretization fixes the number of layer used to represent the object. The figure on the right permits to choose the study asked.

Then we can use matlab or the graphical interface of the code to see the results. With the graphical interface, see below on right, we chose the results to see and the cut and then a figure appears (as below left).
To get more images you can use this link.

IF-DDA(M) has been developed by

P. C. Chaumet, A. Sentenac, Aix-Marseille University (France).
D. Sentenac, Università di Pisa (Italy).

User Guide

The reader can find more details on the code with the user guide in English or in French.
User Guide in English Userguide Userguide
User Guide in French Userguide Userguide

How to download the code

Download the tgz file IF-DDA IF-DDAM
Download with github IF-DDA IF-DDAM

How to install the code

You should uncompressed the file with tar -xvzf cdm-x.x.x.tgz for IF-DDA or tar -xvzf cdmsurf-x.x.x.tgz for IF-DDAM. A readme or install is given in the tar file. Please read it to install the code on linux system. Note that the code can be installed on windows system (it can be tricky to install FFTW on the windows system, see for details.




Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
You are free to:
  • Share, copy and redistribute the material in any medium or format
  • Adapt, remix, transform, and build upon the material
  • In addition, you undertake to include citation (see userguide) whenever you present or publish results that are based on it.
  • Licensees may copy, distribute, display, and perform the work and make derivative works and remixes based on it only for non-commercial purposes.
  • The CNRS makes no warranties of any kind on this software and shall in no event be liable for damages of any kind in connection with the use and exploitation of this technology.

The licensor cannot revoke these freedoms as long as you follow the license terms.