TABLE OF CONTENTS
/nucleusDefinition [ Modules ]
NAME
module nucleusDefinition
PURPOSE
Define structure "tNucleus".
NOTES
Because of internal module dependencies we do not include any routines working with/on the defined objects in this module but rather give them in the module "nucleus".
nucleusDefinition/tNucleus [ Types ]
[ Top ] [ nucleusDefinition ] [ Types ]
SOURCE
type, public :: tNucleus real,dimension(0:2) :: radius = 0. ! 0: baryon, 1: p, 2: n real,dimension(0:2) :: surface = 0. ! 0: baryon, 1: p, 2: n real,dimension(0:2) :: density = 0. ! 0: baryon, 1: p, 2: n real,dimension(1:3) :: pos = 0. ! position in calculation frame real,dimension(1:3) :: vel = 0. ! velocity in calculation frame integer :: mass = 0 ! in units of nucleon masses integer :: charge = 0 logical :: fermiMotion=.true. ! switch to turn on/off FermiMotion logical :: DoInit =.true. ! if true, then first initialize ! integer :: densitySwitch_static = 3 real :: fermiMomentum_input = 0.225 real,dimension(1:2) :: radius_input = -99.9 real,dimension(1:2) :: surface_input = -99.9 integer :: MaxIndex = maxIndex_def real :: dx = dx_def real,dimension(0:maxIndex_def,0:2) :: densTab = 0. ! 0: baryon, 1: p, 2: n real :: MaxDist = 0. ! Distance-CutOff: dens < 1e-6 real :: MaxDens(2)=0. ! maximum of densTab real :: chemPot = 0. ! 'chemical' pot. for LDA (relative units of E0) logical :: ReAdjustForConstBinding = .false. real :: ConstBinding = 0. real,dimension(2) :: fac = 0. ! scaling factors in Readjust logical :: anti = .FALSE. ! true if antinucleus logical :: doPrintGlauber = .false. contains procedure :: writeParams procedure :: writeStaticDens procedure :: writeAverageDens procedure :: staticDens procedure :: searchMaxVals procedure :: printGlauber procedure :: classicalEstimate end type tNucleus
PURPOSE
This type stores informations about nuclei, namely target and projectile.
NOTES
Following parameters are valid for all density parametrisations:
parameters for Woods-Saxon:
- radius
- surface
- density
nucleusDefinition/writeParams [ Subroutines ]
[ Top ] [ nucleusDefinition ] [ Subroutines ]
NAME
subroutine writeParams(this)
PURPOSE
write the main parameters to stdout
INPUTS
none
OUTPUT
written to stdout
nucleusDefinition/writeStaticDens [ Subroutines ]
[ Top ] [ nucleusDefinition ] [ Subroutines ]
NAME
subroutine writeStaticDens(this, filename)
PURPOSE
write the static density to file
nucleusDefinition/staticDens [ Functions ]
[ Top ] [ nucleusDefinition ] [ Functions ]
NAME
real function staticDens(this,r,iType)
PURPOSE
return value of the tabulated nuclear density
INPUTS
- real :: r -- radius [fm]
- integer :: iType -- 0: total, 1: proton, 2: neutron
OUTPUT
function value: density [fm^-3]
nucleusDefinition/writeAverageDens [ Subroutines ]
[ Top ] [ nucleusDefinition ] [ Subroutines ]
NAME
subroutine writeAverageDens(this)
PURPOSE
Prints average density of nucleus
INPUTS
none
NOTES
<rho> = int(rho rho r**2 dr)/int(rho r**2 dr)
nucleusDefinition/searchMaxVals [ Subroutines ]
[ Top ] [ nucleusDefinition ] [ Subroutines ]
NAME
subroutine searchMaxVals(this)
PURPOSE
go through the tabulated distributions to search for the extrema
nucleusDefinition/printGlauber [ Subroutines ]
[ Top ] [ nucleusDefinition ] [ Subroutines ]
NAME
subroutine printGlauber(this)
PURPOSE
This routine prints the total cross section sigma_hA according a Glauber calculation (cf. Falter PhD, eq. (5.15)) for different values of sigma_hN and a classical consideration.
nucleusDefinition/classicalEstimate [ Functions ]
[ Top ] [ nucleusDefinition ] [ Functions ]
NAME
real function classicalEstimate(this, sigma)
PURPOSE
This routine calculates the total cross section sigma_hA according a classical picture for given values of sigma_hN
INPUTS
- real, dimension(1:2) :: sigma -- sigmaP, sigmaN (in mb)