Discrete dipole approximation: Difference between revisions

Content deleted Content added
G(k)
Link suggestions feature: 3 links added.
 
(2 intermediate revisions by one other user not shown)
Line 64:
</math>
 
where <math>k</math> is the [[wavenumber]], <math>\mathbf{I}</math> is the [[identity matrix]], and <math>\mathbf{r}</math> is the vector from the source dipole to the observation point. Evaluating the derivatives leads to the explicit form:
 
:<math>
Line 73:
</math>
 
where <math>\hat{\mathbf{r}} = \mathbf{r} / |\mathbf{r}|</math> is the [[unit vector]] pointing from the source to the observation point.
 
This Green’s tensor describes the electric field generated by a dipole in a homogeneous medium. It is used to compute the off-diagonal blocks of the interaction matrix in DDA, that is, the interaction between distinct dipoles <math>j \ne k</math>. The singular self-term <math>\mathbf{G}(\mathbf{r} = 0)</math> is excluded and replaced by a prescribed local term involving the inverse polarizability tensor <math>\boldsymbol{\alpha}_j^{-1}</math>.
Line 385:
 
==Fast Fourier Transform for fast convolution calculations==
The use of the Fastfast Fourier Transformtransform (FFT) to accelerate convolution operations in the discrete dipole approximation (DDA) was introduced by Goodman, Draine, and Flatau in 1991{{r|Goodman1991}}. Their approachmethod utilizedemployed athe 3Dthree-dimensional FFT algorithm (GPFA) developed by Clive Temperton{{r|Temperton1983}}, and involvedrequired extending the interaction matrix to twicefrom its original dimensionssize <math>(n_x,n_y,n_z)</math> to <math>(2n_x,2n_y,2n_z)</math>. This extension was accomplishedachieved by flippingreversing and mirroring the Green’s function tensor blocks toso incorporatethat all positive and negative spatial offsets (lags) were represented in a single array, allowingwith FFT-basedan convolutioninserted zero plane between the positive and negative sides along each axis. TheThis techniquearrangement ensured that the discrete convolution of sign-flippingthe andGreen’s blockfunction extensionwith becamethe polarization vector could be performed as a foundationalcyclic stepconvolution inusing efficientFFTs, implementationsavoiding ofaliasing DDAfrom wraparound effects. The Asign-flipping similarof variantthe wasGreen’s adoptedfunction in the 2021frequency MATLAB___domain implementationand bythe Shabaninezhadblock andextension Ramakrishna{{r|matlab2021}}procedure became standard steps in efficient DDA implementations. Several alternative formulations have since been proposed.
 
Several variants have been proposed since then. In 2001, Barrowes, Teixeira, and Kong{{r|Barrowes2001}} introduced a method based on block reordering, zero padding, and a reconstruction algorithm to minimize memory requirements. In 2009, McDonald, Golden, and Jennings{{r|mcdonald2009}} proposed a different scheme utilizing sequences of 1D FFTs, extending the interaction matrix separately in the x, y, and z directions. They argued that their approach leads to reduced memory consumption.
 
More generally, advanced FFT-based convolution methods have been developed in the machine learning and numerical analysis communities, offering potential benefits for DDA solvers as well. These include FlashFFTConv{{r|fu2023flashfftconv}} and frequency-___domain low-rank techniques{{r|bowman2011efficient}} that aim to reduce the computational burden of large-scale convolutions.
A similar variant to that of Goodman, Draine, and Flatau was adopted in the 2021 MATLAB implementation by Shabaninezhad and Ramakrishna{{r|matlab2021}}. In this approach, the computational ___domain for the polarization vector is zero-padded to <math>(2n_x-1)\times (2n_y-1)\times (2n_z-1)</math> instead of the <math>2n_x\times 2n_y\times 2n_z</math> sizes used in ''DDSCAT''. The stored interaction matrix <math>G</math> differs from ''DDSCAT'' in that there is no zero plane inserted between the positive and negative offsets along each axis. The FFT is performed as a sequence of one-dimensional transforms along the <math>x</math>, <math>y</math>, and <math>z</math> axes, which is mathematically equivalent to performing a full 3-D FFT on the padded ___domain.
Sequence of 1D FFTs was used by MacDonald in his Ph. D. thesis <ref name=mcdonald2009/>.
 
Barrowes method is a numerical technique for multiplying an <math>n</math>-dimensional block Toeplitz matrix by a vector using the fast Fourier transform (FFT). In three dimensions with grid sizes <math>n_x</math>, <math>n_y</math>, and <math>n_z</math>, the method embeds the block Toeplitz array into a larger block circulant array of size <math>(2n_x-1)\times (2n_y-1)\times (2n_z-1)</math>, which ensures that the corresponding convolution is free of cyclic wraparound. The kernel—containing all positive and negative offsets with the self term set to zero—is reversed along the offset axes, flattened into a one-dimensional array, and transformed by a single long FFT. The input vector is likewise placed in a zero-padded ___domain of the same size, flattened, and transformed. An element-wise product in the frequency ___domain corresponds to the spatial-___domain convolution; an inverse FFT is then reshaped and cropped back to the physical ___domain to obtain the result. The method applies to arbitrary dimension <math>n</math> and block size, and was used originally in the discrete dipole approximation.<ref name="Barrowes2001" />
 
 
 
Line 451 ⟶ 457:
<ref name=chaumet2022discrete>{{cite journal |last=Chaumet |first=Patrick C. |title=The discrete dipole approximation: A review |journal=Mathematics |volume=10 |issue=17 |pages=3049 |year=2022 |doi=10.3390/math10173049 |doi-access=free }}</ref>
 
<ref name=fu2023flashfftconv>{{cite arXiv |last1=Fu |first1=Daniel Y. |last2=Kumbong |first2=Hermann |last3=Nguyen |first3=Eric |last4=Ré |first4=Christopher |title=FlashFFTConv: Efficient Convolutions for Long Sequences with Tensor Cores |eprint=2311.05908 |year=2023 |class=cs.LG}}</ref>
 
<ref name=bowman2011efficient>{{cite journal |last1=Bowman |first1=J. C. |last2=Roberts |first2=M. |title=Efficient dealiased convolutions without padding |journal=SIAM J. Sci. Comput. |volume=33 |issue=1 |pages=386–406 |year=2011 |doi=10.1137/100787933 |arxiv=1008.1366 |bibcode=2011SJSC...33..386B}}</ref>
 
<ref name=Barrowes2001>{{cite journal |last1=Barrowes |first1=B. E. |last2=Teixeira |first2=F. L. |last3=Kong |first3=J. A. |title=Fast algorithm for matrix–vector multiply of asymmetric multilevel block-Toeplitz matrices in 3-D scattering |journal=Microw. Opt. Technol. Lett. |volume=31 |issue=1 |pages=28–32 |year=2001 |doi=10.1002/mop.1348}}</ref>