Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR extends the line-by-line (LBL) Voigt+ECS line-mixing capabilities by adding new ECS variants for symmetric-top and spherical-top molecules (WIP), adds preliminary ECS parameter datasets for NH3/PH3/CH4, fixes ECS-related ordering/sign issues (including a clang-visible Rational comparison bug), and substantially expands the ECS documentation in the concepts guide.
Changes:
- Add new ECS Voigt line shapes for symmetric-top (NH3/PH3) and spherical-top (CH4) molecules and wire them into the LBL pipeline/options.
- Add preliminary ECS parameter-population helpers (
abs_ecs_dataAddNH3/PH3/CH4) and expose them as workspace methods. - Fix/adjust ECS Hartmann coupling implementation details and update ECS/LBL documentation + references.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/workspace_methods.cpp | Adds workspace-method metadata for new preliminary ECS datasets (NH3/PH3/CH4). |
| src/m_linemixing.cc | Implements the new preliminary ECS parameter population functions for NH3/PH3/CH4. |
| src/core/tests/test_laginterp.cpp | Updates template arguments for test_variant_lag to use z-suffixed literals. |
| src/core/options/arts_options.cc | Exposes new LineByLineLineshape enum string values for ECS symmetric/spherical tops. |
| src/core/matpack/rational.h | Replaces defaulted <=> with a custom comparator and adjusts friend <=> direction. |
| src/core/lbl/lbl_voigt.cpp | Treats the new ECS variants as Voigt-based line shapes. |
| src/core/lbl/lbl_lineshape_voigt_ecs_stotop.h | Declares ECS off-diagonal relaxation computation + reduced dipole for symmetric tops. |
| src/core/lbl/lbl_lineshape_voigt_ecs_stotop.cpp | Implements symmetric-top ECS relaxation matrix off-diagonals and reduced dipole logic. |
| src/core/lbl/lbl_lineshape_voigt_ecs_sphtop.h | Declares ECS off-diagonal relaxation computation + reduced dipole for spherical tops. |
| src/core/lbl/lbl_lineshape_voigt_ecs_sphtop.cpp | Implements spherical-top ECS relaxation matrix off-diagonals and reduced dipole logic. |
| src/core/lbl/lbl_lineshape_voigt_ecs_hartmann.cpp | Adjusts CO2 isotopologue check and Hartmann ECS Wigner-coupling/sign handling. |
| src/core/lbl/lbl_lineshape_voigt_ecs.cpp | Wires the new ECS variants into dipole and relaxation-matrix construction paths. |
| src/core/lbl/lbl_lineshape.cpp | Routes new ECS variants through the ECS linemixing calculation path. |
| src/core/lbl/CMakeLists.txt | Adds new ECS implementation units to the lbl static library build. |
| doc/arts/references.bib | Adds literature references relevant to ECS/line-mixing implementations. |
| doc/arts/concept.absorption.lbl.rst | Adds a detailed ECS subsection and fixes minor formatting in the concepts guide. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.
This fixes an order bug in one of the CO2 line mixing symbols.
It also adds a couple of more symbols for NH3, CH4 and PH3, but this is done purely by AI-help and is marked as not tested and WIP. The numbers make it work only for Jupiter, so it is not important for most, I will test it when I set up detailed JUICE-SWI simulations.
The PR also fixes a bug in the rational comparison operator. Somehow, GCC ignored this bug but clang executed it, so that the CO2 line mixing was broken under clang.
It also populates the ECS subsection on LBL in the concepts-guide. See it if you want to understand more.