From 5f5268a49b0269e57f7cda02562db4856cf2432c Mon Sep 17 00:00:00 2001 From: Oliver Lemke Date: Fri, 19 Jun 2026 12:22:12 +0200 Subject: [PATCH] Fix wrong-sign Y in HITRAN line mixing for CO2 hot bands 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 #1130. Use the correct m-ordering, matching the file Dipo0 to ~2e-8 across all P/Q/R lines of the affected bands. Fixes #1130. --- src/absorptionlines.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/absorptionlines.cc b/src/absorptionlines.cc index 887cf556ed..7d65a2136a 100644 --- a/src/absorptionlines.cc +++ b/src/absorptionlines.cc @@ -1902,8 +1902,8 @@ Numeric Absorption::Lines::SelfVMR( Numeric Absorption::reduced_rovibrational_dipole( Rational Jf, Rational Ji, Rational lf, Rational li, Rational k) { if (not iseven(Jf + lf + 1)) - return -sqrt(2 * Jf + 1) * wigner3j(Jf, k, Ji, li, lf - li, -lf); - return +sqrt(2 * Jf + 1) * wigner3j(Jf, k, Ji, li, lf - li, -lf); + return -sqrt(2 * Jf + 1) * wigner3j(Jf, k, Ji, lf, li - lf, -li); + return +sqrt(2 * Jf + 1) * wigner3j(Jf, k, Ji, lf, li - lf, -li); } Numeric Absorption::reduced_magnetic_quadrapole(Rational Jf,