# CPDDA: A Python Package for Discrete Dipole Approximation Accelerated by CuPy

**Authors:** Dibo Xu, Paerhatijiang Tuersun, Shuyuan Li, Meng Wang, Lan Jiang

PMC · DOI: 10.3390/nano15070500 · Nanomaterials · 2025-03-26

## TL;DR

CPDDA is a Python package that accelerates light-scattering and absorption simulations using GPU computing for small particles.

## Contribution

CPDDA introduces a Python-based DDA package with GPU acceleration, object-oriented design, and a refractive index database.

## Key findings

- CPDDA demonstrated accuracy by comparing results with Mie theory and other packages like MPDDA and pyGDM2.
- The package efficiently simulated ZnO@Au core-shell nanorods' optical properties based on particle size.
- CPDDA offers high flexibility and performance for simulating light interactions with arbitrarily shaped particles.

## Abstract

Discrete Dipole Approximation (DDA) is a rapidly developing numerical method in recent years. DDA has found wide application in many research fields including plasmonics and atmospheric optics. Currently, few DDA packages based on Python have been reported. In this work, a Python package called CPDDA is developed. It can be used to simulate the light-scattering and -absorption properties of arbitrarily shaped particles. CPDDA uses object-oriented programming, offers high flexibility and extensibility, and provides a comprehensive database of refractive indices. The package uses the biconjugate gradient method and fast Fourier transform for program acceleration and memory optimization, and it uses parallel computation with graphics processing units to enhance program performance. The accuracy and performance of CPDDA were demonstrated by comparison with Mie theory, the MATLAB package MPDDA, and the Python package pyGDM2. Finally, CPDDA was used to simulate the variations in light-absorption and -scattering properties of ZnO@Au core-shell nanorods based on the particle size. CPDDA is useful for calculating light-scattering and -absorption properties of small particles and selecting materials with excellent optical properties.

## Full-text entities

- **Chemicals:** CPDDA (MESH:C097372), ZnO@Au (-)

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/PMC11990789/full.md

## Figures

8 figures with captions in the complete paper: https://tomesphere.com/paper/PMC11990789/full.md

## References

41 references — full list in the complete paper: https://tomesphere.com/paper/PMC11990789/full.md

---
Source: https://tomesphere.com/paper/PMC11990789