MATLAB package for discrete dipole approximation by graphics processing unit: Fast Fourier Transform and Biconjugate Gradient
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]where ‘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)
Comput Phys Commun
(2018)- et al.
Comput Phys Commun
(2015) - et al.
Chem Phys
(2021) - et al.
J Comput Sci
(2011) - et al.
J Quant Spectrosc Radiat Transf
(2015) - et al.
J Quant Spectrosc Radiat Transf
(2011) - et al.
J Quant Spectrosc Radiat Transf
(2007) - et al.
J Quant Spectrosc Radiat Transf
(2011) - et al.
Comput Phys Commun
(2012) - et al.
Comput Phys Commun
(2016)