Ignore:
Timestamp:
Dec 22, 2010, 3:52:27 PM (15 years ago)
Author:
garnier
Message:

geant4 tag 9.4

Location:
trunk/source/processes/hadronic/models/qmd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/qmd/History

    r1228 r1347  
    1313     * Please list in reverse chronological order (last date on top)
    1414     ---------------------------------------------------------------
     15
     1618-November-2010 Tatsumi Koi (hadr-qmd-V09-03-00)
     17- Enable RQMD
     18        include/G4QMDReaction.hh 
     19        src/G4QMDReaction.cc 
     20        include/G4QMDMeanField.hh
     21        src/G4QMDMeanField.cc
    1522
    162320-November-2009 Tatsumi Koi (hadr-qmd-V09-02-03)
  • trunk/source/processes/hadronic/models/qmd/include/G4QMDMeanField.hh

    r962 r1347  
    6060
    6161      G4double GetTotalPotential();
     62      G4double GetPotential( G4int );
    6263
    6364      void DoPropagation( G4double );
  • trunk/source/processes/hadronic/models/qmd/include/G4QMDReaction.hh

    r1228 r1347  
    7474      void EnableFermiG(){ heg = true; setHighEnergyModel(); };
    7575
     76      void SetTMAX( G4int i ){ maxTime = i; };
     77      void SetDT( G4double t ){ deltaT = t; };
     78      void SetEF( G4double x ){ envelopF = x; };
     79
    7680   private:
    7781
     
    8993      G4double deltaT;
    9094      G4int maxTime;
     95      G4double envelopF;
    9196
    9297      G4Evaporation* evaporation;
  • trunk/source/processes/hadronic/models/qmd/src/G4QMDMeanField.cc

    r962 r1347  
    392392      G4ThreeVector ri = system->GetParticipant( i )->GetPosition(); 
    393393      G4LorentzVector p4i = system->GetParticipant( i )->Get4Momentum(); 
    394      
     394
    395395      G4ThreeVector betai = p4i.v()/p4i.e();
    396396     
    397       ffr[i] = betai;
     397//    R-JQMD
     398      G4double Vi = GetPotential( i );
     399      G4double p_zero = std::sqrt( p4i.e()*p4i.e() + 2*p4i.m()*Vi);
     400      G4ThreeVector betai_R = p4i.v()/p_zero;
     401      G4double mi_R = p4i.m()/p_zero;
     402//
     403      ffr[i] = betai_R;
    398404      ffp[i] = G4ThreeVector( 0.0 );
     405
     406      if ( false )
     407      {
     408         ffr[i] = betai;
     409         mi_R = 1.0;
     410      }
    399411
    400412      for ( G4int j = 0 ; j < system->GetTotalNumberOfParticipant() ; j ++ )
     
    417429                           * ( 1. - 2. * std::abs( jcharge - icharge ) )
    418430                       + cl * rhc[j][i];
     431         ccpp *= mi_R;
    419432
    420433/*
     
    435448
    436449
    437            G4ThreeVector rij = ri - rj;   
    438            G4ThreeVector betaij =  ( p4i + p4j ).v()/eij;   
    439 
    440            G4ThreeVector cij = betaij - betai;   
    441 
    442            ffr[i] = ffr[i] + 2*ccrr* ( rij + grbb*cij );
     450         G4ThreeVector rij = ri - rj;   
     451         G4ThreeVector betaij =  ( p4i + p4j ).v()/eij;   
     452
     453         G4ThreeVector cij = betaij - betai;   
     454
     455         ffr[i] = ffr[i] + 2*ccrr* ( rij + grbb*cij );
    443456           
    444            ffp[i] = ffp[i] - 2*ccpp* ( rij + grbb*betaij );
     457         ffp[i] = ffp[i] - 2*ccpp* ( rij + grbb*betaij );
    445458
    446459      }
     
    450463   //std::cout << "gradu 1 " << ffr[1] << " " << ffp[1] << std::endl;
    451464
     465}
     466
     467
     468
     469G4double G4QMDMeanField::GetPotential( G4int i )
     470{
     471   G4int n = system->GetTotalNumberOfParticipant();
     472
     473   G4double rhoa = 0.0;
     474   G4double rho3 = 0.0;
     475   G4double rhos = 0.0;
     476   G4double rhoc = 0.0;
     477
     478
     479   G4int icharge = system->GetParticipant(i)->GetChargeInUnitOfEplus();
     480   G4int inuc = system->GetParticipant(i)->GetNuc();
     481
     482   for ( G4int j = 0 ; j < n ; j ++ )
     483   {
     484      G4int jcharge = system->GetParticipant(j)->GetChargeInUnitOfEplus();
     485      G4int jnuc = system->GetParticipant(j)->GetNuc();
     486
     487      rhoa += rha[j][i];
     488      rhoc += rhe[j][i];
     489      rhos += rha[j][i] * jnuc * inuc
     490                * ( 1 - 2 * std::abs ( jcharge - icharge ) );
     491   }
     492
     493   rho3 = std::pow ( rhoa , gamm );
     494
     495   G4double potential = c0 * rhoa
     496                      + c3 * rho3
     497                      + cs * rhos
     498                      + cl * rhoc;
     499
     500   return potential;
    452501}
    453502
  • trunk/source/processes/hadronic/models/qmd/src/G4QMDReaction.cc

    r1228 r1347  
    4343G4QMDReaction::G4QMDReaction()
    4444: system ( NULL )
    45 , deltaT ( 1 ) // in fsec
     45, deltaT ( 1 ) // in fsec (c=1)
    4646, maxTime ( 100 ) // will have maxTime-th time step
     47, envelopF ( 1.05 ) // 10% for Peripheral reactions
    4748, gem ( true )
    4849, frag ( false )
     
    155156
    156157// impact parameter
    157       G4double bmax = 1.05*(bmax_0/fermi);  // 10% for Peripheral reactions
     158      //G4double bmax = 1.05*(bmax_0/fermi);  // 10% for Peripheral reactions
     159      G4double bmax = envelopF*(bmax_0/fermi);
    158160      G4double b = bmax * std::sqrt ( G4UniformRand() );
    159161//071112
Note: See TracChangeset for help on using the changeset viewer.