Skip to content

Fix the reduced-mass energy in reactivity for D+D and D+He3 - #316

Merged
jmcclena merged 1 commit into
ProjectTorreyPines:masterfrom
jkang-pf:fix-reactivity-reduced-mass-energy
Oct 2, 2026
Merged

jmcclena merged 1 commit into
ProjectTorreyPines:masterfrom
jkang-pf:fix-reactivity-reduced-mass-energy

Conversation

@jkang-pf

@jkang-pf jkang-pf commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

reactivity computes ⟨σv⟩ with er, which holds reaction energies (18.3e6, 4.03e6 and 0.82e6 eV) for D+He3→He4, D+D→T and D+D→He3. The Bosch-Hale fit needs the reduced-mass energy m_r c². The correct values are already defined as mc2 in the same function but are never used. ⟨σv⟩ scales as 1/√(m_r c²), so at every temperature D+D→He3 was 6.9 % too high, D+D→T 52 % too low and D+He3→He4 75 % too low. D+T→He4 was correct.

The fix uses mc2 in the formula, defines the D-T value (1124656) under the same name and removes the er lines. Nothing else changes.

The new test/runtests_nuclear.jl pins 24 values of Table VIII of Bosch & Hale 1992 (thermal reactivities at 1–50 keV, as reprinted in the erratum, Nucl. Fusion 33, 1919) at rtol = 1e-3. 18 of them fail before the fix and all pass after it. I ran this test file with the package (Pkg.test with runtests_nuclear.jl), not the rest of the suite.

This changes the D-D and D+He3 source terms and powers wherever those reactions are enabled. #311 asks about the ½ factor for identical D-D reactants; that is a separate issue and not part of this PR.

🤖 Generated with Claude Code

reactivity computed the Bosch-Hale thermal reactivity with er, which held reaction energies, instead of the reduced-mass energy m_r c². The correct values were already defined as mc2 but never used. Use mc2 in the formula, define the D-T value under the same name and drop the er lines.

The new test pins 24 values of Table VIII of Bosch & Hale 1992, as reprinted in the erratum, Nucl. Fusion 33, 1919.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jmcclena

jmcclena commented Oct 2, 2026

Copy link
Copy Markdown
Member

@jkang-pf As long as you're digging into this. Do you have an opinion on whether the factor of 0.5 should be there for #311 ?

@jmcclena
jmcclena marked this pull request as ready for review October 2, 2026 21:14
@jmcclena
jmcclena merged commit 8ed84a5 into ProjectTorreyPines:master Oct 2, 2026
2 checks passed
@jkang-pf

jkang-pf commented Oct 2, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for merging this so quickly, @jmcclena

On #311: yes, I think the factor of 1/2 should be there. The Bosch-Hale is per pair, so for
identical reactants the reaction rate density is R = 1/2 n_D^2 (n_D^2 counts every pair twice).

In nuclear.jl, D_D_to_He3_reactions and D_D_to_T_reactions return n_D^2 without the 1/2:

  • D_D_to_He3_source! uses it for both the heating and the particle source (D consumed as -2R, He3
    produced as +R), so that branch is 2x too high.
  • D_D_to_T_source! is inconsistent: the T and H particle sources use reactivity / 2.0, which is
    right, but the heating uses the full reactivity, which is 2x too high.
    So the D-D heating and fusion_power are 2x high. A consistent fix is to put the 1/2 in the two
    *_reactions functions and drop the / 2.0 in D_D_to_T_source!. We did that in our IMAS3d (halved the
    identical-particle rate) and pin it with a test, so I can send the same as a PR if you want it.

One thing worth a release note: this PR changes D+D->He3, D+D->T and D+He3->He4 by constant factors of
0.935, 2.07 and 4.03 (D+T->He4 is unchanged), so any D-D or D-3He result in FUSE moves.

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