[Back to B.T. Draine's home page.] Scattering and Absorption of Light by Small Particles

The Discrete Dipole Approximation for Scattering and Absorption of Light by Irregular Particles

DDSCAT, a Fortran code for calculating scattering and absorption of light by irregular particles, has been jointly developed by Bruce T. Draine (Dept. of Astrophysical Sciences, Princeton University) and Piotr J. Flatau (Scripps Institution of Oceanography, UCSD). The current version is DDSCAT 7.0, which supersedes previous versions. DDSCAT 7.0 can calculate scattering and absorption by isolated particles (e.g., dust grains) but can also calculate scattering and absorption by one- and two-dimensional arrays of "target unit cells" that may have complex geometries; this has obvious applications to photonics and studies of arrays of nanostructures. DDSCAT 7.0 is publicly available (see below), and is now considered to be the standard version of DDSCAT. If you choose to use it, please send email to <draine@astro.princeton.edu> "registering" as a user; registered users of DDSCAT will be notified when updates to the code are made.

User Guide for DDSCAT.7.0

An extensive User Guide is available: "User Guide to the Discrete Dipole Approximation Code DDSCAT.7.0", by B.T. Draine and Piotr J. Flatau. A copy of this document (postscript or pdf) can be obtained from astro-ph/0809.0337 and can be cited as

User Guide for DDSCAT.6.1

We continue to make available the UserGuide to the previous version of DDSCAT: "User Guide to the Discrete Dipole Approximation Code DDSCAT.6.1", by B.T. Draine and Piotr J. Flatau. A copy of this document (postscript or pdf) can be obtained from astro-ph/0409262 (gzipped postscript) or astro-ph/0409262 (pdf) and can be cited as

Downloading the DDSCAT 7.0 Code

A single distribution is provided for DDSCAT 7.0 -- by appropriate editing of the Makefile, this distribution can be used to generate executables using either single- or double-precision arithmetic; either without or with MPI capability; either without or with OPENMPI support; and either without or with the Intel MKL library. To download, click here: ddscat7.0.7.tgz: gzipped tarfile containing complete source code and documentation for DDSCAT 7.0, including the programs DDfield and CALLTARGET..

Downloading the DDSCAT Code

Two distributions of DDSCAT 6.1 are available. Both include bug fixes (see below) up to and including 2008.06.23):

History of recent releases:

  • DDSCAT 6.1 was released 2004 September 10.
  • DDSCAT.6.0 was released 2003 September 2.
  • DDSCAT.5a10 was released 2000 August 9. It provides a new target option -- NSPHER -- to create targets consisting of the unions of N spheres (possibly overlapping) of arbitrary sizes and locations. It also uses a more recent version of the LAPACK code used by subroutine PRINAXIS.

  • DDSCAT.5a9 was released 1998 December 23. It fixes a bug in DDSCAT.5a8, which resulted in incorrect evaluation of elements of the Mueller scattering matrix (other than S_11, which was correct) for scattering planes other than phi=0.

    Benchmark Calculations

    Draine (2000) has published benchmark calculations for scattering by tetrahedral targets. Two target refractive indices have been considered: m=1.33+0.01i and m=1.70+0.10i . Scattering was calculated for one target orientation and two incident polarizations. In each case solutions were iterated until the DDA equations were satisfied with a fractional error < 1.e-5 . CPU times are reported below for a 600 MHz Pentium III system running Red Hat Linux 6.2, using the Portland Group pgf77 compiler.

    CPU time (s) on 600 MHz Pentium III System

    m=1.33+0.01i tetrahedron

    N x=5 x=10 x=15
    4030 31. -- --
    13426 141. 267. --
    31598 356. 639. 1106.
    61432 792. 1480. 2476.
    105832 1298. 2292. 4226.
    m=1.7+0.1i tetrahedron
    N x=5 x=10
    13426 377. --
    31598 939. 2104.
    61432 2115. 4429.
    105832 3585. 7335.

    For users wishing to repeat one or more of these calculations using DDSCAT.5a10 (which may be useful to reassure you that DDSCAT.5a10 is working properly on your computer), sample ddscat.par files are available for downloading:

    Please consult the DDSCAT UserGuide (see above) for an explanation of the parameters in the ddscat.par file.

    For additional information on other techniques for numerical calculation of electromagnetic scattering by finite targets, see also the SCATTERLIB library of light scattering codes maintained by Piotr Flatau.

    Back to B.T. Draine's home page.