TABLE OF CONTENTS
- 1. /propagation
- 1.1. propagation/Mode
- 1.2. propagation/delta_E
- 1.3. propagation/delta_P
- 1.4. propagation/UseCoulombDirectly
- 1.5. propagation/UseHadronic
- 1.6. propagation/FreezeNonint
- 1.7. propagation/dh_dp0_switch
- 1.8. propagation/RungeKuttaOrder
- 1.9. propagation/offShellInfo
- 1.10. propagation/offShellInfoDetail
- 1.11. propagation/tachyonDebug
- 1.12. propagation/updateVelocity
- 1.13. propagation/init
- 1.14. propagation/Propagation
- 1.15. propagation/gradients
- 1.16. propagation/propagate
- 1.17. propagation/setMass
- 1.18. propagation/predictorStep
- 1.19. propagation/correctorStep
- 1.20. propagation/propagate_euler
- 1.21. propagation/propagate_cascade
- 1.22. propagation/propagate_random
- 1.23. propagation/checkVelo
- 1.24. propagation/checkVelos
/propagation [ Modules ]
NAME
module propagation
PURPOSE
Module which includes the propagation of the test-particles.
propagation/Mode [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
SOURCE
integer, save :: Mode = 2
PURPOSE
define the type of propagation:
- 0: Cascade
- 1: Euler
- 2: PredictorCorrector
- 3: no propagation, random placement in box
propagation/delta_E [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
Delta energy in derivatives
SOURCE
real, save :: delta_E=0.01
propagation/delta_P [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
Delta Momentum in derivatives
SOURCE
real, save :: delta_P=0.01
propagation/UseCoulombDirectly [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
Whether to use coulomb force directly in propagation or not. (If switched off while coulomb is switched on in module coulomb, the effect of the coulomb potential comes in via the gradient of the potentials. With this flag you can not switch on/off coulomb, you just select, how it is treated.)
SOURCE
logical, save :: UseCoulombDirectly=.true.
propagation/UseHadronic [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
Whether to use hadronic potentials in propagation
SOURCE
logical, save :: UseHadronic=.true.
propagation/FreezeNonint [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
SOURCE
logical, save :: FreezeNonint=.false.
PURPOSE
If switched on, the real particles which did not interact will have zero velocities, i.e. will be "frozen". This is important for stability of the nuclear ground state in real particle simulations. Note that this flag influences only when freezeRealParticles=.false.
propagation/dh_dp0_switch [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
Switch which decides whether we use dh_dp0.
SOURCE
logical, save :: dh_dp0_switch=.true.
propagation/RungeKuttaOrder [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
Order of Runge-Kutta in derivatives:
- 1 = first order Runge-Kutta
- 2 = second order Runge-Kuttay
SOURCE
integer, save :: RungeKuttaOrder=1
propagation/offShellInfo [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
print out offShellInfo: set to .true. automatically if offShellTransport is used
SOURCE
logical,save :: offShellInfo=.false.
propagation/offShellInfoDetail [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
print out detailed offShellInfo
SOURCE
logical,save :: offShellInfoDetail=.false.
propagation/tachyonDebug [ Global module-variables ]
[ Top ] [ propagation ] [ Global module-variables ]
PURPOSE
...
SOURCE
logical,save :: tachyonDebug=.false.
propagation/updateVelocity [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine updateVelocity(teilchen)
PURPOSE
Updates velocities of a single particle or a field of particles and checks for v<c.
INPUTS
- type(particle), dimension(:,:) :: teilchen
or:
- type(particle), dimension(:) :: teilchen
or:
- type(particle) :: teilchen
propagation/init [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine init
PURPOSE
Reads out namelist "propagation"
INPUTS
- (none)
OUTPUT
- Initializes global module variables
propagation/Propagation [ Namelists ]
[ Top ] [ propagation ] [ Namelists ]
NAME
NAMELIST propagation
PURPOSE
Namelist which includes the input switches:
- delta_P
- delta_E
- UseCoulombDirectly
- UseHadronic
- FreezeNonint
- RungeKuttaOrder
- Mode
- dh_dp0_switch
- offShellInfoDetail
- tachyonDebug
propagation/gradients [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine gradients(part,Grad_P,Grad_R,flagOk)
PURPOSE
determine gradients of the Hamiltonfunction
INPUTS
OUTPUT
- real, dimension(1:3) :: Grad_P -- momentum gradient
- real, dimension(0:3) :: Grad_R -- space gradients =(d/dt , d/dr(1:3) ) [Note that there is no minus sign!!]
- logical, optional :: flagOk -- indicates failure
NOTES
This routine is also called in RMF mode for HeavyIon init for rho, omega and phi mesons. In this case EnergyDeterminationRMF should be called
propagation/propagate [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine propagate(realPart, pertPart, delta_T, timeStep)
PURPOSE
This routine propagates the particle vectors.
INPUTS
- type(particle), dimension(:,:) :: realPart -- real particle vector which should be propagated
- type(particle), dimension(:,:) :: pertPart -- perturbative particle vector which should be propagated
- real :: delta_T -- time step size (fm/c)
- integer :: timeStep -- time step number
OUTPUT
NOTES
- Uses cascade, Euler or predictor-corrector time stepping.
propagation/setMass [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine setMass(Parts)
PURPOSE
- Resets %mass according to the offshell parameter and the actual momentum and position of the particle.
- if particles is NOT meant to be treated offshell, nothing is changed.
INPUTS
- type(particle),dimension(:,:) :: Parts
OUTPUT
- type(particle),dimension(:,:) :: Parts
propagation/predictorStep [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine predictorStep(Parts,gradP,gradR,delta_T)
PURPOSE
propagate particle vector using an Euler method and returns the gradients.
INPUTS
- real, intent(in) :: delta_T
OUTPUT
- type(particle),dimension(:,:) :: Parts -- vector at predicted position and momentum
- real, dimension(:,:,:) :: gradR, gradP ! Gradients in R and P-Space
NOTES
- Used as predictor step in a predictor/corrector scheme
propagation/correctorStep [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine correctorStep(Parts,gradP,gradR,delta_T)
PURPOSE
Performs a corrector step on a particle vector previously undergoing a simple Euler method.
INPUTS
- real :: delta_T
- real, dimension(:,:,:) :: gradR, gradP -- gradients in R and P-Space of predictor step
- type(particle),dimension(:,:) :: Parts -- particle vector at predicted values
OUTPUT
NOTES
- Used as corrector step in a predictor/corrector scheme
propagation/propagate_euler [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine propagate_euler(Parts,delta_T)
PURPOSE
INPUTS
- type(particle),dimension(:,:) :: Parts -- particle vector which should be propagated
- real :: delta_T ! time step (fm/c)
OUTPUT
- type(particle),dimension(:,:) :: Parts -- particle vector which should be propagated
NOTES
Uses simple Euler time stepping. See also files in "Documentation_Extra/propagation/".
propagation/propagate_cascade [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine propagate_cascade(Parts,delta_T)
PURPOSE
Routine propagates particles in case of cascade mode. Useful also for doing initial step in the RMF mode.
INPUTS
- type(particle), dimension(:,:) :: Parts -- particles which should be propagated
- real :: delta_T -- time step (fm/c)
OUTPUT
- type(particle), dimension(:,:) :: Parts
NOTES
Straight line trajectories; no momentum change (mean fields switched off).
propagation/propagate_random [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine propagate_random(Parts)
PURPOSE
Routine places particles randomly inside the box.
INPUTS
- type(particle), dimension(:,:) :: Parts -- particles which should be propagated
OUTPUT
- type(particle), dimension(:,:) :: Parts
NOTES
Only useful for box calculations!
propagation/checkVelo [ Functions ]
[ Top ] [ propagation ] [ Functions ]
NAME
logical function checkVelo(part,verbose)
PURPOSE
Checks the velocity of a given particle
INPUTS
- type(particle),intent(inout) :: part
- logical, optional :: verbose -- flag to produce additional output
NOTES
- Also does some statistical stuff
propagation/checkVelos [ Subroutines ]
[ Top ] [ propagation ] [ Subroutines ]
NAME
subroutine checkVelos(part)
PURPOSE
Checks the velocities
INPUTS
*type(particle),dimension(:,:),intent(inout) :: part