TABLE OF CONTENTS
- 1. /Coulomb
- 1.1. Coulomb/coulombField
- 1.2. Coulomb/coulombFlag
- 1.3. Coulomb/magnetFieldFlag
- 1.4. Coulomb/cutMomentumPotential
- 1.5. Coulomb/cutMomentumWidth
- 1.6. Coulomb/K_ADI
- 1.7. Coulomb/U_ADI
- 1.8. Coulomb/chatot
- 1.9. Coulomb/rchar
- 1.10. Coulomb/getCoulombFlag
- 1.11. Coulomb/initCoulombReading
- 1.12. Coulomb/coulomb
- 1.13. Coulomb/cleanUp
- 1.14. Coulomb/emfoca
- 1.15. Coulomb/coulomb_ADI
- 1.16. Coulomb/Get_TotalCharge
- 1.17. Coulomb/updateCoulomb
/Coulomb [ Modules ]
NAME
module Coulomb
PURPOSE
Includes all routines and global variables which are necessary for the evaluation of a Coulomb potential out of a charge configuration.
NOTES
- The coulomb routines use now the same spatial grid as that extracted in the module "densityModule".
- New ADI routines are used to solve the Poisson equation on the grid.
Coulomb/coulombField [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
real(singlePrecision), save, allocatable, dimension(:,:,:,:) :: coulombField
PURPOSE
The Coulomb field A^{\mu}(\vec{r}) = (\phi(\vec{r}),\vec{A}(\vec{r})) Indizes:
- 1-3: components on the 3D-Grid: x,y,z--coordinate
- 4: Lorentz-components: 0th entry is the static coulomb field, while entries 1:3 represent the magnet field. (The magnetic filed is not yet implemented !)
Coulomb/coulombFlag [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
logical, save :: coulombFlag = .false.
PURPOSE
Switch to turn on/off the Coulomb potential. If turned on, also 'symmetryPotFlag' (in namelist 'baryonPotential') needs to be turned on.
Coulomb/magnetFieldFlag [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
logical, save :: magnetFieldFlag=.false.
PURPOSE
Switch to turn on/off elm. vector potential.
NOTES
The vector potential is not yet fully implemented! Please do not use this option.
Coulomb/cutMomentumPotential [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
real, save :: cutMomentumPotential = 0.025 ! in GeV
PURPOSE
If larger than 0, the coulomb potential is set to zero for all particles with momentum larger than minmass**2/(2*cutMomentumPotential) The cut-off is smeared out, if cutMomentumWidth>0
This cut is needed in non-RMF mode since
m_eff^2 = (sqrt(m^2+p^2)+U_C)^2-p^2 can
become smaller than zero for
p > U_C/2 - m^2/(2*U_C).
In this case we have a 'tachyon'.
NOTES
- for RMF mode you do not need this cut
- This value should correspond to the maximum vale of the Coulomb potential. Therefore you should readjust this for every nucleus.
- For the pion, we take the mass (0.138) instead of minmass, since here minmass is zero!
Coulomb/cutMomentumWidth [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
real, save :: cutMomentumWidth = 0.100 ! in GeV
PURPOSE
If cutMomentumPotential>0 and cutMomentumWidth>0, then the cut-off is smeared by some linear interpolation:
(At-Width) = 1.0 ... (At+Width) = 0.0
with At = minmass**2/(2*cutMomentumPotential) and the width given here in GeV.
This width is introduced in order to destroy numerical problems due to sharp edges.
Coulomb/K_ADI [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
real, save, allocatable, dimension(:,:,:) :: K_ADI
PURPOSE
auxiliary arrays needed for ADI routines (see also ADI.f90)
Coulomb/U_ADI [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
real, save, allocatable, dimension(:,:,:) :: U_ADI
PURPOSE
auxiliary arrays needed for ADI routines (see also ADI.f90)
Coulomb/chatot [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
real, SAVE :: chatot
PURPOSE
Total charge density (needed for calculating coulomb outside of grid)
Coulomb/rchar [ Global module-variables ]
[ Top ] [ Coulomb ] [ Global module-variables ]
SOURCE
real, dimension(1:3), SAVE :: rchar
PURPOSE
Position of total charge (needed for calculating coulomb outside of grid)
Coulomb/getCoulombFlag [ Subroutines ]
[ Top ] [ Coulomb ] [ Subroutines ]
NAME
logical function getCoulombFlag()
PURPOSE
Return the value of 'coulombFlag'.
Coulomb/initCoulombReading [ Subroutines ]
[ Top ] [ Coulomb ] [ Subroutines ]
NAME
subroutine initCoulombReading
PURPOSE
initialize the module, read namelist 'coulomb'
Coulomb/coulomb [ Namelists ]
[ Top ] [ Coulomb ] [ Namelists ]
NAME
NAMELIST /coulomb/
PURPOSE
Includes the switches:
Coulomb/cleanUp [ Subroutines ]
[ Top ] [ Coulomb ] [ Subroutines ]
PURPOSE
Deallocate all fields
Coulomb/emfoca [ Functions ]
[ Top ] [ Coulomb ] [ Functions ]
NAME
real function emfoca(position, momentum, chargeIn, ID, emForce)
PURPOSE
This routine calculates the electromagnetic forces acting on a particle (baryon or meson).
INPUTS
- real, dimension(1:3) :: position -- space coordinates of particle
- real, dimension(1:3) :: momentum -- momentum of particle
- integer :: chargeIn -- charge of particle
- integer, OPTIONAL :: ID -- ID of particle
RESULT
- real :: cpot -- electromagn. potential (in GeV)
- real, dimension(1:3), OPTIONAL :: emForce-- electromagn. force (in GeV/fm)
Coulomb/coulomb_ADI [ Subroutines ]
[ Top ] [ Coulomb ] [ Subroutines ]
NAME
subroutine coulomb_ADI
PURPOSE
This routine calculates coulomb field on the grid using ADI methods
Coulomb/Get_TotalCharge [ Subroutines ]
[ Top ] [ Coulomb ] [ Subroutines ]
NAME
subroutine Get_TotalCharge
PURPOSE
This routine calculates the total charge Q & its center R_Q.
Coulomb/updateCoulomb [ Subroutines ]
[ Top ] [ Coulomb ] [ Subroutines ]
NAME
subroutine updateCoulomb
PURPOSE
Updates the coulomb field values. Necessary to call it in each time step
INPUTS
none