CUDA-accelerated Electromagnetic scattering for Large Ensembles of Spheres
CELES (latin for 'fast ship') is a MATLAB/CUDA MEX implementation of the multi-sphere T-matrix method (also known as Generalized Multiparticle Mie method).
The main aim of the software is to rigorously solve electrodynamic problems comprising extremely large numbers of spherical scatterers. As such, it can be applied to study light propagation in macroscopic aggregates of particles in order to derive their bulk transport properties.
If you use CELES, please cite it as follows:
Egel A, Pattelli L, Mazzamuto G, Wiersma DS, and Lemmer U. CELES: CUDA-accelerated simulation of electromagnetic scattering by large ensembles of spheres, Journal of Quantitative Spectroscopy and Radiative Transfer 199C (2017) pp. 103-110. [link] [bibtex]
CELES is written in MATLAB in order to provide a user-friendly, fully scriptable interface to configure and run simulations. Its prominent features are
You can refer to the CHANGELOG for details on current and upcoming features.
In order to run CELES, the following software (in addition to MATLAB) should be installed on your system:
ToolkitVersion
specified when running gpuDevice
in MATLAB.CELES has been tested on Linux using the built-in gcc compiler and on Windows using MATLAB R2017b + CUDA 8 + MS Visual Studio 2015.
In order to fully take advantage of preconditioned iterative solvers we recommend running CELES on a workstation with sufficient RAM (~several 10GB for 10000+ scattering particles).
CELES can be installed via cloning the GitHub repository with
git clone https://github.com/disordered-photonics/celes.git
or by downloading and extracting one of the releases. Please note that the releases do not always represent the most up to date version (see the CHANGELOG for further details).
In MATLAB, remember to add CELES to your search path with
addpath(genpath('path/to/celes/src'));
As an example input you can execute the CELES_MAIN
script. Comments in the script explain how the simulation parameters are specified. Alternatively, you can use the CELES_model_wizard
app, a GUI that helps in the specification of the simulation parameters.
For more information, please refer to the documentation.
If you add any improvement or implement new features to the software please consider contributing them following the GitHub flow
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature
If you have questions, bug reports or feature requests, please use the Issues section to report them.
This software is published under the BSD 3-clause license, please read the LICENSE file for more information.
CELES was initiated by Amos Egel, Lorenzo Pattelli and Giacomo Mazzamuto. In addition, Alan Zhan and Taylor Fryett have contributed code to the project. We thank Yasuhiko Okada and Aso Rahimzadegan for valuable comments and bug reports.
CELES uses the following codes from other programmers: