A Code for Three-Dimensional Static and Time-Dependent Hartree–Fock 1 Physical Model

advertisement

A Code for Three-Dimensional Static and Time-Dependent Hartree–Fock with a Simplified Effective Force

1 Physical Model

The present code solves the static and time-dependent Hartree–Fock (TDHF) equations in a general three-dimensional geometry with a simple interaction (simplified

Skyrme) that simulates nuclei in a crude way. The concept is based on the fundamental paper by Bonche et al. [4]. To get an idea of the nuclear physics applications possible with such a model we refer the reader to Refs. [4, 3, 7, 26, 5, 23, 10, 8, 12,

19, 13, 6, 14, 9, 18], for reviews to Refs. [20, 11]), and for recent developments in the theory to Refs. [11, 19, 22, 15, 16],

Self-consistent mean-field methods for stationary states are explained in the book in Chaps. 5 and 6, while the time-dependent case is described in Sect. 8.2. We take up here the form of Eq. (6.15) in the book and simplify it to

E

Sk

2

=

2m

A

α =

1 d

3 r

|∇ ϕ

α

| 2 | +

1

2 d

3 r

3t

0

8

ρ 2 +

3t

3

32

ρ 3 ,

(1) where ρ = ρ (r) denotes the total local density. Again, we consider A = N + Z . Furthermore, we neglect the Coulomb energy and thus have ρ parameters b

0

, b

3 p

= ρ n

= in Eq. (6.15) have been replaced by the traditional t

0

ρ/

, t

3

2. The force

[1]. In fact, the functional (1) is a simplified version of the Bonche–Koonin–Negele interaction

(BKN) which was used very often for schematic studies of nuclear TDHF [4]. The physical mechanism described by this force is that the t

0

-term provides a densityindependent attraction, while the t

3

-term simulates a repulsion that increases in strength with density, thus leading to saturation. The mean-field calculated with this force is

U ( r )

= 3

4 t

0

ρ

( r )

+ 3

16 t

3

ρ 2

( r )

.

The complete single-particle Hamiltonian is thus

(2)

2

ˆh = −

2m

∇ 2 +

U ( r )

.

(3)

1

2 A Code for Three-Dimensional Static and TDHF with a Simplified Effective Force

Note that the simplified functional contains no spin or isospin dependence, so that every spatial wave function will be associated with four particles: two protons and two neutrons each with spin up and down, respectively.

Suggested values for the parameters of the force are t and t3 = 17764 .

414 MeV fm

6

0

= −

1074

.

1968 MeV fm

, which produces “nuclei” of a reasonable density.

3

1.1 Physics Omitted

As mentioned, the formulation of Hartree–Fock with the BKN force as the sole interaction is a very crude approximation to a nuclear structure theory. The most important effects a serious treatment of nuclei should include are:

• The Coulomb force, which makes nuclear structure quite different for heavier nuclei, especially leading to a bound on nuclear stability through the fission process.

The spin–orbit force. As explained in the book (Sect. 3.2.5), it changes the shell structure and the magic numbers.

The pairing force.

The model used in the present code should thus be moderately realistic only for very light nuclei with masses below about 40. The principal application of the code is therefore not a high-quality description of real nuclei, but the study of dynamics in finite fermionic systems in a more generic sense, where the microscopic formulation allows looking at the influence of surface effects, the Pauli principle, etc.

2 Numerical Techniques

2.1 General Features

The equations of static or time-dependent Hartree–Fock are discretized on a Cartesian grid of nx

× ny

×

nz points with a uniform spacing of

Δ

x. The coordinate values are defined such that the grid is reflection symmetric with respect to the origin, so that x i

, i

=

1

, . . . ,

nx are such that x nx

/

2

= − Δ x

/

2 and x nx

/

2

+

1

= + Δ x

/

2.

The boundary condition used for calculating derivatives is periodic. The derivatives actually needed are the Laplacian, which is used for the kinetic energy and is expressed by a thirteen-point formula, and the second derivatives along one coordinate direction (five-point formula), which are inverted for the damping in the static algorithm — see Sect. 2.2. The periodic boundary condition is handled by using index vectors for the incremented index values, see subroutine getinc in fields.f90

.

