gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/initNucleus_in_PS [ Modules ]

[ Top ] [ Modules ]

NAME

module initNucleus_in_PS

PURPOSE

Module which establishes the test-particle representation of a nucleus.


initNucleus_in_PS/improvedMC [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical,save :: improvedMC=.false.

PURPOSE

  • If this flag is set to .true. then we use the information of the already initialized nucleons to decide on the position of a nucleon which has to be initialized.
  • This prescription only works properly if the smearing width is really small. Therefore it is switched off by default.


initNucleus_in_PS/improvedMC_speedup [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  integer,save :: improvedMC_speedup=500

PURPOSE

  • If improvedMC is set to .true. then this variable defines the speedup of the algorithm.
  • The number defines how often the density field is updated.
  • A large value of this parameter yields a less accurate test-particle distribution and a faster initialization.


initNucleus_in_PS/HiTail [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical,save :: HiTail = .false.

PURPOSE

If HiTail is set to .true., then a simple parametrization of n(p) is used to initialize the nucleon momenta (cf. function chooseAbsMomentum for details).


initNucleus_in_PS/determine_Fermi_momentum_by_binding_energy [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical, save :: determine_Fermi_momentum_by_binding_energy=.false.

PURPOSE

If set to .true., the Fermi momentum will determined by E_B=p_f**2/(2m)+U(rho,p_F), where E_B is the binding energy per nucleon.


initNucleus_in_PS/determine_Fermi_new_NucDLDA [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical, save :: determine_Fermi_new_NucDLDA=.false.

PURPOSE

If set to .true., the Fermi momentum will be set to a value such that there are no unbound nucleons at the initialisation.


initNucleus_in_PS/useEnergySF [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical, save :: useEnergySF=.false.

PURPOSE

If set to .true., then a spectral function is used to choose the energy.


initNucleus_in_PS/compressedFlag [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical, save :: compressedFlag=.false.

PURPOSE

If set to .true., then a spherically deformed nucleus is initialized (isotropic compression/expansion; protons & neutrons in phase). This type of deformation corresponds to a giant-monopol resonance mode.


initNucleus_in_PS/ScaleFactor [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  Real, save :: ScaleFactor=1.

PURPOSE

If compressedFlag=.true., then rescale coordinates by ScaleFactor.


initNucleus_in_PS/useCdA [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical, save :: useCdA = .false.

PURPOSE

Instead of the usual momentum distribution according a fermi gas, use the momentum parametrizations as given in:

  • C. Ciofi degli Ati, S. Simula, PRC 53, 1689 (1996)

These exist only for 2H,3He,4He,12C,160 40Ca,56Fe,208Pb


initNucleus_in_PS/z_shift [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  real, parameter :: z_shift = 100.

PURPOSE

Artificial shift along z-axis between projectile & target nuclei to avoid overlapping between them when the density is updated.

NOTES

Relevant only for heavy-ion collisions.


initNucleus_in_PS/zeroNucleusMomentum [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical, save :: zeroNucleusMomentum = .true.

PURPOSE

Indicate whether a procedure should be called to try to find a momentum init where the sum of all nucleon momenta (per ensemble) is zero (or at least close to zero).

At the moment, only a hill climbing algorithm is available, which changes the directions of the momenta randomly. The resulting averaged nucleus momentum is in the order of 10 MeV.

Without that, the average nucleus momentum goes ~0.17GeV*sqrt(A).

(Applies only for A>2.)


initNucleus_in_PS/printMomDist [ Global module-variables ]

[ Top ] [ initNucleus_in_PS ] [ Global module-variables ]

SOURCE

  logical, save :: printMomDist = .false.

PURPOSE

Flag to indicate, whether momentum distribution is written to file


initNucleus_in_PS/init [ Subroutines ]

[ Top ] [ initNucleus_in_PS ] [ Subroutines ]

NAME

subroutine init

PURPOSE

initialize the module


initNucleus_in_PS/InitNucleus_in_PS [ Namelists ]

[ Top ] [ initNucleus_in_PS ] [ Namelists ]

NAME

Namelist /InitNucleus_in_PS/

PURPOSE

Includes the switches:


initNucleus_in_PS/initNucPhaseSpace [ Subroutines ]

[ Top ] [ initNucleus_in_PS ] [ Subroutines ]

NAME

subroutine initNucPhaseSpace(teilchen,nuc)

PURPOSE

Represents nucleus 'nuc' in phase space by testparticles which are stored in vector 'teilchen'. The ordering in the vector teilchen is choosen to be random.

bahaviour according mass:

  • A=1: Elementary event, no fermi motion.
  • A=2,Z=1: We call the deuterium routine, which does a special momentum distribitution.
  • A>2: Uses fermi gas distribution of nucleons for all nuclei.

NOTES

  • For A>2 it is checked that the radius of the nucleus is properly initialized.
  • The particles are initialized with %pert=.false. since all nuclei must be in the real particle vector.
  • All nucleons in a nucleus get the same "%event" number. This variable is raised by one after each nucleus-initialization. Therefore the first nucleus gets "%event=1", the second "%event=2" and so on...

INPUTS

  • type(nucleus) :: nuc
  • type(particle),dimension(:,:),intent(inout) :: teilchen

OUTPUT

  • type(particle),dimension(:,:),intent(inout) :: teilchen


initNucPhaseSpace/chooseCharge [ Functions ]

[ Top ] [ initNucPhaseSpace ] [ Functions ]

NAME

integer function chooseCharge(k)

PURPOSE

Choose randomly the charge of a nucleon


initNucPhaseSpace/choosePosition [ Functions ]

[ Top ] [ initNucPhaseSpace ] [ Functions ]

NAME

function choosePosition() result(r)

PURPOSE


initNucPhaseSpace/chooseMomentum [ Subroutines ]

[ Top ] [ initNucPhaseSpace ] [ Subroutines ]

NAME

subroutine chooseMomentum(part)

PURPOSE


initNucPhaseSpace/chooseAbsMomentum [ Functions ]

[ Top ] [ initNucPhaseSpace ] [ Functions ]

NAME

real function chooseAbsMomentum

PURPOSE

return the absolute value of the momentum in units of pFermi

NOTES

we have to initalize according p^2*n(p) !!!

normally the value of p lies between 0 and 1 and n(p)=1.

Via the flag 'HiTail' you can switch into a mode, where the distribution n(p) is given by * 0.83 for p = 0 .. 1 * h*exp(-A*p)/p^2 for p > 1 .

The functional form of the tail is choosen to allow for simple random number generation.

The slope parameter of the tail is fitted to calculations of Kalok


initNucPhaseSpace/boostIt [ Subroutines ]

[ Top ] [ initNucPhaseSpace ] [ Subroutines ]

NAME

subroutine boostIt(nucl, part)

PURPOSE


initNucPhaseSpace/chooseEnergySF [ Subroutines ]

[ Top ] [ initNucPhaseSpace ] [ Subroutines ]

NAME

subroutine chooseEnergySF

PURPOSE

set the energies and masses of the realparticles according to a recipe of Ankowski et al (arXiv:0711.2031v2). The energy is choosen according to a spectral function for the initial state nucleons which accounts for the shell structure.

NOTES

  • Only implemented for oxygen!
  • This does not affect the momentum distribution!


initNucPhaseSpace/reduceNucleusMomentum [ Subroutines ]

[ Top ] [ initNucPhaseSpace ] [ Subroutines ]

NAME

subroutine reduceNucleusMomentum

PURPOSE

This routine loops over all all nucleons and replaces rnadomly the direction of the nucleon momentum, if the nucleus momentum (i.e. the sum over all nucleon momenta in this ensemble) gets smaller by this. The number of loops is chosen as 'const/A'.

The resulting averaged nucleus momentum is ~ 10MeV.


initNucPhaseSpace/doPrintMomDist [ Subroutines ]

[ Top ] [ initNucPhaseSpace ] [ Subroutines ]

NAME

subroutine doPrintMomDist

PURPOSE

write out the momentum distribution


initNucleus_in_PS/FermiMomCdA [ Functions ]

[ Top ] [ initNucleus_in_PS ] [ Functions ]

NAME

real function FermiMomCdA(nucA,k)

PURPOSE

calculate the parametrizations according:

  • C. Ciofi degli Ati, S. Simula, PRC 53, 1689 (1996)

These exist only for 2H,3He,4He,12C,160 40Ca,56Fe,208Pb

INPUTS

  • integer :: nucA -- the size of the nucleus
  • real :: k -- the momentum in GeV

OUTPUT

The function value n(k) in fm^3