  The discrete dipole approximation (DDA) is a popular numerical method for
calculating the scattering properties of atmospheric ice crystals. The standard
DDA formulation involves the uniform discretization of the underlying volume
integral equation, leading to a linear system with a block-Toeplitz
Toeplitz-block matrix. This structure permits a matrix-vector product to be
performed with $\mathcal{O}(n\log n)$ complexity via the fast-Fourier transform
(FFT). Thus, in principle, the system can be solved rapidly using an iterative
method. However, it is well known that the convergence of iterative methods
becomes increasing slow as the optical size and refractive index of the
scattering obstacle are increased. In this paper, we present a preconditioning
strategy based on the multi-level circulant preconditioner of Chan and Olkin
and assess its performance for improving this rate of convergence. In
particular, we approximate the system matrix by a block-circulant
circulant-block matrix which can be inverted rapidly using the FFT. We present
numerical results for scattering by hexagonal ice prisms demonstrating that
this serves as an effective preconditioning strategy, reducing simulation times
by orders of magnitude in many cases. A Matlab implementation of this work is
freely available online.
