SMART-G (Speed-up Monte Carlo Advanced Radiative Transfer Code using GPU) is a radiative transfer code using a Monte-Carlo technique to simulate the propagation of the polarized light in the atmosphere and/or ocean, and using GPU acceleration.
Project description
SMART-G
SMART-G (Speed-up Monte Carlo Advanced Radiative Transfer Code using GPU) is a radiative transfer code using a Monte-Carlo technique to simulate the propagation of the polarized light in the atmosphere and/or ocean, and using GPU acceleration.
Didier Ramon
Mustapha Moulana
François Steinmetz
Dominique Jolivet
Mathieu Compiègne
HYGEOS
1. Installation
1.1 Dependencies
1.1.1 Pixi (recommended)
Pixi is recommended for its fast dependency resolution and robust environment management. Unlike Conda, which only considers Conda packages during conflict resolution, Pixi consider both Conda and pip package versions when solving dependencies.
To create and activate the environment, use the following command:
pixi shell
To consider all extra dependencies (e.g. jax), use instead:
pixi shell --environment extra
1.1.2 Anaconda/Miniconda (alternative)
With Anaconda/Miniconda, use the following command:
conda create -n smartg-env -f environment.yml
conda activate smartg-env
For a full installation (extra dependencies), replace environment.yml by environment-extra.yml.
1.2 Auxiliary data
The auxiliary data can be downloaded as follow:
>>> # Example to download all the data. See the docstring for more details.
>>> from smartg.auxdata import download
>>> download('dir/path/where/to/save/data/', data_type='all')
The environment variable SMARTG_DIR_AUXDATA have to be defined.
For example, in the .bashrc / .zshrc file the following can be added:
export SMARTG_AUXDATA_DIR="dir/path/where/to/save/data/"
or (not recommended) in a .env file in the SMART-G root directory:
SMARTG_AUXDATA_DIR=dir/path/where/to/save/data/
2. Examples
Examples are provided in the sample notebooks.
jupyter notebook has nice possibilities for interactive development and visualization, in particular if you are using a remote cuda computer. Sample notebooks are provided in the folder notebooks.
3. Tests
To check that SMART-G is running correctly, run the following command at the root of the project:
pytest smartg/tests/test_cuda.py smartg/tests/test_profile.py smartg/tests/test_smartg.py -s -v
A full testing is recommended in dev:
pytest smartg/tests/ -s -v
To avoid repeating some pytest arguments, a pytest.ini file can be created (in the root directory). The following is an example of the contents of such a file:
[pytest]
addopts= --html=test_reportv1.html --self-contained-html -s -v
The arguments "--html=test_reportv1.html --self-contained-html" are used to generate an html report containing the results of the tests (sometime with more details e.g. plots), named "test_reportv1.html".
4. Hardware tested
GeForce GTX 1070, GeForce TITAN V, GeForce RTX 2080 Ti, Geforce RTX 3070, Geforce RTX 3090, Geforce RTX 4090, A100, Geforce RTX 5070 ti
The use of GPUs before 10xx series (Pascal) is depracated as of SMART-G 1.0.0
5. Licencing information
This software is available under the SMART-G licence v1.0, available in the LICENCE.TXT file.
6. Referencing
When acknowledging the use of SMART-G for scientific papers, reports etc please cite the following reference:
- Ramon, D., Steinmetz, F., Jolivet, D., Compiègne, M., & Frouin, R. (2019). Modeling polarized radiative transfer in the ocean-atmosphere system with the GPU-accelerated SMART-G Monte Carlo code. Journal of Quantitative Spectroscopy and Radiative Transfer, 222, 89-107. https://doi.org/10.1016/j.jqsrt.2018.10.017
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smartg-1.1.0.tar.gz.
File metadata
- Download URL: smartg-1.1.0.tar.gz
- Upload date:
- Size: 378.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b48b9d8a1342f411c3960f43831576cfbfb5a13517e1037473943aa7b3ace3a
|
|
| MD5 |
c4a587e4b4b834fc0b4ee51ee37f1ca4
|
|
| BLAKE2b-256 |
970966430cff1e68be9d52d95d712d82053af2db0edb18e1d17d1ccf34ac7276
|
File details
Details for the file smartg-1.1.0-py3-none-any.whl.
File metadata
- Download URL: smartg-1.1.0-py3-none-any.whl
- Upload date:
- Size: 430.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8e91f5ac49b1254b7c3c28284e90fbbf02541da52e9c5409c8f3b36251ae25d
|
|
| MD5 |
736b4e17c9fc19a68b4bdf1eec9effda
|
|
| BLAKE2b-256 |
cf3a9c128811791d8078ce2d270236e18c15451b219bea63256ce60182c5b50a
|