[WIP] Add Multigrid support - #788
Open
erwanp wants to merge 1 commit into
Open
Conversation
|
This pull request has been inactive for 60 days. To keep the project's workflow efficient, it may be closed by an admin if no further updates (commits, comments, or reviews) are made soon. If you're still working on this:
If this PR is no longer needed, feel free to close it yourself. Thanks for your contribution! |
|
This pull request has been inactive for 60 days. To keep the project's workflow efficient, it may be closed by an admin if no further updates (commits, comments, or reviews) are made soon. If you're still working on this:
If this PR is no longer needed, feel free to close it yourself. Thanks for your contribution! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New clean implementation of #606
Multigrid support in RADIS
tl;dr
optimisation=None) & regular grid output : 4x speed-up in CO HITRAN exampleoptimization=simple)self._multisparsegridand other hidden variables)(wstep, truncation)parameters of each grid (and the number of grids. Maybe 2 are enough)optimization=None)This will be particularly useful for "isolated-lines" spectra, i.e. :
👉 Combined with DIT (for "dense spectra") and sparse-DIT (for "dense-by-part spectra") it should make RADIS the ultimate, fastest code for every kind of spectra.
Other changes:
get_overlapping_ranges(nice)
Old Benchmark in #606
Case 1. Full-range calculations, low number of lines
1.1 With Optimization=None (no LDM) (HITRAN) : x4
CO-HITRAN, 500 - 10,000 cm-1
Code : see at the bottom
Here are the performance details :
We see a x25 speed-up in the Voigt broadening part, and an overall x4 speedup in the full Lineshape broadening step (including aggregation of lines & interpolation of grids).
(Fig.1 13/08/23):

Grids are automatically refined around the line centers . Each grid is regular (i.e. constant wstep) which (will) allow the use of the DIT Algorithm. (Fig 2.)
Same, zoomed-out to see the multiple (3) and discontinued (multi-groups) grids (Fig 3.)
Code:
1.2 With Sparse LDM (HITRAN) : x4
@dcmvdbekerom same calculations with LDM now : x6 speed-up ; and x10 if looking only at the line broadening part (Fig 5.)
Code : same as above, with the following changes:
1.3 With Sparse LDM (HITEMP) : x4
Note : the example above was ran with CO HITRAN, with limited number of lines. For CO HITEMP below we see that the multigrid accelerates the LDM_convolve step, but does not change the LDM_Distribute_lines step (obviously)
1.4 With (non-sparse) LDM (HITEMP) : x4
CO HITEMP version (same as above)
Acceleration by a factor of 5 (but non-sparse LDM is still very slow for such a large range)
Case 2 (Appendix) - Adaptative grid in worse conditions
2.1 (non-sparse) LDM in dense regions : x1
Adaptative grid is developed for isolated-lines spectra. Below we deal with a very dense spectral region, i.E. the 4.2 µm (2300 cm-1) band of CO2
Adaptative grid doesn't accelerate the calculations, but it doesn't slow it down neither