2024 Summer release π
Highlights
- Performance: GPU for all ! (no need for specific hardware)
- Performance: Low-memory calculations (multiple orders of magnitude improvements)
- [Docs](https://radis.readthedocs.io/en/latest/index.html) fully reorganized
- 15 new contributors!
*Pull request details : https://github.com/radis/radis/pull/667*
---
π¬ Physics Features
* Support for non air diluent by Supriya1702 in https://github.com/radis/radis/pull/495
* Multiple diluents calculation for multiple molecules in calc_spectrum by 1someshverma in https://github.com/radis/radis/pull/555
**Important notice**: multi-molecule calculations will intentionally crash if broadening coefficients are not available for all the species [according to Radis "Better Crash Than Hide" policy]. See 653 for future workarounds
* Added latest HITRAN molecules & isotopes (in update molecular parameters by nollety in https://github.com/radis/radis/pull/549 ) ; as well as latest Exomol molecules
βοΈUser-interface
* Add an option to normalize at one point by E-W-Jones in https://github.com/radis/radis/pull/627
* New Spectrum.fit_model() routine, s.argmax(), and s.from_mat() for Matlab interface by erwanp in https://github.com/radis/radis/pull/611
π Performance improvement
* Calculation with Vaex (beforehand, only loading of database was performed with Vaex) : 576, 580
To use Vaex
python
from radis import config
config["DATAFRAME_ENGINE"] = "vaex"
Memory Performances
![image](https://github.com/radis/radis/assets/78527441/cd25250e-c0a9-47d0-9e36-a7c8f859ec40)
Time Performance
![image](https://github.com/radis/radis/assets/78527441/fdc4cd63-0ec9-452c-bc7a-06fa08272d16)
* Cuda driver by dcmvdbekerom in https://github.com/radis/radis/pull/604 : gets rid of `cupy` and `CUDA toolkit` dependencies.
In layman terms, this means you don't need to install excessive software just to make use of GPU capabilities. **"GPU for all"** !
An example to compare CPU and GPU codes:
python
from radis import SpectrumFactory
fixed_conditions = {
"path_length": 1,
"wmin": 2000,
"wmax": 3000,
"pressure": 0.1,
"wstep": 0.001,
"mole_fraction": 0.01,
"verbose":0}
Tgas = 1000
sf = SpectrumFactory(
**fixed_conditions,
broadening_method="fft",
molecule='CO2'
)
sf.fetch_databank("hitemp")
s1_gpu = sf.eq_spectrum_gpu(
Tgas=Tgas, K
backend="gpu-cuda", runs on GPU
diluent={'air':0.99})
s1_cpu = sf.eq_spectrum(
Tgas=Tgas, K
diluent={'air':0.99}
)
integral_GPU = s1_gpu.get_integral("absorbance")
integral_CPU = s1_cpu.get_integral("absorbance")
print(integral_GPU, integral_CPU, integral_GPU/integral_CPU)
π Important Bug fixes
* Compute power based on vacuum wavelengths - Resolution proposal for bug 460 by AllanHOlesenBW in https://github.com/radis/radis/pull/477
* fix broadening HWHM for diluent by erwanp in https://github.com/radis/radis/pull/589
* RADIS works for all modern Python version (641, 651, 656)
* Solution to rounding issue while summing mole fractions by smitsekhadiaa in https://github.com/radis/radis/pull/642
* Fix spurious download of .states.bz2 file by minouHub in https://github.com/radis/radis/pull/632
* fixes hitemp loading error by HajimeKawahara in https://github.com/radis/radis/pull/636
π Documentation
* Additional new gallery examples by TranHuuNhatHuy in 518, 522
* Docs are fully reorganized (637655 ) : https://radis.readthedocs.io/en/latest/index.html
![image](https://github.com/user-attachments/assets/8435af18-9604-40b8-809b-53f011fcb850)
---
What's Changed
* Add some small docs/examples by TranHuuNhatHuy in https://github.com/radis/radis/pull/518
* Implement all new fitting modules and accompanied gallery examples into RADIS by TranHuuNhatHuy in https://github.com/radis/radis/pull/520
* add explicit warning/error message if line with 0-cm-1 broadening by erwanp in https://github.com/radis/radis/pull/524
* Allow astropy units to be used in crop() by TranHuuNhatHuy in https://github.com/radis/radis/pull/526
* Removing completed TODO in radis/lbl/calc.py by mdrodelo in https://github.com/radis/radis/pull/527
* Add/common api by erwanp in https://github.com/radis/radis/pull/480
* Non air diluent 2 by Supriya1702 in https://github.com/radis/radis/pull/495
* Additional illustrative gallery examples for new fitting module by TranHuuNhatHuy in https://github.com/radis/radis/pull/522
* number of trans files in H3O_p/Exomol error manually fixed by HajimeKawahara in https://github.com/radis/radis/pull/531
* added double axis and updated exomol molecules list and get_molecule method of DataFileManager class by 1someshverma in https://github.com/radis/radis/pull/537
* prevent imax index from exceeding the range by ykawashima in https://github.com/radis/radis/pull/538
* fixed black Test by 1someshverma in https://github.com/radis/radis/pull/539
* Features/exomol loading optional fields, such as quantum states, when kip_optional_data=False in api.read_states by HajimeKawahara in https://github.com/radis/radis/pull/541
* docs(radis-0.14): adding installation guide for radis for conda and mamba by arunavabasucom in https://github.com/radis/radis/pull/542
* Warn when branch data type is not int64 by nollety in https://github.com/radis/radis/pull/546
* Plots show up even if interactive mode is off by 1someshverma in https://github.com/radis/radis/pull/543
* Matlab Interface by 1someshverma in https://github.com/radis/radis/pull/547
* Update molecular parameters by nollety in https://github.com/radis/radis/pull/549
* A potential fix for the issue Docs are broken 545 by andreyscott in https://github.com/radis/radis/pull/553
* fix output format (pb change of default Pandas output) by erwanp in https://github.com/radis/radis/pull/556
* fix wrongly filtered paths in loader.py by mragank02 in https://github.com/radis/radis/pull/552
* Multiple diluents calculation for multiple molecules in calc_spectrum by 1someshverma in https://github.com/radis/radis/pull/555
* Test failing on `test_calc` by minouHub in https://github.com/radis/radis/pull/570
* updated isort for uncompatibility issue with Poetry by minouHub in https://github.com/radis/radis/pull/568
* No upper bound on numpy version by minouHub in https://github.com/radis/radis/pull/569
* Install command by menasrac in https://github.com/radis/radis/pull/560
* Added plotting options documentation by menasrac in https://github.com/radis/radis/pull/559
* Removed manual exceptions in exomolapi and fixed broadf option by YuiKasagi in https://github.com/radis/radis/pull/571
* Allowing to use non numeric columns in HITRAN by YuiKasagi in https://github.com/radis/radis/pull/574
* Compute power based on vacuum wavelengths - Resolution proposal for bug 460 by AllanHOlesenBW in https://github.com/radis/radis/pull/477
* fixes 529 by erwanp in https://github.com/radis/radis/pull/587
* Fix docs and various little things by erwanp in https://github.com/radis/radis/pull/591
* organized verbose message of hitemp by minouHub in https://github.com/radis/radis/pull/584
* Doc/test build by erwanp in https://github.com/radis/radis/pull/593
* fixing docs / try with extra_requirements by erwanp in https://github.com/radis/radis/pull/594
* trying without docs/requirements.txt by erwanp in https://github.com/radis/radis/pull/595
* fix broadening HWHM for diluent by erwanp in https://github.com/radis/radis/pull/589
* Handles division by zero by 1someshverma in https://github.com/radis/radis/pull/566
* Fixed Docs + reorganized dependencies by erwanp in https://github.com/radis/radis/pull/599
* Fetch exomol by minouHub in https://github.com/radis/radis/pull/586
* Unexpected behavior of plot_diff by minouHub in https://github.com/radis/radis/pull/607
* Spelling by jsoref in https://github.com/radis/radis/pull/608
* [Reduced Memory Use] calculating spectrum using vaex corrected by 1someshverma in https://github.com/radis/radis/pull/580
* removed engine parameter by 1someshverma in https://github.com/radis/radis/pull/609
* Cuda driver by dcmvdbekerom in https://github.com/radis/radis/pull/604
* resolves the incompatibility w ExoJAX for set_broadening_coef. See ht⦠by HajimeKawahara in https://github.com/radis/radis/pull/626
* New Spectrum.fit_model() routine, s.argmax(), and s.from_mat() for Matlab interface by erwanp in https://github.com/radis/radis/pull/611
* [Minor] Secondary xaxis & download of .states.bz2 file by minouHub in https://github.com/radis/radis/pull/632
* fixes hitemp loading error by HajimeKawahara in https://github.com/radis/radis/pull/636
* Fix Vaex DataFrame usage by sh-tada in https://github.com/radis/radis/pull/638
* Make codebase Pandas 2.0-ready by leroyvn in https://github.com/radis/radis/pull/641
* Solution to rounding issue while summing mole fractions by smitsekhadiaa in https://github.com/radis/radis/pull/642
* Reorganization and simplification of the doc by minouHub in https://github.com/radis/radis/pull/637
* (too) simple solution to accelerate potential halt of travis by minouHub in https://github.com/radis/radis/pull/633
* Doc changes by smitsekhadiaa in https://github.com/radis/radis/pull/644
* Resolve failing tests by minouHub in https://github.com/radis/radis/pull/648
* Remove install dependency + support Python 3.9, 3.10 by minouHub in https://github.com/radis/radis/pull/647
* Add an option to normalize at one point by E-W-Jones in https://github.com/radis/radis/pull/627
* No upper version limit in RADIS install by minouHub in https://github.com/radis/radis/pull/651
* [Minor] Typo in doc by minouHub in https://github.com/radis/radis/pull/655
* update Test environment by erwanp in https://github.com/radis/radis/pull/657
* remove vaex hard dependency by erwanp in https://github.com/radis/radis/pull/656
New Contributors
* mdrodelo made their first contribution in https://github.com/radis/radis/pull/527
* HajimeKawahara made their first contribution in https://github.com/radis/radis/pull/531
* 1someshverma made their first contribution in https://github.com/radis/radis/pull/537
* ykawashima made their first contribution in https://github.com/radis/radis/pull/538
* nollety made their first contribution in https://github.com/radis/radis/pull/546
* andreyscott made their first contribution in https://github.com/radis/radis/pull/553
* mragank02 made their first contribution in https://github.com/radis/radis/pull/552
* menasrac made their first contribution in https://github.com/radis/radis/pull/560
* YuiKasagi made their first contribution in https://github.com/radis/radis/pull/571
* AllanHOlesenBW made their first contribution in https://github.com/radis/radis/pull/477
* jsoref made their first contribution in https://github.com/radis/radis/pull/608
* sh-tada made their first contribution in https://github.com/radis/radis/pull/638
* leroyvn made their first contribution in https://github.com/radis/radis/pull/641
* smitsekhadiaa made their first contribution in https://github.com/radis/radis/pull/642
* E-W-Jones made their first contribution in https://github.com/radis/radis/pull/627
**Full Changelog**: https://github.com/radis/radis/compare/0.13.1...0.15