TABLE OF CONTENTS
- 1. /NucDLDA
- 1.1. NucDLDA/diffeq
- 1.2. NucDLDA/energyofrho
- 1.3. NucDLDA/getEBinding
- 1.4. NucDLDA/getEParticleLaplace
- 1.5. NucDLDA/Aapprox
- 1.6. NucDLDA/DFLDA
- 1.7. NucDLDA/rhostepsearch
- 1.8. NucDLDA/shootfillarray
- 1.9. NucDLDA/shootinput
- 1.10. NucDLDA/shootnowrite
- 1.11. NucDLDA/startcond
- 1.12. NucDLDA/DFLDAWelke
- 1.13. NucDLDA/startcondWelke
/NucDLDA [ Modules ]
NAME
module NucDLDA
PURPOSE
This module calculates the ground state density based on a local density approximation without charge or symmetry energy
AUTHOR
Birger Steinmüller
NucDLDA/diffeq [ Functions ]
[ Top ] [ NucDLDA ] [ Functions ]
NAME
real function diffeq(y,yp,t,ck,a,e0f,b1,b2,b3)
PURPOSE
This is the differential equation used for calculating the density It comes from varying the energy-density-functional
INPUTS
- real :: rho -- current density
- real :: rhop -- first derivative of the density wrt the radius
- real :: r -- current radial position
- real :: ck, a, e0f, b1, b2, b3 -- constants
OUTPUT
Second derivative of the density wrt the radius
NucDLDA/energyofrho [ Functions ]
[ Top ] [ NucDLDA ] [ Functions ]
NAME
real function energyofrho(rho,rhop,t,ck,a,e0f,b1,b2,b3)
PURPOSE
This calculates the energy density for a given density and its first derivative
INPUTS
- real :: rho -- current density
- real :: rhop -- first derivative of the density wrt the radius
- real :: ck, a, b1, b2, b3 -- constants
OUTPUT
Energy density in units of fm**(-1)
NucDLDA/getEBinding [ Functions ]
[ Top ] [ NucDLDA ] [ Functions ]
NAME
real function getEBinding(E)
PURPOSE
Stores the calculated binding energy of the nucleus
INPUTS
- real :: E -- energy
OUTPUT
Energy in units of MeV
NucDLDA/getEParticleLaplace [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
real function getEParticleLaplace(rho,gradrho2,p2)
PURPOSE
Calculates the Energy of a Particle with
INPUTS
- real :: rho -- density
- real :: laplacerho --div(grad(density))
- real :: p2 -- 3-momentum**2 (in GeV**2)
OUTPUT
Energy in units of MeV, 1st component total energy, 2nd kinetic energy, 3rd volume energy and 4th surface energy
NucDLDA/Aapprox [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine Aapprox(b3,ck,a,b1,b2,E0,rhostart,rhopstart,deltarho,steps,depth,e0fdepth, deltat,maxr,Massin,Massout,ystart,e0f,energy)
PURPOSE
This searches for the best density at the center and Lagrange multiplier e0f to get a density distribution with its Mass (Massout) close to the given Mass (Massin)
INPUTS
- real :: rhostart -- starting density for the search
- real :: rhopstart -- first derivative of the density
- real :: deltarho -- starting stepsize wrt density
- integer :: depth -- searching depth in rho direction
- real :: deltat -- stepsize for solving the differential equation
- real :: maxr -- maximum distance from the centre
- real :: Massin -- Mass of the nucleus we are looking for
- real :: b3, ck, a, b1, b2, E0 -- constants
- integer :: steps -- steps in density 'direction'
- integer :: e0fdepth -- searching depth for e0f
OUTPUT
- real :: Massout -- Mass of the nucleus (calculated)
- real :: ystart -- calculated starting density of this nucleus
- real :: e0f -- calculated Lagrange multiplier
- real :: energy -- calculated total binding energy
NucDLDA/DFLDA [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine DFLDA(nucleus)
PURPOSE
Initialises the density of a nucleus for a given mass
INPUTS
type(tnucleus)::nucleus -- Mass and Charge are important
OUTPUT
type(tnucleus)::nucleus -- The initialised nucleus
NucDLDA/rhostepsearch [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine rhostepsearch(b3,ck,a,b1,b2,E0,rhostart,rhopstart,deltarho,steps,depth,e0f,deltat,maxr,Mass,ystart,energy)
PURPOSE
This searches for the best density at the center for a given Lagrange mulitplier e0f to get a smooth density distribution
INPUTS
- real :: rhostart -- starting density for the search
- real :: rhopstart -- first derivative of the density
- real :: deltarho -- starting stepsize wrt density
- integer :: depth -- searching depth in rho direction
- real :: deltat -- stepsize for solving the differential equation
- real :: maxr -- maximum distance from the centre
- real :: b3, ck, a, b1, b2, E0, e0f -- constants
- integer :: steps -- steps in density 'direction'
OUTPUT
- real :: Mass -- Mass of the nucleus (calculated)
- real :: ystart -- calculated starting density of this nucleus
- real :: energy -- calculated total binding energy
NucDLDA/shootfillarray [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine subroutine shootfillarray(y0,yp0,tstart,tend,delta,ck,a,e0f,b1,b2,b3,factor,nucleus)
PURPOSE
A first order Euler method for solving the equation diffeq with the starting parameters and fills the density array of nucleus with it
INPUTS
- real :: y0 -- starting density
- real :: yp0 -- first derivative of the density
- real :: tstart -- point at which to start
- real :: tend -- maximum distance for which the diff. eq. is solved
- real :: delta -- stepsize for solving the differential equation
- real :: b3, ck, a, b1, b2, E0, e0f -- constants for the diff. eq.
- type(tnucleus) :: nucleus -- the nucleus definition
- real :: factor -- charge/Mass for rellative density of n and p
OUTPUT
- real :: Mass -- Mass of the nucleus (calculated)
- real :: ylast -- density at the point after the last one which is used
- real :: energy -- calculated total binding energy
NucDLDA/shootinput [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine shootinput(b3,ck,a,b1,b2,E0,rhoat0,rhopat0,deltarho,step,e0f,deltat,maxr,Massmin,ystartmin,energy)
PURPOSE
This searches a given interval of the densityfor the best density at the center for a given Lagrange mulitplier e0f to get a smooth density distribution
INPUTS
- real :: rhoat0 -- starting density for the search
- real :: rhopat0 -- first derivative of the density
- real :: deltarho -- starting stepsize wrt density
- real :: deltat -- stepsize for solving the differential equation
- real :: maxr -- maximum distance from the centre
- real :: b3, ck, a, b1, b2, E0, e0f -- constants
- integer :: step -- steps in density 'direction'
OUTPUT
- real :: Massmin -- Mass of the nucleus (calculated)
- real :: ystartmin -- calculated starting density of this nucleus
- real :: energy -- calculated total binding energy
NucDLDA/shootnowrite [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine shootnowrite(y0,yp0,tstart,tend,delta,fileout,ck,a,e0f,b1,b2,b3,Mass,ylast,energy)
PURPOSE
Just like shoot without writing into a file
INPUTS
- real :: y0 -- starting density
- real :: yp0 -- first derivative of the density
- real :: tstart -- point at which to start
- real :: tend -- maximum distance for which the diff. eq. is solved
- real :: delta -- stepsize for solving the differential equation
- real :: maxr -- maximum distance from the centre
- real :: b3, ck, a, b1, b2, E0, e0f -- constants for the diff. eq.
OUTPUT
- real :: Mass -- Mass of the nucleus (calculated)
- real :: ylast -- density at the point after the last one which is used
- real :: energy -- calculated total binding energy
NucDLDA/startcond [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine startcond(rho0,E0,ck,b3,b1,b2,a,eta)
PURPOSE
calculates the constants for the potential
OUTPUT
- real :: rho0 -- nuclear density where the potential has a minimum
- real :: E0 -- depth of the potential
- real :: ck, b3 -- other constants
- real :: b1, b2 -- constant for potential
NucDLDA/DFLDAWelke [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine DFLDAWelke(nucleus)
PURPOSE
Initialises the density of a nucleus for a given mass
INPUTS
type(tnucleus)::nucleus -- Mass and Charge are important
OUTPUT
type(tnucleus)::nucleus -- The initialised nucleus
NucDLDA/startcondWelke [ Subroutines ]
[ Top ] [ NucDLDA ] [ Subroutines ]
NAME
subroutine startcondWelke(rho0,E0,ck,b3,b1,b2,a,eta)
PURPOSE
calculates the constants for the potential
OUTPUT