The wave functions are represented by a complex array of size (nx,ny,nz, npsi) , where npsi is one quarter the number of nucleons because of spin and isospin degeneracy.

2 Numerical Techniques

2.2 The Static Problem

3

As pointed out in Chaps. 5 and 6 of the book, the self-consistent mean-field equations pose a nonlinear problem. In most cases, it can be solved only in iterative manner. We use here the damped gradient iteration [21, 2] in the form

φ (n

+

1)

α

ˆ

= O φ (n)

α

= x

0

E

0

ˆp 2 x

2m

E

0

ˆ

+

E

0 h

ˆp 2 y

2m

(n)

E

0

− φ (n)

α

+ E

0

ˆp 2 z

2m

|

E

0

+ h

(n)

E

0

| φ

,

(n)

α

φ (n)

α

,

(4)

(5) where the upper label n indicates the number of iteration and x

0

,

E

0 are numerical parameters to be adjusted for optimal speed and stability. The E

0 for the typical depth of the local mean field, i.e., E

E x

0

0

0

U min should account

, which amounts to

100 MeV for the case of nuclei. A good overall step size x

0 is typically

0

.

2

0

.

8. High values can produce faster convergence, however at the risk of spoiling convergence at all. Low values are safer, but require more iterations. Optimal choices are a matter of experience (and test cases). Note that the step terminates if the mean field equation h (n) φ (n)

α

= − φ (n)

α

| h (n) | φ (n)

α

φ (n)

α is fulfilled. The mismatch of the mean-field equations (before convergence) is used to improve the solution.

With ˆ = x

0

= constant, one has the simple gradient step which propagates along the downhill gradient in the energy landscape. However, high-energy components in the kinetic energy would require to use extremely small step sizes x slow convergence. The damping operator ˆ

0 and thus very

D reduces the high-energy components, thus allowing larger steps and with it much faster convergence [21, 2]. We use here a separable form of the damping operator. This is numerically very efficient as it allows to employ successively one-dimensional operations which are rather fast.

One needs observables to check and record proper convergence of the iteration.

The most obvious and widely used criterion is the evolution of the total energy E in terms of the energy difference

δ

E of

δ

E

(n)

(n) =

E

(n) −

E

(n − 1)

(n)

. However, a small value does not ensure that a solution has really been found. More critical and reliable is the variance of the mean-field Hamiltonian

Δ h

= α

Δ h 2

α

, Δ h

2

α

= φ (n)

α

| h

(n)2 | φ (n)

α

− φ (n)

α

| h

(n) | φ (n)

α

2 .

(6)

The variance

Δ h

2

α is a direct measure for the remaining uncertainty on the singleparticle energy. Driving this to a sufficiently small value guarantees a known quality of the solution. We will use Δ h as criterion for terminating the iteration.

2.3 The Dynamic Problem

Once the static wave functions have been obtained, they are used to initialize the time-dependent problem. The wave functions for the j th nucleus are inserted into

