Message: Application crashed in tracking neutrons Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Application crashed in tracking neutrons 

Forum: Hadronic Processes
Date: 02 May, 2011
From: Hirokazu Hosoda <Hirokazu Hosoda>

This question was previously posted to "Event and Track Management" forum. http://hypernews.slac.stanford.edu/HyperNews/geant4/get/eventtrackmanage/1002.html

I have a trouble in a calculation for the 2.45-MeV neutron transport in my following environment. OS : CentOS 5.6 or RHEL Server 5.4 Geant4 version : geant4 9.4.patch-01 CLHEP version : clhep-2.1.0.1

And This problem dose not occer in previous environment. OS : CentOS 5.6 or RHEL Server 5.4 Geant4 version : geant4 9.3.patch-01 CLHEP version : clhep-2.0.4.5

In my application, the tracking of neutron is suddenly aborted by a segmentation fault. This error happens once per 1~5x10^7 neutron injections. The abort timing is different for initial random seed loaded in main program.

I think that the cause of this problem is in a certain process which is rarely selected in my simulation condition.

In the previous thread, Vladimir Ivanchenko said that this problem may be caused by Gamma Evaporation in the Geant4 version of 9.4.

Can anyone show me which part of my hadronic physics list should be repaired? Does anyone know another way to avoid this segmentation fault?

Following code is the neutron part of My Physics List.

  // high energy model for proton, neutron, pions and kaons
  theHEModel = new G4TheoFSGenerator;
  // all models for treatment of thermal nucleus 
  theEvaporation = new G4Evaporation;
  theFermiBreakUp = new G4FermiBreakUp;
  theMF = new G4StatMF;
  // evaporation logic
  theHandler = new G4ExcitationHandler;
  theHandler->SetEvaporation(theEvaporation);
  theHandler->SetFermiModel(theFermiBreakUp);
  theHandler->SetMultiFragmentation(theMF);
  theHandler->SetMaxAandZForFermiBreakUp(12, 6);
  theHandler->SetMinEForMultiFrag(3.*MeV);

  // pre-equilibrium stage 
  thePreEquilib = new G4PreCompoundModel(theHandler);
  thePreEquilib->SetMaxEnergy(70*MeV);

  // a no-cascade generator-precompound interaface
  theCascade = new G4GeneratorPrecompoundInterface;
  theCascade->SetDeExcitation(thePreEquilib);

  // QGSP model
  theStringModel = new G4QGSModel<G4QGSParticipants>;
  theHEModel->SetTransport(theCascade);
  theHEModel->SetHighEnergyGenerator(theStringModel);
  theHEModel->SetMinEnergy(6*GeV);
  theHEModel->SetMaxEnergy(100*TeV);
  // Binary cascade for p, n
  theCasc = new G4BinaryCascade;
  theCasc->SetMinEnergy(65*MeV);
  theCasc->SetMaxEnergy(6.1*GeV);

  theParticleIterator->reset();
  while ((*theParticleIterator)()) {
    G4ParticleDefinition* particle = theParticleIterator->value();
    G4ProcessManager* pmanager = particle->GetProcessManager();
    G4String particleName = particle->GetParticleName();

	if (particleName == "neutron") {
      // elastic scattering
      // LEP
      theNeutronElasticModel1 = new G4LElastic();
      theNeutronElasticModel1->SetMinEnergy(19*MeV);
      theNeutronElasticProcess.RegisterMe(theNeutronElasticModel1);
      // HP
      theNeutronElasticModel2 = new G4NeutronHPElastic();
      theNeutronElasticModel2->SetMaxEnergy(19.1*MeV);
      theNeutronElasticData = new G4NeutronHPElasticData;
      theNeutronElasticProcess.AddDataSet(theNeutronElasticData);
      theNeutronElasticProcess.RegisterMe(theNeutronElasticModel2);
      pmanager->AddDiscreteProcess(&theNeutronElasticProcess);

	  // inelastic scattering
      // Preco_n + BiC + QGSP
      theNeutronInelasticModel1 = new G4PreCompoundModel(theHandler);
      theNeutronInelasticModel1->SetMinEnergy(19*MeV);
      theNeutronInelasticProcess.RegisterMe(theNeutronInelasticModel1);
//      theNeutronInelasticProcess.RegisterMe(thePreEquilib);
      theNeutronInelasticProcess.RegisterMe(theCasc);
      theNeutronInelasticProcess.RegisterMe(theHEModel);
      // HP
      theNeutronInelasticModel2 = new G4NeutronHPInelastic();
      theNeutronInelasticModel2->SetMaxEnergy(19.1*MeV);
      theNeutronInelasticData = new G4NeutronHPInelasticData;
      theNeutronInelasticProcess.AddDataSet(theNeutronInelasticData);
      theNeutronInelasticProcess.RegisterMe(theNeutronInelasticModel2);
      pmanager->AddDiscreteProcess(&theNeutronInelasticProcess);

	  // capture
	  // Standard
      theNeutronCaptureModel1 = new G4LCapture();
      theNeutronCaptureModel1->SetMinEnergy(19*MeV);
      theNeutronCaptureProcess.RegisterMe(theNeutronCaptureModel1);
      // HP
	  theNeutronCaptureModel2 = new G4NeutronHPCapture;
      theNeutronCaptureModel2->SetMaxEnergy(19.1*MeV);
      theNeutronCaptureData = new G4NeutronHPCaptureData;
      theNeutronCaptureProcess.AddDataSet(theNeutronCaptureData);
      theNeutronCaptureProcess.RegisterMe(theNeutronCaptureModel2);
      pmanager->AddDiscreteProcess(&theNeutronCaptureProcess);

	  // fission
	  // Standard
      theNeutronFissionModel1 = new G4LFission();
      theNeutronFissionModel1->SetMinEnergy(19*MeV);
      theNeutronFissionProcess.RegisterMe(theNeutronFissionModel1);
      // HP
	  theNeutronFissionModel2 = new G4NeutronHPFission();
      theNeutronFissionModel2->SetMaxEnergy(19.1*MeV);
      theNeutronFissionData = new G4NeutronHPFissionData;
      theNeutronFissionProcess.AddDataSet(theNeutronFissionData);
      theNeutronFissionProcess.RegisterMe(theNeutronFissionModel2);
	  pmanager->AddDiscreteProcess(&theNeutronFissionProcess);

    }
  }

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 None: Re: Application crashed in tracking neutrons   (Randolph Moellenberg - 06 May, 2011)
1 Idea: Re: Application crashed in tracking neutrons   (Vladimir Ivanchenko - 10 May, 2011)
2 None: Re: Application crashed in tracking neutrons   (Koi, Tatsumi - 10 May, 2011)
1 Note: Re: Application crashed in tracking neutrons   (Hirokazu Hosoda - 11 May, 2011)
3 Idea: Re: Application crashed in tracking neutrons   (Hirokazu Hosoda - 24 May, 2011)
 Add Message Add Message
to: "Application crashed in tracking neutrons"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]