| Summary: | Geant enters an infinite loop when a 20. MeV neutron is produced (G4NeutronHPInelastic). | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | ersmark |
| Component: | processes/hadronic/models | Assignee: | Hans-Peter.Wellisch |
| Status: | CLOSED FIXED | ||
| Severity: | major | ||
| Priority: | P2 | ||
| Version: | 4.0 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
Hi, I tried quite a number of materials, but seem not to be able to reproduce the behaviour you see. Can you somehow provide me with your source code? I would then debug 'in situ'. Many greetings, Hans-Peter. Hi, I found a semi-infivite situation in the doppler broadening, that I fixed. I had to do with small cross-sections in a log-log interpolation scheme. They went slightly negative, which the droadening code was not protected against. I gave the fix to Bengt. Many greetings, Hans-Peter. released in 5.0 |
Geant enters an infinite loop when a 20. MeV neutron is produced. This happens only when using the model G4NeutronHPInelastic, or more precisely when the dataset has been loaded(?). Assume a simulation that runs fine for 20. MeV neutrons and has the neutron models in "theNeutronInelasticProcess". Adding the following lines are will break the simulation: G4CrossSectionDataStore* theNeutronHPInelasticDataStore = ((G4HadronInelasticProcess*)theNeutronInelasticProcess)-> GetCrossSectionDataStore(); theNeutronHPInelasticDataStore->AddDataSet(new G4NeutronHPInelasticData()); When I encountered the problem my physics list continued: G4NeutronHPInelastic* theNeutronHPInelasticModel = new G4NeutronHPInelastic(); theNeutronHPInelasticModel->SetMaxEnergy(19.*MeV); theNeutronInelasticProcess->RegisterMe(theNeutronHPInelasticModel); Systems tested: RedHat 7.3 (with gcc-2.95.3), also SuSe 8.0. Geant4.4.0 with CLHEP 1.7, also Geant4.4.1 with CLHEP 1.8. G4NDL3.5.