gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/densitymodule [ Modules ]

[ Top ] [ Modules ]

NAME

module densitymodule

PURPOSE

Administrates the calculation of the density.


densitymodule/densitySwitch [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  integer, save :: densitySwitch=1

PURPOSE

This switch decides whether the density is static or dynamic during the run. ("Static" makes sense only for fixed target scenarios!)

One can use a static density if the nucleus stays roughly in its ground state during the collision.

possible values:


densitymodule/linearInterpolation [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  logical, save :: linearInterpolation = .true.

PURPOSE

If this switch is 'true', then the dynamic-density mode uses linear interpolation to determine the density in between the gridpoints.


densitymodule/gridSize [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  real, dimension(1:3), save, public :: gridSize = (/12.,12.,12./)

PURPOSE

Size of density grid in fm.


densitymodule/gridPoints [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  integer, dimension(1:3), save, public :: gridPoints = (/30,30,30/)

PURPOSE

Number of gridpoints in each space direction.


densitymodule/gridSpacing [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  real, dimension(1:3), save, public :: gridSpacing = 1.

PURPOSE

Spacing of the grid in each dimension, determined by gridSize/gridPoints.


densitymodule/densityInput_proton [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  real, save :: densityInput_proton=0.084

PURPOSE

Assumed proton density if densitySwitch=3


densitymodule/densityInput_neutron [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  real, save  :: densityInput_neutron=0.084

PURPOSE

Assumed neutron density if densitySwitch=3


densitymodule/setnewsmearing [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  logical, save :: setnewsmearing=.false.

PURPOSE

Readjust the smearing to a different width if .true.


densitymodule/newsmearing [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  real, save  :: newsmearing=1.

PURPOSE

Use a smearing width as in a grid wtih newsmearing times the gridspacing


densitymodule/numberLargePoints [ Global module-variables ]

[ Top ] [ densitymodule ] [ Global module-variables ]

SOURCE

  integer, save, public :: numberLargePoints=2

PURPOSE

Number of points which are considered to the left and right to smear density on


densitymodule/init [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

subroutine init

PURPOSE

read the namelist, initalize (parts of) the module


densitymodule/initDensity [ Namelists ]

[ Top ] [ densitymodule ] [ Namelists ]

NAME

NAMELIST /initDensity/

PURPOSE

Includes the input switches and variables:


densitymodule/acceptGrid [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

subroutine acceptGrid(GridSpacing_x,GridSpacing_y,GridSpacing_z)

PURPOSE

Accepts the grid spacings and recalculates the numbers of points in each direction. Needed for relativistic HIC, when initial nuclei are Lorentz-contracted. Called from the module initHeavyIon.


densitymodule/getBaryonDensity [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

real function getBaryonDensity (pos)

PURPOSE

Evaluate the baryon density at a certain position.


densitymodule/densityAt [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

type(dichte) function densityAt(r)

PURPOSE

Evaluate density at some space-point r.

INPUTS

  • real, dimension(1:3), intent(in) :: r --- position where density should be calculated


densitymodule/updateDensity [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

subroutine updateDensity(parts)

PURPOSE

Updates the vector densityField which is used by densityAt and stores the density of the testparticles.

INPUTS

NOTE This routine does not gets faster when using OpenMP.


updateDensity/initDensityWeights [ Functions ]

[ Top ] [ updateDensity ] [ Functions ]

NAME

subroutine initDensityWeights

PURPOSE

  • Initializes weights which are used to evaluate the densities at the gridpoints.
  • Each particle has some coordinate off the gridpoints. Therefore it is needed to define weights which tell how much a particle at position r contributes to the ith grid point. The particle are smeared with a gaussian distribution.
  • The width is chosen such that it is equal to the maximum of the gridspacings.

INPUTS

USES


updateDensity/FillStaticDensity [ Functions ]

[ Top ] [ updateDensity ] [ Functions ]

NAME

subroutine FillStaticDensity

PURPOSE

In the case of static density, this fills the fields densityField and totalDensity with values of the density parametrization. Needed in the case of RMF calculations and also for Coulomb potential.


densitymodule/storeFields [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

subroutine storeFields

PURPOSE

Store the old values of the omega, rho and density fields.


densitymodule/updateRMF [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

subroutine updateRMF(Parts)

PURPOSE

Updates the sigmaField which is needed when the propagation with the RMF is done. Updates also the baryon velocities which are needed in the subsequent updating of the baryon 4-current by the subroutine updateDensity.

INPUTS

  • type(particle), dimension(:,:) :: Parts

USES

idTable, particleDefinition,RMF,ADI,constants

NOTES

The scalarDensity is computed as well.


densitymodule/energyDeterminationRMF [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

subroutine energyDeterminationRMF(Parts)

PURPOSE

This subroutine determines the one-particle energy E^*, which is the zeroth component of the kinetic four-momentum in the frame, where the space components of the kinetic four-momentum are given.

INPUTS

  • type(particle),intent(inOut) :: Parts ! Particle whose energy should be calculated.

NOTES

Should be used in RMF-mode. Please, notice, that not the full single-particle energy is computed here. The vector field contribution is missed in E^*.


densitymodule/Particle4Momentum_RMF [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

subroutine Particle4Momentum_RMF(teilchen,momentum)

PURPOSE

This subroutine determines the canonical four-momentum in computational frame (i.e. where mesonic mean fields are given).

INPUTS

  • type(particle),intent(in) :: teilchen ! Particle

OUTPUT

NOTES

Should be used in RMF-mode. It is supposed, that the kinetic four-momentum of the particle is already determined by the subroutine energyDeterminationRMF earlier. Electromagnetic part is not included.


densitymodule/true4Momentum_RMF [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

subroutine true4Momentum_RMF(teilchen,momentum,inside_grid_flag)

PURPOSE

This subroutine determines the "true" sigle-particle 4-momentum, i.e. the 4-momentum which is additive to produce the total 4-momentum of the system in the computational frame.

INPUTS

OUTPUT

  • real, dimension(0:3), intent(out) :: momentum ! "true" 4-momentum of the particle
  • logical, optional, intent(out) :: inside_grid_flag ! .true. if the particle is inside grid ! .false. otherwise

NOTES

  • Should be used in RMF-mode. The input particle kinetic 4-momentum must be given in the computational frame (where the density field is defined).
  • Formula for the fieldenergy updated; gradient terms replaced the corresponding sources using the meson-field equations and partial integrations.


densitymodule/get_densitySwitch [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

function get_densitySwitch()

PURPOSE

If not yet done, reads input from jobcard and then returns densitySwitch.


densitymodule/get_realGridSpacing [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

function get_realGridSpacing()

PURPOSE

returns GridSize

RESULT

real, dimension(1:3) gridSize in units of fermi


densitymodule/getGridSpacing [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

function getGridSpacing()

PURPOSE

Evaluates GridSize for Derivatives.

RESULT

real, dimension(1:3) gridSize in units of fermi


densitymodule/getGridPoints [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

function getGridPoints()

PURPOSE

returns GridPoints

RESULT

integer, dimension(1:3) gridPoints in units of fermi


densitymodule/GetGridIndex [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

logical function GetGridIndex(r,ind,add)

PURPOSE

Returns .false. if the point is outside the grid (then 'ind' is invalid). Otherwise 'ind' is the index of the corresponding coordinate.

NOTES

The first tests according the real grid size is necessary, since it may give integer overfloats, if one only checks the integer values.


densitymodule/boostToLRF [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

subroutine boostToLRF (teilchen, switch, density)

PURPOSE

Boosts particle between "Local Rest Frame (LRF)" and "calculation frame (CF)".

INPUTS

  • type(particle), intent(inout) :: teilchen ! Particle which is to be boosted
  • integer, intent(in) :: switch ! 1= boost from CF to LRF ! 2= boost from LRF to CF

NOTES

The LRF is the frame in which the baryon current vanishes. If the density is very small, then no boost takes place.


densitymodule/fermiMomentum_sym [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

real function fermiMomentum_sym(rho)

PURPOSE

Evaluate the fermi momentum for symmetric nuclear matter. Assumption: rho_p=rho_n !!!

INPUTS

  • real, intent(in) :: rho ! density in fm^-3

RESULT


densitymodule/fermiMomentum_noIsospin [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

real function fermiMomentum_noIsospin(rho)

PURPOSE

Evaluate the fermi momentum for a gas of fermions.

INPUTS

  • real, intent(in) :: rho ! density in fm^-3 (ATTENTION: Do not use rho(nucleon) but rho(proton) or rho(neutron)

RESULT


densitymodule/FermiMomAt [ Functions ]

[ Top ] [ densitymodule ] [ Functions ]

NAME

real function FermiMomAt(pos,charge)

PURPOSE

calculate the fermi momentum at some position. If no charge is given it uses the averaged proton/neutron densities, otherwise it uses the corresponding isospin channel

INPUTS

  • real, dimension(1:3) :: pos -- the space coordinates
  • integer, OPTIONAL :: charge -- the isospin channel


densitymodule/writeDensityPlane [ Subroutines ]

[ Top ] [ densitymodule ] [ Subroutines ]

NAME

PURPOSE

Write the density to a file as cuts according some planes

INPUTS

  • character*(*) :: fName -- name of file to write to
  • integer :: iPlane -- selection of plane to write (see below)

possible values for iPlane:

  • 1: yz-plane (through origin)
  • 2: xz-plane (through origin)
  • 3: xy-plane (through origin)