User Guide for the Discrete Dipole Approximation Code DDSCAT 7.0
  DDSCAT 7.0 is an open-source Fortran-90 software package applying the discrete dipole approximation to calculate scattering and absorption of electromagnetic waves by targets with arbitrary geometries and complex refractive index. The targets may be isolated entities (e.g., dust particles), but may also be 1-d or 2-d periodic arrays of "target unit cells", allowing calculation of absorption, scattering, and electric fields around arrays of nanostructures.   The theory of the DDA and its implementation in DDSCAT is presented in Draine (1988) and Draine & Flatau (1994), and its extension to periodic structures (and near-field calculations) in Draine & Flatau (2008). DDSCAT 7.0 includes support for MPI, OpenMP, and the Intel Math Kernel Library (MKL). DDSCAT supports calculations for a variety of target geometries. Target materials may be both inhomogeneous and anisotropic. It is straightforward for the user to "import" arbitrary target geometries into the code. DDSCAT automatically calculates total cross sections for absorption and scattering and selected elements of the Mueller scattering intensity matrix.   This User Guide explains how to use DDSCAT 7.0 to carry out electromagnetic scattering calculations. DDfield, a Fortran-90 code DDfield to calculate E and B at user-selected locations near the target, is included in the distribution. 
B.T. Draine (1), P. J. Flatau (2) ((1) Princeton University, (2)   Scripps Institution of Oceanography, UCSD)