Skip to content

[ARTS-2.6] fix: correct Wigner-3j m-index ordering in reduced_rovibrational_dipole#1133

Merged
olemke merged 1 commit into
atmtools:v2.6.xfrom
olemke:fix-lm-bug
Jun 22, 2026
Merged

[ARTS-2.6] fix: correct Wigner-3j m-index ordering in reduced_rovibrational_dipole#1133
olemke merged 1 commit into
atmtools:v2.6.xfrom
olemke:fix-lm-bug

Conversation

@olemke

@olemke olemke commented Jun 19, 2026

Copy link
Copy Markdown
Member

This PR fixes a sign and magnitude error in the reduced_rovibrational_dipole function that produced wrong-sign and inflated first-order Rosenkranz Y coefficients for HITRAN CO2 line-mixing hot bands. The rigid-rotor dipole was computed with the incorrect Wigner-3j magnetic-index ordering (li, lf-li, -lf instead of lf, li-lf, -li), causing the relaxation-matrix sum-rule correction in calcw to be corrupted. The fundamental band (li=0) was largely unaffected because both orderings nearly agree, but hot bands (li=1,2,3) at low J saw magnitudes differ by factors of 2–6x.

Changes

  • src/absorptionlines.cc: Corrected the wigner3j arguments in Absorption::reduced_rovibrational_dipole to use the proper m-index ordering (lf, li-lf, -li), aligning the computed Dipo0 with the values stored in HITRAN line-mixing band data files and the Lamouroux LM_calc_CO2.for reference to ~2e-8 across all P/Q/R lines.

Before/after comparison with script from #1130:

ν (cm⁻¹) Lamouroux Y/atm ARTS Y/atm (fixed) ARTS Y/atm (before)
664.6265 +0.00901 +0.00888 −0.00379
665.4140 +0.02184 +0.02160 −0.08779
664.9896 +0.00511 +0.00503 −0.11254
664.5586 −0.00343 −0.00376 −0.12738

Breaking Changes

⚠️ None for API consumers. However, line-mixing absorption results for CO2 hot bands (e.g., the 4.3 µm and 15 µm hot bands) will change numerically compared to prior versions — users comparing against old outputs should expect differences. These new values are the physically correct ones. Fixes #1130.

reduced_rovibrational_dipole used the wrong Wigner-3j m-index ordering
(li, lf-li, -lf instead of lf, li-lf, -li).  The resulting rigid-rotor
dipole Dipo0 disagrees with the values stored in the HITRAN line-mixing
band data files (and the Lamouroux LM_calc_CO2.for reference), which
corrupts the relaxation-matrix sum-rule correction in calcw.  For the
fundamental band (li=0) the two orderings nearly agree, so it was
unaffected; for hot bands (li=1,2,3) at low J the magnitudes differ by
factors of 2-6x, producing the wrong-sign and 5-25x inflated first-order
Rosenkranz Y values reported in atmtools#1130.

Use the correct m-ordering, matching the file Dipo0 to ~2e-8 across all
P/Q/R lines of the affected bands.

Fixes atmtools#1130.
@olemke olemke requested a review from riclarsson June 19, 2026 11:13
@riclarsson

Copy link
Copy Markdown
Contributor

This looks great. Can you also push the fix to ARTS3? The code there is just called "reduced_dipole"

@olemke olemke merged commit 72ada20 into atmtools:v2.6.x Jun 22, 2026
8 checks passed
@olemke olemke deleted the fix-lm-bug branch June 22, 2026 11:21
riclarsson pushed a commit that referenced this pull request Jun 23, 2026
Swap the m-arguments passed to wigner3j in reduced_dipole so the
second triplet matches the intended (lf, li-lf, -li) ordering rather
than (li, lf-li, -lf).

Same fix as for ARTS 2.6 in PR #1133.
riclarsson added a commit that referenced this pull request Jun 23, 2026
Fixes an incorrect argument ordering in the Wigner 3j symbol computed
inside `reduced_dipole` within the Hartmann ECS line-shape model. The
previous call swapped the `(li, lf - li, -lf)` triplet with `(lf, li -
lf, -li)`, producing wrong reduced dipole values and thus erroneous
scaling of relaxation-matrix off-diagonal elements. The corrected
arguments restore the physically intended coupling for the rotational
quantum numbers.

Same fix as in ARTS 2.6 PR #1133.

### Changes
- `src/core/lbl/lbl_lineshape_voigt_ecs_hartmann.cpp`: Updated both
branches of the `iseven(Jf + lf + 1)` conditional in `reduced_dipole` to
call `wigner3j(Jf, k, Ji, lf, li - lf, -li)` instead of `wigner3j(Jf, k,
Ji, li, lf - li, -lf)`, ensuring the bra-side and ket-side angular
momentum couplings are passed in the correct order.

### Breaking Changes
None — this is a bug fix. Results previously computed with the Hartmann
ECS line-shape model for affected transitions will change numerically to
the correct values.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants