Dear Alvaro,
After extensive analysis and testing, I can now provide a comprehensive explanation of the issue we’ve been discussing regarding the failure to produce fission fragments in thermal neutron-induced fission of U-235. My investigation has revealed a fundamental problem in the physics implementation that affects the theoretical fission model in Geant4.
Core Physics Issue
The root cause lies in the implementation of G4CompetitiveFission::GetEmissionProbability, specifically in how it handles the pairing correction when calculating the excitation energy available for fission:
G4double exEnergy = fragment->GetExcitationEnergy() -
pairingCorrection->GetFissionPairingCorrection(A, Z);
This calculation effectively computes:
- U-236 excitation energy (6.545 MeV) minus pairing correction (1.562 MeV) = 4.983 MeV
Later, this reduced energy is compared to the fission barrier:
fissionBarrier = theFissionBarrierPtr->FissionBarrier(A, Z, exEnergy);
maxKineticEnergy = exEnergy - fissionBarrier;
With the computed values:
Since maxKineticEnergy is negative, the subsequent call to EmissionProbability() returns zero fission probability, preventing any fission fragments from being produced.
The Double Subtraction Error
The implementation contains a critical flaw: the pairing correction is being applied twice in the calculation. Examining the code reveals that the pairing correction term is first explicitly subtracted from the excitation energy in G4CompetitiveFission::GetEmissionProbability, and then the same correction is already incorporated in the fission barrier calculation within G4FissionBarrier::BarashenkovFissionBarrier:
G4double res = 0.0;
SPtr->GetPairingCorrection(N,Z,res);
static const G4double D = 1.248CLHEP::MeV;
return BF0 + Dd - res;
The term -res in the barrier calculation already accounts for the pairing effects. By also subtracting the pairing correction from the excitation energy before comparing it to the barrier, we effectively double-count this correction, artificially reducing the available energy for fission.
This double subtraction creates a physically incorrect scenario where the excitation energy of U-236 (6.545 MeV) is reduced to 4.983 MeV, which then falls below the calculated fission barrier (5.019 MeV), resulting in zero fission probability.
Conflict with Established Nuclear Physics
This implementation directly contradicts well-established nuclear physics. As stated in Gönnenwein’s authoritative text on neutron-induced fission:
“One of the reasons for the huge σf is the large neutron separation energy Sn = 6.5 MeV in 236U which exceeds the fission barrier Bf = 5.6 MeV. For thermal neutrons the excitation energy E* of the compound is E* = Sn > Bf. The isotope 235U is said to be ‘fissile’.”
This is a fundamental principle: U-235 is fissile precisely because the excitation energy of the compound nucleus (6.5 MeV) exceeds the fission barrier (5.6 MeV). The current Geant4 implementation, by artificially reducing the excitation energy through double subtraction of the pairing correction, incorrectly concludes that fission cannot occur with thermal neutrons.
Historical Context and Architectural Evolution
From examining the change logs and code history, I can see that the fission model has undergone significant evolution from Geant4 9.5 to the current 11.4 version. Particularly relevant are the changes from March 2017 and March 2012:
17 March 2017 Vladimir Ivanchenko (hadr-deex-V10-03-22)
- G4VEmissionProbability - added private method for general treatment
of PDF functions
- G4EvaporationProbability, G4CompetitiveFission, G4CompetitiveFission,
G4GEMProbability - changes are implemented according to base class
modifications
07 March 2012 Vladimir Ivanchenko (hadr-deex-V09-05-03)
- G4PhotonEvaporation, G4CompetitiveFission, G4EvaporationChannel,
G4UnstableFragmentBreakUp, G4GEMChannel, G4VEvaporationChannel,
G4Evaporation
removed Initialise method and use GetEmissionProbability method
directly - minor performance improvement
These changes restructured how the fission probability is calculated and used within the de-excitation framework.
High-Precision Neutron Models and Bypassing the Issue
An important aspect to note is that when using the High-Precision (HP) neutron models (G4NeutronHP/G4ParticleHP) with evaluated data libraries like ENDF/B-VIII.0, the problematic theoretical calculation is often bypassed entirely. In these cases, fission fragment production is determined directly from experimental data rather than the theoretical model.
This explains why many users might not have encountered this issue before - the high-precision neutron packages provide an alternative pathway that circumvents the flawed physics calculation. However, this workaround is not available when:
-
Using the standard physics lists without HP extensions
-
Simulating isotopes not covered by evaluated data libraries
Working at energies beyond the range of existing evaluated libraries
Evidence from Simulation Output
My test simulations consistently show this problematic behavior:
ExEnergy: 4.9832 Epara=1.56227 Eex=6.54547 FissionBarrier=5.01935
In rare statistical fluctuations where the neutron energy is slightly higher, we see proper fission behavior:
ExEnergy: 7.96195 Epara=1.56227 Eex=9.52421 FissionBarrier=4.89883
This demonstrates that when the excitation energy is sufficiently high to overcome the artificially elevated barrier, fission does occur as expected.
Suggested Solution
The correct approach would be to use the full excitation energy when comparing to the fission barrier, as the pairing effects are already incorporated in the barrier calculation:
G4double exEnergy = fragment->GetExcitationEnergy(); // Without subtracting pairing correction
This would restore the proper physics where U-236’s excitation energy (6.545 MeV) exceeds the barrier (approximately 5.0 MeV), yielding a positive maxKineticEnergy and non-zero fission probability.
Testing Methodology
To validate this fix, I recommend testing with a simple setup:
-
Pure U-235 target (100% enrichment)
-
Thermal neutrons (0.0253 eV)
-
No HP physics processes enabled (to force use of the theoretical model)
-
Track fission fragment production
Before the fix, no fission fragments should be produced. After the fix, fission fragments should be generated with yields consistent with the known thermal neutron fission cross-section of U-235 (approximately 585 barns).
Conclusion
The current implementation of G4CompetitiveFission incorrectly calculates fission probabilities for thermal neutron-induced fission by double-counting the pairing correction effect. This is a fundamental physics error that affects the core functionality of Geant4 for nuclear applications. While high-precision neutron data can mask this issue in specific configurations, the underlying physics model remains flawed and should be corrected to maintain scientific integrity and ensure proper behavior across all use cases.
Thank you for your attention to this critical physics issue.
Best regards,
Liyinong