  DDSCAT 7.2 is a freely available open-source Fortran-90 software package
applying the discrete dipole approximation (DDA) 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",
which can be used to study absorption, scattering, and electric fields around
arrays of nanostructures.
  The DDA approximates the target by an array of polarizable points. 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 in Draine &
Flatau (2008). Efficient near-field calculations are enabled following Flatau &
Draine (2012). DDSCAT 7.2 allows accurate calculations of electromagnetic
scattering from targets with size parameters 2*pi*aeff/lambda < 25 provided the
refractive index m is not large compared to unity (|m-1| < 2). DDSCAT 7.2
includes support for MPI, OpenMP, and the Intel Math Kernel Library (MKL).
  DDSCAT 7.2 supports calculations for a variety of target geometries (e.g.,
ellipsoids, regular tetrahedra, rectangular solids, finite cylinders, hexagonal
prisms, etc.). Target materials may be both inhomogeneous and anisotropic. It
is straightforward for the user to import new target geometries into the code.
DDSCAT 7.2 calculates total cross sections for absorption and scattering and
selected elements of the Mueller scattering intensity matrix for specified
orientation of the target relative to the incident wave, and for specified
scattering directions. DDSCAT 7.2 calculates E throughout a user-specified
rectangular volume containing the target. A Fortran-90 code READNF to read E
and P from files created by DDSCAT 7.2 is included in the distribution.
