<p align="center">
<img src="https://disordered-photonics.github.io/celes/readme_logo.svg", height="150">
</p>
## 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](doc/images/coverimage.png)
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](https://doi.org/10.1016/j.jqsrt.2017.05.010)] [[bibtex](doc/celes.bib)]
### 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
* support for polydisperse samples of spheres (thanks to Alan Zhan)
* GUI (experimental)
You can refer to the [CHANGELOG](CHANGELOG.md) for details on current and upcoming features.
### Requirements
In order to run CELES, the following software (in addition to MATLAB) should be installed on your system:
* the [CUDA toolkit](https://developer.nvidia.com/cuda-downloads) matching the `ToolkitVersion` specified when running `gpuDevice` in MATLAB.
* a [C++ compiler](https://it.mathworks.com/support/compilers.html) which is supported by MATLAB in combination with the given CUDA version.
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).
### Getting started
CELES can be installed via cloning the GitHub repository with
```bash
git clone https://github.com/disordered-photonics/celes.git
```
or by downloading and extracting one of the [releases](https://github.com/disordered-photonics/celes/releases). Please note that the releases do not always represent the most up to date version (see the [CHANGELOG](CHANGELOG.md) for further details).
In MATLAB, remember to add CELES to your search path with
```matlab
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](https://disordered-photonics.github.io/celes/).
### Contributing
If you add any improvement or implement new features to the software please consider contributing them following the [GitHub flow](https://guides.github.com/introduction/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](https://github.com/disordered-photonics/celes/pulls)
If you have questions, bug reports or feature requests, please use the [Issues](https://github.com/disordered-photonics/celes/issues) section to report them.
### License
This software is published under the BSD 3-clause license, please read the [LICENSE](LICENSE) file for more information.
### Credits
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:
* [polarplot3d](https://it.mathworks.com/matlabcentral/fileexchange/13200-3d-polar-plot/content/polarplot3d.m) from Kenn Gerard
* [wigner3j](https://it.mathworks.com/matlabcentral/fileexchange/20619-wigner3j-symbol) from Kobi Kraus
* Iterative solvers based on the [Templates for the Solution of Linear Systems](http://it.mathworks.com/matlabcentral/fileexchange/2158-templates-for-the-solution-of-linear-systems)
没有合适的资源?快使用搜索试试~ 我知道了~
CELES:大型球体集合的 CUDA 加速电磁散射_MATLAB_代码_下载
共110个文件
m:51个
png:24个
html:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 76 浏览量
2022-07-03
23:50:31
上传
评论 1
收藏 1.51MB ZIP 举报
温馨提示
该软件的主要目的是严格解决包含大量球形散射体的电动力学问题。因此,它可用于研究粒子宏观聚集体中的光传播,以得出它们的整体传输特性。 特征 CELES 是用 MATLAB 编写的,目的是提供一个用户友好的、完全可编写脚本的界面来配置和运行仿真。其突出特点是 在支持 CUDA 的 NVIDIA GPU 硬件上进行大规模并行执行 用于迭代求解器更快收敛的块对角预处理 评估球面汉克尔函数的查找表方法 丰富的输出(功率通量、近场和远场分布) 高斯光束激发 支持球体的多分散样品(感谢 Alan Zhan) 图形用户界面(实验性)
资源推荐
资源详情
资源评论
收起资源包目录
CELES:大型球体集合的 CUDA 加速电磁散射_MATLAB_代码_下载
(110个子文件)
celes.bib 466B
foundation.css 41KB
customdoxygen.css 23KB
custom.css 59B
coupling_matrix_multiply_CUDA.cu 11KB
default_particle_positions.dat 4KB
.directory 59B
main_page.dox 5KB
Doxyfile_linux 105KB
.editorconfig 53B
.gitignore 63B
.gitignore 32B
.gitignore 18B
polarplot3d_demo.html 12KB
custom_header.html 2KB
header.html 2KB
custom_footer.html 735B
footer.html 715B
favicon.ico 15KB
package.json 522B
manifest.json 403B
LICENSE 2KB
polarplot3d.m 28KB
celes_simulation.m 22KB
celes_preconditioner.m 10KB
celes_particles.m 9KB
celes_numerics.m 7KB
CELES_MAIN.m 7KB
bicgstab_custom.m 6KB
celes_planeWavePattern.m 6KB
celes_initialField.m 6KB
plot_field.m 6KB
celes_output.m 6KB
initial_field_coefficients_wavebundle_normal_incidence.m 6KB
celes_solver.m 6KB
compute_scattered_field.m 5KB
celes_input.m 5KB
compute_initial_field.m 5KB
app2simulation.m 5KB
coupling_matrix_multiply.m 5KB
scattered_field_plane_wave_pattern.m 4KB
initial_field_plane_wave_pattern.m 4KB
spherical_functions_trigon.m 4KB
simulation2app.m 4KB
Wigner3j.m 4KB
plot_spheres.m 4KB
legendre_normalized_trigon.m 4KB
compute_internal_field.m 3KB
SVWF.m 3KB
translation_table_ab.m 3KB
gaussian_beam_paraxial_approximation.m 3KB
pwp_power_flux.m 3KB
initial_field_coefficients_planewave.m 3KB
T_entry.m 3KB
plot_intensity.m 3KB
fetch_and_patch_gmres.m 3KB
make_particle_partion.m 3KB
multi2single_index.m 3KB
transformation_coefficients.m 3KB
cuda_compile.m 3KB
polarplot3d_demo.m 3KB
celes_tables.m 3KB
plot_beam.m 3KB
PVWF_components.m 3KB
app2output.m 3KB
sph_bessel.m 2KB
initial_power_wavebundle_normal_incidence.m 2KB
dx_xz.m 2KB
check_legendre.m 2KB
convergence_message.m 2KB
print_parameters.m 2KB
print_logo.m 2KB
jmult_max.m 2KB
Makefile 236B
README.md 5KB
CHANGELOG.md 3KB
CELES_model_wizard.mlapp 107KB
.nojekyll 0B
m2cpp_Linux.pl 6KB
coverimage.png 459KB
screenshot_gui.png 156KB
beam_on_2500_spheres.png 102KB
android-chrome-512x512.png 38KB
polarplot3d_demo_08.png 33KB
polarplot3d_demo_06.png 28KB
polarplot3d_demo_03.png 27KB
polarplot3d_demo_10.png 27KB
polarplot3d_demo_05.png 25KB
polarplot3d_demo_02.png 24KB
polarplot3d_demo_04.png 23KB
polarplot3d_demo_01.png 22KB
mstile-310x310.png 21KB
android-chrome-192x192.png 14KB
polarplot3d_demo_09.png 13KB
polarplot3d_demo_07.png 13KB
mstile-310x150.png 10KB
mstile-144x144.png 10KB
mstile-150x150.png 10KB
apple-touch-icon.png 9KB
mstile-70x70.png 7KB
共 110 条
- 1
- 2
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9154
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功