MATLAB package for discrete dipole approximation by graphics processing unit: Fast Fourier Transform and Biconjugate Gradient

https://doi.org/10.1016/j.jqsrt.2020.107501Get rights and content

Highlights

  • Introducing a MATLAB package for describing discrete dipole approximation technique.

  • Including accelerative methods to reduce the computational time and memory.

  • Providing a comprehensive explanation for all steps of the used accelerative methods.

  • Accelerating computation procedure using graphics processing unit in MATLAB.

  • For 1 million dipoles, graphics processing unit performance is ~10 times faster than CPU.

  • Computing optical properties of the plasmonic nanoparticles using this package.

Abstract

A MATLAB package describing discrete dipole approximation (MPDDA) is introduced to calculate the optical properties of arbitrary shaped plasmonic nanoparticles (NPs). The polarizability function, induced dipoles, and dipole interaction matrix are discussed. To calculate the dipole moments, Fast Fourier Transform (FFT) and Biconjugate Gradient (BCG) were used to reduce the computational time and memory. To further accelerate the computational procedure, we used MATLAB functions and toolboxes supported by the graphics processing unit (GPU) and execute them on GPU by supplying a “gpuArray” argument. Using the GPU, the computation cost significantly decreased when compared to the CPU. We also simulated the optical properties of plasmonic NPs, such as extinction, absorption, and scattering efficiencies, electric field enhancement around monomeric and dimeric structures using this package. The accuracy and capabilities of the code have been confirmed by comparing with Mie theory (exact solution) and ADDA code (a DDA package developed in C).

Section snippets

Program summary section

Program title: MPDDA

Licensing provisions: GPL General Public License

Programming language: MATLAB R2016b

Program obtainable from: https://github.com/MasoudShabani/MPDDA-1.0

Nature of problem: Simulation of optical properties such as absorption, scattering, and extinction efficiencies, and field enhancement of monomeric and dimeric plasmonic nanostructures using the discrete dipole approximation. Accelerative methods (Fast Fourier Transform and Biconjugate Gradient) were used to reduce the

Discrete dipole approximation formalism

The DDA is a general and effective method to calculate optical properties such as absorption, scattering, and extinction cross-sections of the electromagnetic waves by particles with arbitrary shapes and compositions [1,22,42]. The DDA is a numerically exact method based on the volume-integral discretization derived directly from Maxwell's equations [42]. In this method, the target particle will be divided into N cubes [1]. Each cubical voxel represents a point dipole with polarizability of  αi

Biconjugate gradient

To obtain the polarization of each dipole, Eq. (7) can be solved using iterative methods. It has been shown that iterative methods are more efficient than direct methods [22,25,28]. In this subsection, we review the BCG method provided by Smith et al. [25] that uses more efficient modification for complex symmetric matrices. It is worth mentioning that this iterative technique also has been used in the well-known DDA codes, such as DDSCAT [22,27] and ADDA [28].

The BCG requires an initial guess

Absorption, scattering, and extinction efficiencies

By knowing the polarization vector of each dipole at different wavelengths, the absorption, extinction, and scattering cross-sections of a nanoparticle can be calculated as, (Fig. 10), [7]Cabs=4π|k||E0|2i=1N[Im(Pi.Pi*αi*)23|k|3|Pi|2]Cext=4π|k||E0|2i=1N[Im(Einc,i*).Pi]Cscat=CextCabswhere ‘Im’ and ‘*’ are representing the imaginary part and the complex conjugate, respectively. The absorption, extinction, and scattering efficiencies are expressed by dividing the corresponding optical

Conclusions

In this study, a package in MATLAB, named MPDDA, is introduced to calculate the optical properties of the monomeric and dimeric plasmonic nanostructures using the DDA. This study represents the application of BCG and FFT to accelerate the DDA in MATLAB software. All procedures of the DDA are discussed in detail, and their corresponding MATLAB functions are introduced. This package has the capability to run both in the CPU and GPU platforms. For running the simulation in the GPU, all of the

CRediT authorship contribution statement

M. Shabaninezhad: Conceptualization, Methodology, Software, Writing - original draft, Writing - review & editing, Investigation, Visualization, Validation. M.G. Awan: Writing - original draft, Validation, Resources. G. Ramakrishna: Supervision, Writing - review & editing.

Declaration of Competing Interest

No.

Acknowledgments

M. Shabaninezhad thanks the Physics Department of Western Michigan University for financial support and acknowledge Dr. Gupta and Dr. Saeed for providing access to Parallel Computing and Data Science Laboratory, Department of the Computer Science, Western Michigan University.

References (66)

  • U. Hohenester

    Comput Phys Commun

    (2018)
  • J. Waxenegger et al.

    Comput Phys Commun

    (2015)
  • M. Shabaninezhad et al.

    Chem Phys

    (2021)
  • M. Huntemann et al.

    J Comput Sci

    (2011)
  • D.A. Smunev et al.

    J Quant Spectrosc Radiat Transf

    (2015)
  • M.A. Yurkin et al.

    J Quant Spectrosc Radiat Transf

    (2011)
  • M.A. Yurkin et al.

    J Quant Spectrosc Radiat Transf

    (2007)
  • V.L.Y. Loke et al.

    J Quant Spectrosc Radiat Transf

    (2011)
  • U. Hohenester et al.

    Comput Phys Commun

    (2012)
  • Y. Eremin et al.

    Comput Phys Commun

    (2016)
  • M.A. Yurkin et al.

    J Quant Spectrosc Radiat Transf

    (2007)
  • M.A. Yurkin et al.

    J Quant Spectrosc Radiat Transf

    (2013)
  • M.G. Awan et al.

    Comput. Biol Med

    (2018)
  • Y. Hu et al.

    Nanoscale Res Lett

    (2016)
  • P.K. Jain et al.

    Chem Phys Lett

    (2010)
  • E.M. Purcell et al.

    Astrophys J

    (1973)
  • K.S. Yee

    IEEE Trans Antennas Propag

    (1966)
  • F.L. Teixeira

    J Microwaves Optoelectron

    (2007)
  • J.-M. Jin

    The finite element method in electromagnetics

    (2014)
  • B.T. Draine

    Astrophys J

    (1988)
  • P.J. Flatau et al.

    J Opt Soc Am A

    (1990)
  • J.J. Goodman et al.

    Opt Lett

    (1991)
  • J. Zhao et al.

    Acc Chem Res

    (2008)
  • P.K. Jain et al.

    J Phys Chem B

    (2006)
  • C.F. Bohren et al.

    Absorption and scattering of light by small particles

    (1998)
  • K.L. Kelly et al.

    J. Phys. Chem. B

    (2003)
  • P.K. Jain et al.

    J Phys Chem B

    (2006)
  • K.-S. Lee et al.

    J Phys Chem B

    (2005)
  • V. Amendola et al.

    Plasmonics

    (2010)
  • M. Shabaninezhad et al.

    J Chem Phys

    (2019)
  • A. Kinkhabwala et al.

    Nat Photonics

    (2009)
  • P.K. Jain et al.

    Nano Lett

    (2008)
  • E. Hao et al.

    J Chem Phys

    (2004)
  • Cited by (0)

    View full text