Skip to content

fragkrag/celes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CELES

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.

coverimage

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]

Features

CELES is written in MATLAB in order to provide a user-friendly, fully scriptable interface to configure and run simulations. Its prominent features are

  • massively parallel execution on CUDA-capable NVIDIA GPU hardware
  • block-diagonal preconditioning for faster convergence of iterative solvers
  • lookup-table approach to evaluate spherical Hankel functions
  • rich output (power flux, near- and far-field distributions)
  • Gaussian beam excitation
  • GUI (experimental)

Requirements

In order to run CELES, the following software (in addition to MATLAB) should be installed on your system:

You can check which CUDA version you need to install by running the command gpuDevice in MATLAB and look for ToolkitVersion in the output.

CELES has been successfully tested on Linux using the built-in gcc compiler and on Windows with the following software combinations: MATLAB R2016b + CUDA 7.5 + MS Visual Studio 2013 and MATLAB R2017a + CUDA 8 + MS Visual Studio 2013. MS Visual Studio 2013 can be downloaded here.

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).

Getting started

CELES can be installed via cloning the GitHub repository with

git clone git@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.

In MATLAB, remember to add CELES to your search path with

addpath(genpath('path/to/celes'));

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.

Contributing

If you add any improvement or implement new features to the software please consider contributing them following the GitHub flow

  1. Fork the project
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push the branch: git push origin my-new-feature
  5. Submit a Pull request

If you have questions, bug reports or feature requests, please use the Issues section to report them.

License

This software is published under the BSD 3-clause license, please read the LICENCE file for more information.

Credits

CELES uses the following codes from other programmers:

About

CELES: CUDA-accelerated electromagnetic scattering by large ensembles of spheres

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • MATLAB 91.8%
  • HTML 4.3%
  • Cuda 3.9%