4 A Code for Three-Dimensional Static and TDHF with a Simplified Effective Force the grid at a given center-of-mass R j and multiplied with a plane wave phase factor exp[i k j

· k j determines the initial direction and kinetic energy of the nucleus.

For the numerical solution of the time-dependent problem the basic idea is to approximate the evolution operator for a short time step Δ t . Formally, the solutions to the time-dependent Hartree–Fock equations are given by

φ

( r

, t

+ Δ

t )

= exp

[ i t t

+ Δ t dt H (t )

φ

( r

,

t )

.

(7)

The time dependence of the single-particle Hamiltonian poses a special problem, since it depends on the unknown wave functions. It is not sufficient to just approximate it by its value at the beginning of the time step; in practice it was found that this procedure violates energy conservation strongly. For example, for the case of a nucleus moving uniformly through space, the mean-field in the Hamiltonian would always correspond to the initial position of the nucleus during the time step and thus lag behind, causing a spurious slowing of the motion. Satisfactory accuracy can be reached if the Hamiltonian is estimated at the center of the time step (the same numerical effect is also illustrated by the midpoint approximation to an integral).

The estimation itself can be done with lower accuracy.

The propagation for one time step thus proceeds in two phases:

• Estimation of H (t + Δ t / 2): estimate the wave functions at half time via

φ

( r

, t

+ Δ t

/

2)

= exp

− i

H (t)

Δ t

/

2

φ

( r

,

t )

,

(8) and then compute the density and the Hamiltonian according to (3).

• In the second phase use this Hamiltonian for the final propagation

φ

( r

, t

+ Δ

t )

= exp

− i

H (t

+ Δ t

/

2)

Δ t

φ

( r

,

t )

.

(9)

These wave functions then provide the starting point for the next time step.

The exponential function in these expressions is then approximated by the Taylor expansion, usually to sixth order, although other orders can easily be used as well.

Thus e

A φ ≈

1

+

A 1

+

A

2

1

+

A

3

1

+

A

4

1

+

A

5

1

+

A

6

φ

(10) with

A = − i

H (t + Δ t / 2) Δ t .

(11)

3 Structure of the Code 5

This approximation to the time-development operator is neither Hermitian nor energy conserving; it relies purely on high accuracy to realize these properties. In practice a time step between 0.1 and 0.2 fm/c turned out to be adequate for the standard grid spacings. In any case, if the time step is too large, the calculation will become unstable after some time, and the norm of the wave functions and the energy going to highly unphysical values. In this case the time step should be reduced.

Note that when varying the spatial grid spacing, the time step should be changed proportionally.

3 Structure of the Code

In this section we give a brief overview of the source files and their contents. Details should be understandable using the comments in the source itself.

1.

dynamic.f90

This contains the code specific to the dynamic calculation.

• dynamcihf : a wrapper for calling the principal routines, tsetup and tevolv .

• tsetup : initializes the wave functions by either reading in a restart file

( rdtpsi ) or by setting up from static fragment wave functions

( read fragments ).

• tevolv : performs the time integration in a loop over time steps.

• tstep : calculates the series expansion of Eq. (10) for either the full or the half step.

• tinfo : produces various kinds of output.

• getin dynamic : reads the dynamic input data.

2.

energy.f90

contains the subroutine hfenergy for calculating the various contributions to the energy.

3.

fields.f90

has basic subroutines for operating on the spatial grid. These are:

• init grid : sets up the coordinate values and the index vectors for doing differences with periodic boundary conditions. It also calculates the damping matrices via inversion. Uses helper subroutine getinc applied to the three coordinate directions.

• rpsnorm : calculates norm of a wave function.

• overlap : calculates overlap of two wave functions.

• density : sums up total density over wave functions.

• schmid : performs Gram–Schmidt orthogonalization for the wave functions.

• laplace : applies the Laplace operator to a wave function using secondorder differencing.

• cmulx , cmuly , cmulz : multiply a wave function with a matrix along one coordinate direction. This is used for applying the damping matrices.

6 A Code for Three-Dimensional Static and TDHF with a Simplified Effective Force

4.

fragments.f90

: handles setup of initial fragments in a time-dependent calculation using subroutine read fragments . It reads the static wave functions, inserts them into the grid at the prescribed positions, and multiplies them with a boost factor.

5.

info util.f90

: routines for producing output.

• state print : prints information about single-particle states.

• plot density : produces a simple printer plot of the density in the xzplane.

• plot gnu produces source code for GNUPLOT to make a series of density plots in the xz-plane.

6.

init.f90

: initialization routines.

• getin : reads namelists main and files . Also calculate quantum numbers for harmonic oscillator initialization.

• setpsi : calculates harmonic oscillator wave functions for initialization of static calculation.

7.

inout.f90

: routines for handling storage.

• rdtpsi , wrtpsi : read and write restart information.

• putpsi : writes static wave function file. Used as input by read fragments .

• write densities : write density and some other information onto a tdd file for additional analysis.

8.

main3d.f90

: main program. Initializes and executes either the static or the dynamic branch of the calculation.

9.

matinv.f90

: simple matrix inversion using the Gauss–Seidel algorithm.

10.

mfield.f90

: calculation of mean-field potential and Hamiltonian.

• skyrme : calculates the mean-field potential upot and its contribution to the energy functional utot .

• hpsi : applies the single-particle Hamiltonian to a wave function, renormalized by an energy shift.

11.

moment.f90

: moments calculate total mass number, root mean square radius, root means of the three coordinates, and the center-of-mass vector, which are printed on demand by moment print .

12.

params.f90

: contains definitions of all global parameters of the code. The floating-point precision is given by the parameter db . Some not so self-evident constants are:

• db is the constant determining the accuracy of the floating-point numbers in the code. For modern processors it should correspond to REAL(8) .

• hbc is c in MeV fm.

• h2m is the factor 2 /

2m for the kinetic energy.

The remaining variables and constants are explained in the input description.

4 How to Run the Code 7

13.

static.f90

: static part of the code.

• shf3d : wrapper for the static calculations containing the initialization and the iteration loop.

• grstep : performs one step of the gradient iteration.

• sinfo : produces informational output.

4 How to Run the Code

To run the code a Fortran-95 compiler is required, such as the free gfortran .

Since the code uses the module structures of Fortran 95 extensively, the source files have a nontrivial dependency that requires compiling them in a certain order. A standard Makefile (adapted to gfortran ) is provided that allows compiling the code with a simple make command issued in the code directory. For a different compiler just replace the name gfortran in the Makefile . Integrated development systems usually will find out the interdependence of the source files automatically.

In case both techniques are not available, the suggested sequence for translating the source files is: matinv.f90 --- params.f90 --- fields.f90 --- energy.f90 --moment.f90 --- fragments.f90 --- mfield.f90 --- static.f90 --dynamic.f90 --- info gnuplot.f90 --- info util.f90 --- init.f90

--- inout.f90 --- main3d.f90

The executable program is called tdhf.exe

. To run the code it is suggested to put the printer output into a file by using a command such as (for Linux)

./tdhf.exe > out.txt &

Sample input files for005 are provided in the subdirectories Stat and Dyn for a static and a dynamic calculation, respectively. Since a dynamic calculation requires static wave functions, static calculations always have to be run before one or many dynamic calculations using these wave functions for the initial conditions.

A detailed description of the input is given in the next section.

The code contains the dimensioning of the wave functions nx , ny , nz , and npsi as PARAMETER variables in source file patams.f90

. The correct values have to be inserted here and the code has to be recompiled for each application.

The procedure for a complete calculation therefore looks like this:

1. Run one or several static calculations. For each insert the desired values of nx , ny , nz , and npsi into params.f90

, recompile the code, and run it. The principal result should be a file containing the static wave functions.

2. Once all the static wave functions have been computed, set up params.f90

for a larger grid and for a total number of wave functions npsi equal to the sum of those in the fragments. Recompile and then run it with the dynamic for005 as input.

8 A Code for Three-Dimensional Static and TDHF with a Simplified Effective Force

It should be mentioned that in the tradition of scientific codes this code does not attempt to catch all input errors except for the most serious ones.

5 Input Data

Note that the code uses units based of fm for distance, fm/c for time, and MeV for energy.

Input for the code is provided in a file for005 . For ease of use it is in several

NAMELIST s. A description is given in the following:

1. Namelist files allow defining the names of some files written in the course of the calculation. Output can be suppressed by setting these to ‘none’ or

‘NONE’ .

• restartfile : name of the restart file.

• staticfile : name of the file written at the end of a static calculation to save the converged wave functions.

2. Namelist main defines the full set of parameters for the static calculation; some of these are also used in the time-dependent calculation.

• imode determines whether a static imode=1 or dynamic imode=2 calculation is desired. In the dynamic case, further input is needed from namelist dynamic (see below).

• dx is the spatial grid spacing in fm.

• t0 and t3 are the parameters of the BKN force as defined in 1.

• radinx , radiny , radinz determine the scaling in the three coordinate directions of the oscillator wave functions used to initialize the static iterations. This allows starting with a deformed shape.

• itrbx determines the maximum allowed number of static iterations. When these are reached, the wave functions are written into the static file and the code stops. If necessary, it can be restarted for more iterations if a restart file was produced.

• serr defines the convergence criterion. If the sum of fluctuations in the single-particle energies 6 becomes less that serr , convergence is assumed, the code writes the output wave functions and terminates.

• irest and mrest control the restart facility. A restart file is written in every mrest iterations or time steps.

irest=0 indicates a new calculation, while a nonzero value corresponds to the iteration or time step number when the restart file was written.

• iprint , mprint , and mplot control printed output. This can be reduced to a minimum by setting iprint=0 .

mprint indicates the frequency of detailed output.

mplot determines the frequency of three outputs: a simple printer plot of the density in the xz plane, a file containing gnuplot commands for a better quality plot (for details examine subroutine plot gnu in

6 Output Description 9 source file info gnuplot.f90

, and a file with extension tdd that contains the full density in binary form for further analysis (the exact contents can be determined by examining subroutine write densities in source file inout.f90

.

• pre iter , x0dmp , e0dmp , and x0dmp pre are the parameters controlling the static iteration as discussed in Sect. 2.2.

3. Namelist dynamic describes the parameters specific to the dynamic calculation.

• nt is the number of time steps desired.

• dt is the size of the time step in fm/c.

• mxp is the order of expansion taken for the exponential in the time-development operator. The default value is 6 corresponding to the specific expansion shown in Eq. (10).

• terr (default value 10

10 ) limits the same expansion order based on accuracy. If for a wave function the deviation of the norm from 1 becomes less than terr , the expansion is terminated.

• nof is the number of fragments (i.e., separate nuclei to be used for initialization). Each has its wave function read in from a static wave function file and and is inserted into the computational grid as defined by the following fragment-specific quantities.

• filename(j) contains the file name for the static wave functions of fragment j .

• fmass(j) is an integer giving the mass number of the fragment.

• centf(i,j) is an integer indicating the shift of the center of mass of fragment j with respect to the center of the time-dependent grid in index units

(corresponding to multiples of dx in physical units.) i=1,2,3 selects the coordinate direction.

• boostf(i,j) determines the boost of fragment j in coordinate direction i . It is given in terms of the total kinetic energy of the fragment, but with a sign indicating the direction along or opposite to the coordinate axis.

6 Output Description

6.1 Common for Static and Dynamic Modes

The “printer” output which can be redirected by the user into a file contains regular information on the state of the calculation, which is mostly identical for static and dynamic modes. There is a simple printer plot of the density in the xz-plane which serves the purpose of being able to rapidly judge what the calculation is doing.

Ahead of this is a listing of iteration or time step number, total, kinetic, and meanfield energy as well as — for the static calculation — the relative change in total energy and the single-particle energy fluctuations. Below the density plot properties

10 A Code for Three-Dimensional Static and TDHF with a Simplified Effective Force of the single-particle states are written: the energy fluctuations, norm, kinetic, and total energy.

The files with extension tdd contain a binary record of the densities at regular intervals in time or static iteration. The detailed contents can be gleaned by looking at subroutine write densities in source file inout.f90

.

6.2 Static Calculation

The file conver.res

contains a protocol of convergence. As functions of the iteration number it lists the total energy and the mean square deviations of the singleparticle energies as given in Sect. 6. Note that the latter are much more critical than the energy: it takes a lot more iterations to stabilize the single-particle wave functions than the total energy.

The final result of the static calculation is written onto the file whose name is determined by the variable staticfile . Its contents can be seen by examining subroutine putpsi in source file inout.f90

.

6.3 Dynamic Calculation

The file dynamic.res

contains a listing of the total energy and the kinetic energy as functions of time.

The file plot2D.gnu

has the source code for generating a series of twodimensional density plots in the xz-plane using gnuplot . The data for the plots are contained in the files “

*.rho

”.

7 Suggestions for Calculations

The sample static calculation calculates a pseudo-

16

O nucleus. To judge the correct running of the code, the resulting output files are provided in output.zip

. Note that the grid size 24

×

24

×

24 and number of nucleons (16, corresponding to four wave functions) are defined in params.f90

, not in for005 .

The static sample takes two of these nuclei, inserts them into a larger grid of

32 × 24 × 32 points at positions ( − 6 , 0 , 2) and ( + 6 , 0 , − 2) and sets them motion with a total kinetic energy each of 10 MeV, but in opposite direction along the

x-axis. This is followed for 6,000 time steps. The resulting output is again provided as output.zip

.

Here are a few suggestions for some calculations:

Test the accuracy of the code by examining the dependence of the results on the size of dx or dt . Another interesting experiment is to shift the center of the static nucleus to a grid point instead of having it in the center of a cell (this can be achieved by changing the computation of the arrays x , y , and z in grids.f90

).

References 11

For the time-dependent code it is a crucial test to see whether a single nucleus can propagate through the grid at constant speed. Because of the periodic boundary conditions it should traverse the computational cell repeatedly.

The most interesting aspects of TDHF are the impact parameter and energy dependence. Compare central to peripheral collisions, varying the energy in both cases. Fusion is assumed to occur if the fragments stick together for a long time.

How does this depend on impact parameter and energy?

The absence of Coulomb repulsion and the relatively efficient computation made possible by the simple force model allow the simulation of (unphysical) extremely heavy nuclei. How does particle number affect the collision behavior?

The code can also be used to study oscillations of a single nucleus. To excite them, the initial wave function must be perturbed in the dynamic code, which can be done just after they have been set up. This requires changing the code but should not be too difficult.

References

1. M. Bender, P.-H. Heenen, P.-G. Reinhard, Rev. Mod. Phys. 75, 121 (2003)

2. V. Blum, G. Lauritsch, J.A. Maruhn, P.-G. Reinhard, J. Comp. Phys. 100, 364 (1992)

3. P. Bonche et al., Phys. Rev. C 20, 641 (1979)

4. P. Bonche, S.E. Koonin, J.W. Negele, Phys. Rev. 13, 1226 (1976)

5. R.Y. Cusson, J.A. Maruhn, H.W. Meldner, Phys. Rev. C 18, 2589 (1978)

6. R.Y. Cusson, J.A. Maruhn, H. St¨ocker, Z. Physik A 294, 257 (1980)

7. R.Y. Cusson, R.K. Smith, J.A. Maruhn, Phys. Rev. Lett. 36, 1166 (1976)

8. K.T.R. Davies, H.T. Feldmeier, H. Flocard, M.S. Weiss, Phys. Rev. C 18, 2631 (1978)

9. K.T.R. Davies, S.E. Koonin, Phys. Rev. C 23, 2042 (1981)

10. K.T.R. Davies, V. Maruhn-Rezvani, S.E. Koonin, J.W. Negele, Phys. Rev. Lett. 41, 632 (1978)

11. K.T.R. Davies, K.R. Sandhya Devi, S.E. Koonin, M.R. Strayer, in Heavy Ion Science, Nuclear

Science, edited by D.A. Bromley (Plenum, New York, NY, 1985) vol. 3, p. 3.

12. K.T.R. Davies, K.R. Sandhya Devi, M.R. Strayer, Phys. Rev. C 20, 1372 (1979)

13. K.T.R. Davies, K.R. Sandhya Devi, M.R. Strayer, Phys. Rev. Lett. 44, 23 (1980)

14. K.T.R. Davies, K.R. Sandhya Devi, M.R. Strayer, Phys. Rev. C 24, 2576 (1981)

15. Lu Guo, J.A. Maruhn, P.-G. Reinhard, Phys. Rev. C 76, 014601 (2007)

16. Lu Guo, J.A. Maruhn, P.-G. Reinhard, Y. Hashimoto, Phys. Rev. C 77, 041301 (2008)

17. J.A. Maruhn, R.Y. Cusson, Nucl. Phys. A 270, 471 (1976)

18. J.A. Maruhn, K.T.R. Davies, M.R. Strayer, Phys. Rev. C 31, 1289 (1985)

19. J.A. Maruhn, P.-G. Reinhard, P.D. Stevenson, M.R. Strayer, Phys. Rev. C 74, 027601 (2006)

20. J.W. Negele, Rev. Mod. Phys. 54, 913 (1982)

21. P.-G. Reinhard, R.Y. Cusson, Nucl. Phys. A 378, 418 (1982)

22. P.-G. Reinhard, P.D. Stevenson, D. Almehed, J.A. Maruhn, M.R. Strayer, Phys. Rev. E 73,

036709 (2006)

23. K.R. Sandhya-Devi, M.R. Strayer, Phys. Lett. 77B, 135 (1978)

24. A.S. Umar et al., Phys. Rev. C 32, 172 (1985)

25. A.S. Umar, V.E. Oberacker, J.A. Maruhn, Eur. Phys. J. A 37, 245 (2008)

26. C.Y. Wong, J.A. Maruhn, T.A. Welton, Phys. Lett. 66B, 19 (1977)

Download