You are on page 1of 44

RADIAL: a FORTRAN subroutine package for

the solution of the radial Schrödinger and


Dirac wave equations

F. Salvat1,2 , J.M. Fernández-Varea1 and W. Williamson, Jr.2

1
Facultat de Fı́sica (ECM). Universitat de Barcelona.
Diagonal 647, 08028 Barcelona, Spain

2
Department of Physics and Astronomy. The University of Toledo.
Toledo, Ohio 43606, USA

Abstract
The FORTRAN 77 subroutine package RADIAL for the numerical solution of the Schrödin-
ger and Dirac wave equations for central fields is described. The considered fields are
such that the function V(r) ≡ rV (r) is finite for all r and tends to constant values for
r → 0 and r → ∞. This includes finite-range fields as well as combinations of Coulomb
and short-range fields. The potential energy function V(r) used in the calculation is the
natural cubic spline that interpolates a table of values provided by the user. The radial
wave equations are solved by using piecewise exact power series expansions of the radial
functions, which are summed up to the prescribed accuracy so that truncation errors
can be completely avoided. Normalized radial wave functions, eigenvalues for bound
states and phase shifts for free states are evaluated.

Keywords: Schrödinger equation. Dirac equation. Central fields. Bound states, eigen-
values. Free states, phase shifts. Coulomb functions. Bessel functions.

Work partially supported by the Dirección General de Investigación Cientı́fica y Técnica


(Spain), contract no. PB92-0801-C02-01, and the United States Department of Energy,
DE-AC04-94AL85000.

Date: 3 February, 2016.


1 Introduction

The calculation of central-field radial wave functions is a basic tool in atomic and nuclear
physics. In spite of its practical importance, computer programs, capable of solving the
radial wave equations for an arbitrary field V (r) given in numerical form, are not gen-
erally available. In this report we describe an algorithm, and a FORTRAN 77 subroutine
package called RADIAL, for the numerical solution of the radial Schrödinger and Dirac
equations for a wide class of central fields. The potentials considered are such that the
function V(r) ≡ rV (r) is finite for all r and reaches constant values when r → 0 and
r → ∞. This includes finite-range fields as well as Coulomb fields and any combination
of Coulomb and short-range fields (the so-called modified Coulomb fields).
The present report is intended to serve as a manual of the subroutine package. You
can obtain it by running the file RADIAL.TEX, which should accompany the FORTRAN
source files, through LATEX and printing the output file. For the sake of completeness, we
offer a detailed description of the solution algorithm, including the complete collection
of formulae and numerical recipes used in the program. This information may be helpful
to correct possible bugs in the computer code (which do have a tendency to come into
action when programs leave the author’s hand).
The numerical procedures adopted to solve the radial differential equations have
been described by Salvat and Mayol (1991). The function V(r) used in the calculations
is the natural cubic spline (see appendix A) that interpolates the values of a table
provided by the user. Interpolation errors introduced by the spline approximation can
be made as small as required by simply specifying the values of the potential function
in a sufficiently dense grid of points. The responsibility for ensuring that the effect
of these interpolation errors on the calculation results is negligible rests with the user.
In this respect, it may be helpful to plot the input potential table together with the
spline interpolation and check that the spline does not wiggle between the input data
points. The radial wave equations for the cubic spline field are solved by using the exact
power-series expansions of the radial functions, which are summed up to a prescribed
accuracy. This procedure allows a complete control of truncation errors. The calculation
results are thus only affected by unavoidable round-off errors. In practice, the algorithm
permits different levels of accuracy; the price to be paid for a more accurate result is
merely a longer calculation time. With double-precision arithmetic, results accurate to
up to 13 or 14 decimal figures can be obtained.
The FORTRAN 77 subroutine package RADIAL presented here has been tailored to
be as easy to use as possible. Although it is largely based on the RADWEQ package of
Salvat and Mayol (1991), it is considerably more versatile and general. The main added
features are:

1. Modified Coulomb fields (i.e. fields such that lim r→∞ V(r) = Ze2 , a constant) are
considered.

2. Free-state wave functions are properly normalized.

1
3. The radial functions are calculated for a specified (arbitrary) grid of points, which
may be different from the grid where the potential function is tabulated.

4. The package includes a group of high-accuracy subroutines that compute Schrö-


dinger- and Dirac-Coulomb functions, and spherical Bessel functions, which are
required to normalize free-state radial functions.

The input/output of both packages is identical, so that programs using the old RADWEQ
package can be directly linked to RADIAL; however, the calculation with RADIAL may be
slightly slower in some cases.

2 Radial wave equations

2.1 Schrödinger equation

In non-relativistic quantum mechanics, the stationary states of a particle in a central


potential V (r) are described by the time-independent Schrödinger equation

HS ψ(r) = Eψ(r) (1)

with the Hamiltonian


h̄2 2 h̄2 1 ∂2
!
1 2
HS = − ∇ + V (r) = − r − L + V (r), (2)
2M 2M r ∂ r2 r2
where M is the mass of the particle and h̄ is the reduced Planck constant. Since the
orbital angular momentum operator (in units of h̄) L = (1/h̄)r × p commutes with HS ,
we can construct simultaneous eigenfunctions of HS , L2 and Lz . These solutions of the
Schrödinger equation are of the form
1
ψ(r) = P (r)Y`,m (r̂), (3)
r
where the spherical harmonics Y`,m (r̂) are eigenfunctions of L2 and Lz (with eigenvalues
`(` + 1) and m, respectively) and the reduced radial function P (r) satisfies the radial
equation
h̄2 d2 P
" 2 #
h̄ `(` + 1)
− + + V (r) P = EP. (4)
2M dr2 2M r2
Since rV (r) is finite everywhere, we can require that the wave function ψ(r) also be
finite in all space. This implies that the radial function P (r) behaves as r`+1 near the
origin (see subsection 4.1).
When V (r) takes negative values in a certain region, bound states may exist, where
the particle is constrained to move within a limited volume, for a discrete set of negative
eigenvalues. Discrete energy levels can be identified by the angular momentum quantum
number ` and the principal quantum number n. Alternatively, instead of n, the radial

2
quantum number nr = n − (` + 1) can be used to label the negative energy levels. The
radial quantum number has a more direct geometrical significance: it gives the number
of nodes of the radial function, i.e. the zeros of P (r) other than those at r = 0 and
r = ∞. It is instructive to consider the radial motion under the effective potential
h̄2 `(` + 1)
Veff (r) = + V (r).
2M r2
From the structure of the differential equation (4), it can be easily shown that the nodes
of the radial function are located in the classically allowed region of motion. Evidently,
the set of inflexion points (d2 P/dr2 = 0) of the radial function consists of the nodes of
P (r) and the turning points of the radial motion (Veff = E). In the classically forbidden
region, P (r) increases, or decreases, monotonously when r increases. As eq. (4) does
not depend on the magnetic quantum number m, each energy level En` is at least, 2` + 1
times degenerate (the energy levels of a pure Coulomb field are also degenerate with
respect to `). For bound states, the radial function is normalized by requiring
Z Z ∞
ψ ∗ (r)ψ(r) dr = P 2 (r) dr = 1. (5)
0

For free states (E > 0, continuum spectrum), the wave function will be normalized
to the asymptotic form
π
 
P (r) ∼ sin kr − ` − η ln 2kr + δ , (6)
2
where
p √
k≡ = 2M E/h̄ (7)

is the particle wave number, η is a constant (=0 for finite-range fields) and δ is the phase
shift.

2.2 Dirac equation

Stationary states of a relativistic particle with spin 1/2 in the field V (r) are described
by the Dirac equation
HD ψ(r) = (E + M c2 )ψ(r) (8)
with the Hamiltonian
HD = −i ch̄ α ~ + βM c2 + V (r),
~ ·∇ (9)
where α
~ = (α1 , α2 , α3 ) and β are 4×4 matrices. In the spinor representation
! !
0 ~σ I2 0
α
~= , β= . (10)
~σ 0 0 −I2

Here, ~σ stands for the familiar Pauli spin matrices


! ! !
0 1 0 −i 1 0
σ1 = , σ2 = , σ3 = , (11)
1 0 i 0 0 −1

3
and I2 is the 2×2 unit matrix. In this representation, ψ(r) is a four-component function.
We note that the quantity E in eq. (8) is the energy of the particle excluding the rest
energy M c2 ; in the non-relativistic limit (c → ∞), the “eigenvalues” E of the Dirac
equation (8) tend to the eigenvalues of the Schrödinger equation (1) (see below).
The angular momentum operator J = L + S, where L is the orbital angular momen-
tum operator and S = (1/2)~σ the spin operator, commutes with the Dirac Hamiltonian.
The operator
   
1
− J 2 − L2 + 4
I2 0
K ≡ −β (~σ · L + 1) =  
1
  (12)
0 J 2 − L2 + 4
I2

commutes with HD , J 2 and Jz . Therefore, we can construct simultaneous eigenfunctions


of HD , J 2 , Jz and K, with eigenvalues E + M c2 , j(j + 1), m and κ, respectively. Such
solutions of the Dirac equation can be written as1
 
1 iP (r) Ωκ,m (r̂)
ψ(r) =  , (13)
r Q(r) Ω−κ,m (r̂)

where P (r) and Q(r) are the upper- and lower-component radial functions and the
spherical spinors

Ωκ,m (r̂) ≡ Ω`j,m (r̂) =


X
h`, 1/2, m − µ, µ|j, mi Y`,m−µ (r̂)χµ
µ=±1/2
 
h`, 1/2, m − 1/2, +1/2|j, mi Y`,m−1/2 (r̂)
=   (14)
h`, 1/2, m + 1/2, −1/2|j, mi Y`,m+1/2 (r̂)

are simultaneous eigenfunctions of L2 , S 2 , J 2 and Jz with eigenvalues `(` + 1), 3/4,


j(j + 1) and m, respectively. The quantities h`, 1/2, m − µ, µ|j, mi are Clebsch-Gordan
coefficients, and the spinors χµ are eigenfunctions of S 2 and Sz with eigenvalues 3/4 and
µ = ±1/2. The quantum numbers κ, j and ` are related by

κ = (` − j)(2j + 1) = −(j + 1/2)σ, σ ≡ −sgn(κ) = −|κ|/κ,


j = |κ| − 1/2 = ` + σ/2, (15)
` = |κ| − (1 + σ)/2 = j − σ/2.

We see that the relativistic wave function (13) is not an eigenfunction of L2 ; the index
` used in spectroscopic notation is the eigenvalue of the upper-component spinor and
serves to indicate the parity of ψ(r). The radial functions P (r) and Q(r) satisfy the
coupled equations
dP κ E − V + 2M c2
= − P − Q,
dr r ch̄
(16)
dQ E−V κ
= P + Q.
dr ch̄ r
1
The Dirac wave function (13) conforms to the phase convention adopted by Walker (1971); in the
alternative phase convention (see e.g. Rose, 1961) the radial function Q(r) has the opposite sign.

4
Strictly speaking, these equations determine the wave functions for states with pos-
itive total energy (E + M c2 > 0). The Dirac equation admits negative eigenvalues
(E + M c2 < 0), which correspond to antiparticle states. For instance, in the case of a
purely electrostatic field of force, specified by a scalar potential φ(r), the states of an
ordinary electron (negatron) are described by the orbitals (13), whose radial functions
are solutions of eqs. (16) with V (r) = −eφ(r), where e is the absolute value of the
electron charge. Negative energy states for such a field represent positron states, they
are of the form (see e.g. Rose, 1961, p. 160)
 
1 Q(r) Ω−κ,−m (r̂)
ψ(r) =  , (17)
r −iP (r) Ωκ,−m (r̂)

where the radial functions P (r) and Q(r) satisfy eqs. (16) with the potential function
V (r) = eφ(r).
As in the non-relativistic theory, when V (r) takes negative values in a certain region,
bound states may exist for a discrete set of negative eigenvalues. Discrete energy levels
are now identified by the quantum number κ and either the principal quantum number
n or the radial quantum number nr . Again, nr gives the number of nodes of P (r), which
occur only in the classically allowed region of movement (Rose, 1961). Each bound level
is, at least, 2j + 1 times degenerate (the eigenstates of a pure Coulomb field with the
same ` and j = `±1/2 have the same energy). Adequate normalization for bound states
is Z Z ∞h i

ψ (r)ψ(r) dr = P 2 (r) + Q2 (r) dr = 1. (18)
0

Dirac free states (E > 0) will be normalized in such a way that the radial function
P (r) asymptotically oscillates with unit amplitude (cf. eq. (6)),
π
 
P (r) ∼ sin kr − ` − η ln 2kr + δ , (19)
2
where q
p E(E + 2M c2 )
k≡ = (20)
h̄ ch̄
is the relativistic wave number, η is a constant (=0 for finite range fields) and δ is the
phase shift.
It is worth noting that in the limit E − V  2M c2 , the radial eqs. (16) reduce to
!
ch̄ κ dP
Q= 2
− P− (21)
2M c r dr
and
d2 P
" #
κ(κ + 1) 2M
2
= − 2 (E − V ) P. (22)
dr r2 h̄
Eq. (21) shows that the lower (small) component Q(r) vanishes in the non-relativistic
limit (c → ∞). Using the fact that κ(κ + 1) = `(` + 1), eq. (22) is seen to coincide
with the Schrödinger equation (4), and therefore, in the non-relativistic limit the upper
(large) component P (r) reduces to the Schrödinger radial function.

5
2.3 Normalization of free-state radial wave functions

As free-state wave functions are not square integrable, they cannot be assigned a finite
norm. Instead it is natural to require that their scalar product be proportional to a delta
function. In certain applications, it is convenient to use Dirac free-state wave functions
normalized on the energy scale, i.e.
Z ∞
[PEκ (r)PE 0 κ (r) + QEκ (r)QE 0 κ (r)] dr = δ(E − E 0 ). (23)
0

For Schrödinger free states, the energy normalization condition reads


Z ∞
PE` (r)PE 0 ` (r) dr = δ(E − E 0 ), (24)
0

which can be considered as the non-relativistic limit (c → ∞) of eq. (23). Radial


functions normalized on the energy scale have the asymptotic form (cf. eqs. (6) and
(19))
π
 
PEκ (r) ∼ AE sin kE r − ` − ηE ln 2kE r + δE , (25)
2
where AE , ηE and δE are constants and kE is the wave number given by eq. (20). The
asymptotic behaviour of the lower component Dirac function is determined by the first
of eqs. (16). Neglecting terms of order (1/r), we get
s
E π
 
QEκ (r) ∼ −AE 2
cos kE r − ` − ηE ln 2kE r + δE . (26)
E + 2M c 2

To determine the normalization constant AE , we consider the radial eqs. (16)

0 κ E − V + 2M c2
PEκ + PEκ = − QEκ , (27)
r ch̄
κ E−V
Q0Eκ − QEκ = PEκ , (28)
r ch̄
where the primes denote differentiation with respect to r. Multiplying eqs. (27) and
(28) from the left by QE 0 κ and PE 0 κ respectively,

0 κ E − V + 2M c2
Q E0κ + QE κ PEκ = −
PEκ 0 QE 0 κ QEκ ,
r ch̄
κ E−V
PE 0 κ Q0Eκ − PE 0 κ QEκ = PE 0 κ PEκ ,
r ch̄
and subtracting from each of these two equations the analogous ones obtained by inter-
changing E and E 0 everywhere, we get

0 κ E0 − E
Q E0κ PEκ − QEκ PE0 0 κ
+ (QE κ PEκ − QEκ PE κ ) =
0 0 QE 0 κ QEκ ,
r ch̄
κ E − E0
PE 0 κ Q0Eκ − PEκ Q0E 0 κ − (PE 0 κ QEκ − PEκ QE 0 κ ) = PE 0 κ PEκ .
r ch̄

6
Subtracting the second from the first of these equations we have
ch̄ d  
PEκ PE 0 κ + QEκ QE 0 κ = Q P 0
Eκ E κ − P Eκ E κ .
Q 0
E − E 0 dr
Then, for any value of r,
Z r
ch̄ h i
(PEκ PE 0 κ + QEκ QE 0 κ ) dr = QEκ (r)P 0
Eκ (r) − P Eκ (r)Q 0
Eκ (r) , (29)
0 E − E0
since PEκ (0) = QEκ (0) = 0. Notice that eq. (29) applies to free and bound states. When
r → ∞, it shows that a bound state is orthogonal to all states with different energies.
For free states and large enough r-values, introducing expressions (25) and (26) into
eq. (29) we obtain
Z r
(PEκ PE 0 κ + QEκ QE 0 κ ) dr
0
s s 
ch̄  E E0 
= 0
AE AE 0  cos φE sin φE 0 − sin φE cos φE 0 
E−E E + 2M c2 E 0 + 2M c2
s 
ch̄  E h i 
= A A
E E 0 sin (kE − kE 0 ) r + RE,E 0 (r) , (30)
E − E0  E + 2M c2 

where φE stands for the argument of the trigonometric functions in expressions (25) and
(26). The quantity
s
E  h i
RE,E 0 (r) ≡ cos φE sin φE 0 − sin (kE − kE 0 ) r
E + 2M c2
s
E0
− sin φE cos φE 0 (31)
E 0 + 2M c2
is seen to vanish when E = E 0 . If E 6= E 0 , RE,E 0 (r) oscillates infinitely rapidly as r → ∞
and contributes nothing. Hence
Z ∞
(PEκ PE 0 κ + QEκ QE 0 κ ) dr
0
s
E kE − kE 0 1
 h i 
= AE AE 0 ch̄ lim sin (k E − k E 0) r
E + 2M c2 E − E 0 r→∞ kE − kE 0
E kE − kE 0 E
= AE AE 0 0
π δ (kE − kE 0 ) = AE AE 0 π δ (E − E 0 )
kE E − E kE
E
= A2E π δ (E − E 0 ) . (32)
kE
Comparing this result with eq. (23), we see that
s
kE
AE = (Dirac). (33)
πE

7
Therefore, the radial function PEκ (r) of Dirac free states normalized in the energy scale
oscillates asymptotically with amplitude AE . The normalizing factor for Schrödinger
waves can be obtained as the non-relativistic limit of expression (33)
s s
kE 2M 1
AE = = (Schrödinger). (34)
πE h̄2 πkE
The subroutine package RADIAL gives free-state radial functions normalized to unit am-
plitude, they must be multiplied by the constant factor AE to get wave functions nor-
malized on the energy scale.
Another normalization for free states, frequently used in scattering theory, is the
so-called “wave-number” normalization,
Z ∞
[PEκ (r)PE 0 κ (r) + QEκ (r)QE 0 κ (r)] dr = δ(kE − kE 0 ). (35)
0
From the relation
dkE
δ(E − E 0 ) =δ(kE − kE 0 ),
dE
it follows that the wave-number normalization constant is
s v
dE u E + 2M c2
u
(wn)
AE = AE =t (Dirac), (36)
dkE π (E + M c2 )
where use has been made of eq. (20). In the non-relativistic limit, we obtain the well-
known result s
(wn) 2
AE = (Schrödinger). (37)
π

3 Coulomb functions

In the “outer” asymptotic region, where the potential function V(r) reaches the constant
value Ze2 ≡ limr→∞ V(r), the free-state wave function can be expressed as a linear
combination of the regular and irregular Coulomb functions. These are the positive
energy solutions of the radial equations with the Coulomb potential
Ze2
V (r) = . (38)
r
Normalized wave functions are obtained by matching the “inner” numerical solution with
the properly normalized asymptotic solution (see section 6). Evidently, the feasibility of
this procedure rests on the availability of fast numerical algorithms for the calculation of
Coulomb functions. A variety of procedures to compute Schrödinger-Coulomb functions
can be found, e.g. in the papers of Fröberg (1955) and Bardin et al., (1972). A more
exhaustive list of references on this topic is given by Barnett (1981). To the best of our
knowledge, general methods to calculate Dirac-Coulomb irregular functions appear to be
inexistent to date. In this section we describe the algorithms adopted in RADIAL for the
calculation of Schrödinger- and Dirac-Coulomb functions. The radial Dirac equations
for a Coulomb field are reformulated in a way that permits the evaluation of the regular
and irregular solutions in terms of the Schrödinger-Coulomb functions.

8
3.1 Schrödinger-Coulomb functions

The radial Schrödinger equation (4) for the Coulomb field (38) reads

h̄2 d2 U` h̄2 `(` + 1) Ze2


" #
− + + U` = E U ` , (39)
2M dr2 2M r2 r
which can be recast in a dimensionless form by introducing the variable x = kr, where
k is the wave number –see eq. (7). We have

d2
!
2η λ(λ + 1)
2
+1− − Uλ (η, x) = 0, (40)
dx x x2
with λ = `. The dimensionless quantity
Ze2 M Ze2
η= = (41)
h̄2 k h̄v
is the Sommerfeld parameter. v is the velocity of the particle. In non-relativistic theory,
the angular momentum quantum number ` can only take positive integer values. For
the sake of generality, however, we consider that λ can take any real value larger than
−1. It will be shown in subsection 3.4 that Dirac-Coulomb functions are expressable as
Coulomb functions with non-integer λ values.
The regular solution Fλ (η, x) and the irregular solution Gλ (η, x) of eq. (40) can be
defined by their behaviour near the origin

Fλ (η, x) ∼ Cλ (η)xλ+1 , Gλ (η, x) ∼ x−λ /[(2λ + 1)Cλ (η)], (42)

where
|Γ(λ + 1 + iη)|
Cλ (η) = 2λ exp(−ηπ/2) (43)
Γ(2λ + 2)
and Γ stands for the complex gamma function.
From the differential equation (40), it is seen that the Coulomb functions Fλ and Gλ
have a turning point at q
xTP [λ] = η + η 2 + λ(λ + 1). (44)
For x < xTP [λ], Fλ and Gλ are positive; Fλ increases monotonously and Gλ decreases
monotonously with increasing x. For x > xTP [λ], Fλ and Gλ have an oscillatory be-
haviour. The normalization constant in eqs. (42) is such that the magnitude of the
oscillations approaches unity for large x (cf. eq. (6)):

Fλ (η, x) ∼ sin θλ , Gλ (η, x) ∼ cos θλ , (45)

with
π
θλ = x − λ − η ln 2x + ∆λ , (46)
2
where the Coulomb phase shift ∆λ is given by

∆λ = arg Γ (λ + 1 + iη) . (47)

9
Although there is a close relationship between Coulomb functions and confluent
hypergeometric functions (see e.g. Morse and Feshbach, 1953; Erdélyi et al., 1953),
the strict summation of the hypergeometric series is of little help for the numerical
evaluation of the Coulomb functions, except in limited regions (see e.g. Bardin et al.,
1972). The calculation algorithm adopted here is the continued fraction method due
to Steed (Barnett et al., 1974), which is generally applicable for x > xTP [λ]. For
sufficiently large values of x, however, we use an asymptotic expansion, which is much
more effective. In the following, we quote the properties of Coulomb functions required
for the derivation of Steed’s algorithm.
The functions for successive λ-values are linked by recurrence relations (see e.g.
Fröberg, 1955). The downward recursion, for decreasing orders, is

Rλ Uλ−1 = Sλ Uλ + Uλ0 , (48)


0
Uλ−1 = Sλ Uλ−1 − Rλ Uλ , (49)

and the upward recursion is

Rλ+1 Uλ+1 = Sλ+1 Uλ − Uλ0 , (50)


0
Uλ+1 = Rλ+1 Uλ − Sλ+1 Uλ+1 . (51)

Here again Uλ stands for either Fλ or Gλ , and the primes denote differentiation with
respect to x. The coefficients for λ 6= 0 are
1q 2 λ η
Rλ = λ + η2, Sλ = + . (52)
λ x λ
Combining the relations (50) and (51) we obtain

Sλ+1 + Sλ Rλ
Uλ+1 = Uλ − Uλ−1 . (53)
Rλ+1 Rλ+1
Recursion relations are said to be stable when the quantities obtained from them do not
decrease monotonously. Otherwise, there is a gradual loss of accuracy, due to the finite
number of digits in the floating point representation, which may eventually invalidate
the results. For x < xTP [λ], Fλ decreases and Gλ increases for decreasing λ. Thus, the
downward recursion for Fλ and the upward recursion for Gλ are stable. For x > xTP [λ]
the functions are always of the order of unity and, hence, both recursions are stable.
Further useful properties of the Coulomb functions are the Wronskian

W ≡ Fλ0 Gλ − Fλ G0λ = 1 (54)

and the relation


Wλ ≡ Fλ Gλ+1 − Fλ+1 Gλ = 1/Rλ+1 , (55)
which follows from eq. (54) by eliminating the derivatives with the aid of eq. (50).

10
3.2 Steed’s continued fraction method

Steed’s method for the evaluation of Coulomb functions (Barnett et al., 1974) is based
on the fact that, for x ≥ xTP [λ], the quantities
Fλ0 G0λ + iFλ0
fλ ≡ and pλ + iqλ ≡ (56)
Fλ Gλ + iFλ
can be expressed as rapidly converging continued fractions. We evaluate these continued
fractions by using the modified Wallis’ algorithm described in appendix B. Equations
(56) can then be solved for Fλ0 , Gλ and G0λ in terms of Fλ ,

f λ − pλ pλ (fλ − pλ ) − qλ2
Fλ0 = fλ Fλ , Gλ = Fλ , G0λ = Fλ . (57)
qλ qλ
The absolute value of Fλ , i.e. the scaling factor in expressions (57), is determined from
the Wronskian (54)
!1/2

Fλ = ± , (58)
(fλ − pλ )2 + qλ2
and, finally, its sign is obtained during the evaluation of fλ (see below). Notice that
1
qλ = . (59)
Fλ2 + G2λ

3.2.1 Continued fraction for fλ

Consider the sequences (n = 0,1,2, . . . )

An ≡ c11 Fn+λ+1 + c12 Gn+λ+1 ,


(60)
Bn ≡ c21 Fn+λ+1 + c22 Gn+λ+1 ,

where cij are four constants. According to eq. (53), An and Bn satisfy the recurrence
relations
An = An−1 bn + An−2 an ,
(61)
Bn = Bn−1 bn + Bn−2 an ,
with v
Rn+λ u (n + λ)2 + η 2 n+λ+1
u
an = − = −t 2 2
(62)
Rn+λ+1 (n + λ + 1) + η n+λ
and !
Sn+λ+1 + Sn+λ 2(n + λ) + 1 n+λ+1 η
bn = =q + . (63)
Rn+λ+1 (n + λ + 1)2 + η 2 x n+λ
The constants cij are fixed so that

A−1 = c11 Fλ + c12 Gλ = 1, A0 = c11 Fλ+1 + c12 Gλ+1 = b0 ,


(64)
B−1 = c21 Fλ + c22 Gλ = 0, B0 = c21 Fλ+1 + c22 Gλ+1 = 1.

11
Using the properties (54) and (55) of the Coulomb functions, we obtain

c11 = (Gλ+1 − b0 Gλ ) Rλ+1 , c12 = (b0 Fλ − Fλ+1 ) Rλ+1 ,


(65)
c21 = −Gλ Rλ+1 , c22 = Fλ Rλ+1 .

From eqs. (61) and (64), and making use of the results given in appendix B, it is
clear that
An a1 a2 a3
lim = b0 + .
n→∞ B
n b1 + b2 + b3 + · · ·
On the other hand, since Fn+λ+1 → 0 and Gn+λ+1 → ∞ as n → ∞, from eq. (60) it
follows that
An c12 Fλ+1
lim = = b0 − . (66)
n→∞ B c22 Fλ
n
Therefore,
Fλ+1 a1 a2 a3
=− . (67)
Fλ b1 + b2 + b3 + · · ·
With the help of eq. (50), we eliminate Fλ+1 to obtain the following continued fraction
for fλ
F0 a1 a2 a3
fλ = λ = Sλ+1 + Rλ+1 . (68)
Fλ b1 + b2 + b3 + · · ·
The final step is to recast this continued fraction in a form that is more convenient for
numerical evaluation. By means of the equivalence transformation (see appendix B)
q
cn = x(n + λ)(n + λ + 1)Rn+λ+1 = x(n + λ) (n + λ + 1)2 + η 2 ,

we obtain the transformed continued fraction


H1 H2 H3
fλ = Sλ+1 + (69)
K1 + K2 + K3 + · · ·
with
λ+2h i
H1 = c1 Rλ+1 a1 = − (λ + 1)2 + η 2 x,
λ+1
Hn = cn−1 cn an = − [(n + λ)2 − 1] [(n + λ)2 + η 2 ] x2 , (n > 1) (70)

Kn = cn bn = [2(n + λ) + 1] [(n + λ)(n + λ + 1) + ηx] .

The sign of Fλ , see eq. (58), is obtained during the calculation of fλ using the following
trick. We observe that as n → ∞ the value of Bn , eq. (60), tends to c22 Gn+λ+1 =
Fλ Rλ+1 Gn+λ+1 and Gn+λ+1 → +∞. Therefore, the sign of Fλ is the sign of the n-th
denominator Bn when the continued fraction has converged.

3.2.2 Continued fraction for pλ + iqλ

The boundary conditions at infinity, eq. (45), suggest the replacement

Gλ + iFλ = yλ (η, x) exp(iθλ ). (71)

12
Then, the function yλ (η, x) satisfies the differential equation
d2
!
d 1
2
+ 2i(1 − η/x) + (iη − λ)(iη + λ + 1) 2 yλ (η, x) = 0. (72)
dx dx x
Introducing the variable z ≡ (2ix)−1 , this equation transforms into the hypergeometric
equation
2
!
2 d d
z + [z(a + b + 1) − 1] + ab 2 F0 (a, b; z) = 0 (73)
dz 2 dz
with a = iη − λ and b = iη + λ + 1. The solution with the required asymptotic behaviour
(lim x→∞ yλ (η, x) = 1) is
 
yλ (η, x) = 2 F0 iη − λ, iη + λ + 1; (2ix)−1 (74)

ab a(a + 1) b(b + 1)
= 1+ + + ··· (75)
1! (2ix) 2! (2ix)2
The result (74) is exact; the series representation (75) is a known asymptotic form for
Gλ + iFλ . This series is convergent only in the asymptotic sense, i.e. for relatively large
values of x, and the summation must be terminated after the term with the smallest
absolute magnitude (which normally gives a good estimate of the absolute error of the
result).
From the differentiation property

0 d 2 F0
2 F0 (a, b; z) ≡ = ab 2 F0 (a + 1, b + 1; z) (76)
dz
we find
G0 + iFλ0 η ab 2 F0 (a + 1, b + 1; z)
 
pλ + iqλ ≡ λ =i 1− +i 2 . (77)
Gλ + iFλ x 2x 2 F0 (a, b; z)

Also, using (76) in eq. (73), dividing by 2 F00 and rearranging we obtain

2 F0 (a, b; z) 2 F0 (a + 2, b + 2; z)
= 1 − z(a + b + 1) − z 2 (a + 1)(b + 1) .
2 F0 (a + 1, b + 1; z) 2 F0 (a + 1, b + 1; z)

Inverting this equation,


2 F0 (a + 1, b + 1; z) 1
= ,
2 F0 (a, b; z) 2 F0 (a
+ 2, b + 2; z)
1 − z(a + b + 1) − z 2 (a + 1)(b + 1)
2 F0 (a + 1, b + 1; z)

and applying it repeatedly gives the continued fraction

2 F0 (a + 1, b + 1; z) 1 z 2 (a + 1)(b + 1) z 2 (a + 2)(b + 2)
= .
2 F0 (a, b; z) 1 − z(a + b + 1)− 1 − z(a + b + 3)− 1 − z(a + b + 5) − · · ·
Replacing the constants a and b, introducing z = (2ix)−1 and making an equivalence
transformation with cn = 2x we get
2 F0 (a + 1, b + 1; z) 2x (iη − λ + 1)(iη + λ + 2) (iη − λ + 2)(iη + λ + 3)
=
2 F0 (a, b; z) 2(x − η + i)+ 2(x − η + 2i)+ 2(x − η + 3i) + · · ·

13
Finally, from eq. (77), we have

i H1 H2 H3
 
pλ + iqλ = K0 + , (78)
x K1 + K2 + K3 + · · ·
with
K0 = x − η,
Kn = 2(x − η + in), (n ≥ 1) (79)
Hn = (iη − λ − 1 + n)(iη + λ + n).

The FORTRAN 77 subroutine FCOUL calculates Coulomb functions and their deriva-
tives for real η, real λ > −1 and real x > 0. It combines Steed’s method with the
asymptotic expansion (75) using double-precision arithmetic. If x > xTP [λ], the asymp-
totic expansion is tentatively evaluated, and the relative error of the result is estimated
from the magnitude of the term with the smallest absolute value. If this error is less than
10−15 , the Coulomb functions and their derivatives are delivered. Otherwise, Steed’s al-
gorithm is applied, using a maximum of 1000 iterations to evaluate the continued frac-
tions. When these have converged, or when the 1000 iterations have been completed, the
relative error of the resulting function values is determined from the differences between
the last calculated convergents of the continued fractions. Among the results obtained
with the two methods, the subroutine selects the ones with the lesser relative uncer-
tainty. For x > xTP [λ], the delivered values are usually accurate to 13 or 14 decimal
figures.
For x < xTP [λ], only Steed’s method is applicable. In this case the accuracy of the
algorithm worsens with decreasing x, due to the fact that Gλ and G0λ increase without
limit, while Fλ goes to zero. Thus, when x decreases, the ratio |qλ /pλ | increases rapidly
and, as a consequence, there is a gradual loss of significance. This difficulty is partially
avoided by means of the following trick (Barnett, 1981). For x < xTP [λ], the continued
fraction for fλ , eq. (69), is evaluated first and the downward recursions for F and F 0
(eqs. (48) and (49)) are applied to obtain the value of fL for an index L which is less
than 1 or such that x is larger than xTP [L], the turning point for the angular momentum
L. The continued fraction for pL + iqL is then evaluated and the functions GL and G0L
obtained from eqs. (57). The upward recursions for G and G0 (eqs. (50) and (51)) are
used to obtain Gλ and G0λ . Finally, the Wronskian (54), together with the previously
computed value of fλ , determine Fλ and Fλ0 . In this way, Coulomb functions can be
calculated for all x larger than a value xcrit of the order of the turning point xTP [0] for
λ = 0. When x  xTP [λ], the irregular functions may take exceedingly large values; to
prevent computer overflows, the calculation is discontinued and an error code is returned
to the MAIN program when Gλ (η, x) is larger than ∼ 1030 . For x-values less than xcrit
or such that Gλ (η, x) > 1030 , regular Coulomb functions may be obtained by numerical
integration of their differential equation (39) (e.g. by using the subroutine SCH included
in the present package).

14
3.3 Bessel functions

The Bessel functions of the first kind, Jν (x), and of the second kind, Yν (x), are the
solutions of the differential equation (see e.g. Abramowitz and Stegun, 1974)

d2 ων (x) 1 d ων (x) ν2
!
+ + 1 − ων (x) = 0, (80)
dx2 x dx x2

with the asymptotic behaviour


s s
2 π π 2 π π
   
Jν (x) ∼ sin x − ν + and Yν (x) ∼ − cos x − ν + . (81)
πx 2 4 πx 2 4
We remove the first derivative in eq. (80) with the transformation

ων (x) = x−1/2 wν (x), (82)

which yields
d2 wν (x) ν 2 − 1/4
!
+ 1 − wν (x) = 0. (83)
dx2 x2
This equation is of the form (40) with η = 0 and λ = ν − 1/2 and, therefore, for
ν > −1/2,
s s
2 2
Jν (x) = Fν−1/2 (0, x) and Yν (x) = − Gν−1/2 (0, x). (84)
πx πx
Subroutine FCOUL can then be used to compute Bessel functions of orders ν > −1/2, and
their derivatives, for x > 0 to high accuracy. The idea of employing Steed’s algorithm
to calculate Bessel functions is due to Barnett (1981).
The spherical Bessel functions of the first kind, jν (x), and of the second kind, nν (x),
are defined by2
π 1
r
jν (x) = Jν+1/2 (x) = Fν (0, x),
2x x
(85)
π 1
r
nν (x) = Yν+1/2 (x) = − Gν (0, x).
2x x
They satisfy the differential equation

d2 ων (x) 2 d ων (x)
!
ν(ν + 1)
2
+ + 1− ων (x) = 0, (86)
dx x dx x2

and have the following asymptotic behaviour


1 π 1 π
   
jν (x) ∼ sin x − ν and nν (x) ∼ − cos x − ν . (87)
x 2 x 2
2
The functions jν (x) and nν (x) are also known as the spherical Bessel and Neumann functions,
respectively.

15
Spherical Bessel functions of integer order (ν = ` ≥ 0) are used by RADIAL to
normalize free states for finite-range fields (see section 6). Although these functions
could be calculated by means of subroutine FCOUL, it is faster to generate them from
the exact expressions
sin x cos x
j0 (x) = and n0 (x) = − , (88)
x x
using the recurrence relations satisfied by j` (x) and n` (x) (which may be easily derived
from those of the Coulomb functions). Notice that the upward recursion for j` (x) and
x < ` is unstable; in this case, Miller’s downward recursion method (Abramowitz and
Stegun, 1974) can be applied. This is the procedure adopted in function BESJN, which
delivers accurate values of spherical Bessel and Neumann functions of integer order for
any x > 0.

3.4 Dirac-Coulomb functions

The free-state (E > 0) solution of Dirac’s equation for the Coulomb field (38) is usually
obtained by directly solving the coupled pair of first order radial differential equations
(16)
d u(u)
κ κ W + M c2 (l) ζ (l)
= − u(u) − uκ + uκ ,
dr r κ ch̄ r
(89)
(l) 2
d uκ W − M c (u) ζ (u) κ (l)
= uκ − uκ + uκ ,
dr ch̄ r r
2
where W ≡ E + M c is the total energy,

Ze2
ζ≡ = Zα, (90)
h̄c
and u(u) (l)
κ and uκ stand for the upper and lower spinor radial functions respectively. The
quantity α ≡ e2 /(h̄c) ' 1/137 is the fine-structure constant.
The solutions u(u) (l)
κ , uκ of eqs. (89) are expressable as linear combinations of two con-
fluent hypergeometric functions with complex arguments (Rose, 1961; Greiner, 1990).
However, in order to arrive at this result, it is necessary to write the radial functions in a
special form, which is only justified from a previous knowledge of the character of the so-
lution. Moreover, to obtain the form that corresponds with the non-relativistic limit it is
necessary to perform intricate manipulations using the properties of the confluent hyper-
geometric functions. Finally, the numerical evaluation of the irregular Dirac-Coulomb
functions is a difficult problem that, to our knowledge, is still unsolved except for large
radii, where the asymptotic expansions of the confluent hypergeometric functions con-
verge to the desired accuracy.
In the present calculations, we use an alternative method that is free from all these
difficulties. The method is based on the, not widely known, fact that eqs. (89) can

16
be transformed to a pair of equations of the form (40) with non-integer λ’s3 . The
transformation shows, in a natural way, that the regular and irregular solutions of the
Dirac equation (89) are linear combinations of Schrödinger-Coulomb functions. Our
transformation is similar to one described by Kolsrud (1966), who only considered the
regular solutions. We have generalized the final steps of the derivation so as to also
include the irregular solution. This transformation has been formulated in a different
way by Auvil and Brown (1978), who applied it to bound states of the hydrogen atom.
Introducing the dimensionless variable x = kr, where k is the relativistic wave
number (eq. (20)) √
W 2 − M 2 c4
k= , (91)
h̄c
eq. (89) can be written in the following matrix form:

W + M c2 ζ
 
d κ
+ −   

 dx x kh̄c x  u(u)
κ (r)
  uκ (x) = 0, uκ (x) ≡  , (92)
W − M c2 ζ u(l)
κ (r)
 
 d κ 
− + −
kh̄c x dx x
or, in terms of the Pauli matrices (11),
" #
d 1 i  
+ (κσ3 − iζσ2 ) + W σ2 − iM c2 σ1 uκ (x) = 0. (93)
dx x kh̄ c

From the structure of this equation, it is natural to define the matrices


 
1  2
 1  0 −i (W + M c2 )
Ξ≡ W σ2 − iM c σ1 =  (94)
kh̄ c kh̄ c i (W − M c2 ) 0

and  
1 1 κ −ζ 
Λ ≡ (κσ3 − iζσ2 ) =  , (95)
λ λ ζ −κ
with q
λ≡ κ2 − ζ 2 . (96)
The global factors in these matrices are such that
2i ζ W
Ξ2 = Λ2 = 1 and ΛΞ + ΞΛ = − . (97)
λ kh̄ c
Equation (93) can now be written in the more compact form
!
d λ
+ Λ + i Ξ uκ = 0. (98)
dx x
3
However, it is well known that the Klein-Gordon equation (also called the relativistic Schrödinger
equation) for a Coulomb potential can be reduced to a form equivalent to eq. (40) (see Schiff, 1968).

17
Following Kolsrud (1966), this equation is “squared” as
!2
d2 uκ
!
d λ λ
2
= − Λ − i Ξ uκ = − Λ − i Ξ uκ . (99)
dx dx x x
Using the properties (97) of the Ξ and Λ matrices, and introducing the relativistic
Sommerfeld parameter (cf. eq. (41))
ζW c Ze2
η= =ζ = , (100)
kh̄ c v h̄v
we obtain
d2
!
2η λ(λ + Λ)
2
+1− − uκ = 0, (101)
dx x x2
which has a clear resemblance with the non-relativistic equation (40). An even closer
similarity is obtained by introducing a linear transformation C that diagonalizes Λ,
C Λ C −1 = σ3 . (102)
The required transformation is
 
1 κ+λ −ζ λ
C = Λ + σ3 =  , C −1 = C, (103)
λ ζ −κ − λ 2(κ + λ)

and the transformed second-order equation reads


d2
!
2η λ(λ + σ3 )
2
+1− − Cuκ = 0. (104)
dx x x2
It then follows that  
q1 Uλ (η, x)
Cuκ =  , (105)
q2 Uλ−1 (η, x)
where the functions Uλ (η, x) are solutions of the equation (40), i.e. the usual Schrö-
dinger-Coulomb functions, with the indicated parameters. This is the essential result
obtained by Kolsrud (1966) and by Auvil and Brown (1978).
The ratio of the coefficients q1 and q2 is determined by transforming the first-order
equation (98), !
d λ −1
+ σ3 + i C Ξ C Cuκ = 0. (106)
dx x
A simple calculation shows that
1  
i C Ξ C −1 = −λ M c2 σ1 − κ W i σ2 + ζ W σ3 ,
λ kh̄ c
and eq. (106) takes the form
 
d λ η 1  
+ + − λ M c2 + κ W   

 dx x λ λ kh̄ c  q1 Uλ (η, x)
   = 0.
1  d λ η q U (η, x)
 
2 λ−1

λ M c2 − κ W
 
− − −
λ kh̄ c dx x λ
(107)

18
Using the recurrence relations (48) and (50) of the Coulomb functions, we get the couple
of linearly dependent equations
q  
λ2 + η 2 kh̄ c q1 − λ M c2 + κ W q2 = 0,
  q
λ M c2 − κ W q1 + λ2 + η 2 kh̄ c q2 = 0, (108)

which give √ 2
q1 λ + η 2 kh̄ c
= . (109)
q2 − (λ M c2 − κ W )
Thus,    √ 
u(u)
κ (η, x) N λ2 + η 2 kh̄ c Uλ (η, x)
  = C −1  2
, (110)
u(l)
κ (η, x) −N (λ M c − κ W ) Uλ−1 (η, x)
and we obtain the following form of the Dirac-Coulomb radial functions
h √ 2 i
u(u) 2 2
κ (η, x) = N (κ + λ) λ + η kh̄ c Uλ (η, x) + ζ (λ M c − κ W ) Uλ−1 (η, x) ,
(111)
√h i
u(l)
κ (η, x) = N ζ λ2 + η 2 kh̄ c Uλ (η, x) + (κ + λ) (λ M c2 − κ W ) Uλ−1 (η, x) ,

where N is a normalization constant. Finally, this constant is fixed by requiring that


u(u)
κ (η, x) oscillates asymptotically with unit amplitude.

We recall that the form (111) applies to both the regular and irregular Dirac-Coulomb
functions, which will be denoted as fκ(u,l) (x) and gκ(u,l) (x), respectively. Considering this,
and the asymptotic behaviour (45) of the Coulomb functions, we have
 q  
gκ(u) (x) + ifκ(u) (x) ∼ N (κ + λ) λ2 + η 2 kh̄ c exp(i∆θ) + ζ λ M c2 − κ W exp(iθλ−1 ).

From the definition (46), using the properties of the Γ function, we find that the phase
difference ∆θ ≡ θλ − θλ−1 is

π Γ(λ + 1 + iη) π
∆θ = − + arg = − + arg(λ + iη), (112)
2 Γ(λ + iη) 2

and
η − iλ
exp(i∆θ) = √ 2 . (113)
λ + η2
Therefore,
h  i
gκ(u) (x) + ifκ(u) (x) ∼ N (κ + λ) kh̄ c (η − i λ) + ζ λ M c2 − κ W exp(iθλ−1 )
h   i
= N λ ζ W + M c2 − i (κ + λ) kh̄ c exp(iθλ−1 ). (114)

We obtain the desired asymptotic behaviour by setting


−1/2
1
 2
N =± ζ 2 W + M c2 + (κ + λ)2 (kh̄ c)2 , (115)
λ

19
so that
gκ(u) (x) + ifκ(u) (x) ∼ ± exp [i (ν + θλ−1 )] (116)
with h   i
ν = arg ζ W + M c2 − i (κ + λ) kh̄ c . (117)
This completes the derivation of the normalized Dirac-Coulomb radial functions. The
simplicity of this last step is in marked contrast with the elaborate manipulations needed
to obtain the normalization constant in the standard derivation (see e.g. Rose, 1961;
Greiner, 1990).
As a matter of fact, there is a physically irrelevant sign ambiguity in expression (115).
The “good” sign is obtained by requiring that, in the non-relativistic limit c → ∞
(E  M c2 , λ → |κ|), the small radial functions u(l) κ vanish and the large functions
reduce to the non-relativistic Coulomb functions
n.r. n.r.
fκ(u) (x) −→ F` (η, x), gκ(u) (x) −→ G` (η, x), (118)

where ` stands for the orbital angular momentum quantum number (` = κ if κ > 0 and
` = −κ − 1 if κ < 0). This is accomplished by taking the minus sign in eq. (115) when
ζ and κ are negative, and the plus sign otherwise.
Asymptotically, the upper-component radial functions behave as

fκ(u) (x) ∼ sin φκ and gκ(u) (x) ∼ cos φκ , (119)

with
φκ = ν + θλ−1 − Sζ,κ π, (120)
where, according to our sign convention, Sζ,κ = 1 if ζ < 0 and κ < 0, and = 0 otherwise.
We can write this last expression in the more conventional form
π
φκ = x − ` − η ln 2x + ∆κ . (121)
2
The Dirac-Coulomb phase shift is
π
∆κ ≡ ν − (λ − ` − 1) + arg Γ(λ + iη) − Sζ,κ π. (122)
2
With the adopted sign convention, Dirac-Coulomb phase shifts vanish in the zero field
limit. The asymptotic behaviour of the lower component functions is easily obtained by
means of the first of the Dirac equations (89),
s
h̄k c du(u)
κ (x) W − M c2 du(u)
κ (x)
u(l)
κ ∼− 2
=− 2
, (123)
W + Mc dx W + Mc dx
which gives
s s
W − M c2 W − M c2
fκ(l) (x) ∼− cos φκ and gκ(l) (x) ∼ sin φκ . (124)
W + M c2 W + M c2

20
In the limit of zero field strength (ζ → 0, λ = |κ|), we find
s
W − M c2
u(u)
κ (x) = Uκ (0, x), u(l)
κ (x) = − Uκ−1 (0, x) if κ > 0,
W + M c2
s (125)
W− M c2
u(u)
κ (x) = U−κ−1 (0, x), u(l)
κ (x) = U−κ (0, x) if κ < 0,
W + M c2
which, with the aid of the relations (85), lead to the familiar result that free particle
Dirac radial functions are spherical Bessel functions (see e.g. Rose, 1961, p. 161).
The RADIAL package includes the subroutine DCOUL, which computes the Dirac-
Coulomb functions fκ(u,l) (r) and gκ(u,l) (r) by using the values of the Schrödinger-Coulomb
functions delivered by subroutine FCOUL.

4 Power series solution of the radial equations

In the following sections, and in the computer code, we use generalized atomic units.
In these units, the reduced Planck constant h̄, the absolute value of the electron charge
e and the mass M of the considered particle are taken as unity. The atomic units of
energy and length are given by E0 = M e4 /h̄2 and a0 = h̄2 /(M e2 ) respectively. The
speed of light in vacuum is c = 137.036, i.e. the inverse of the fine-structure constant.
For electrons and positrons, the units of energy and length are the Hartree energy
(E0 = 27.2114 eV) and the Bohr radius (a0 = 0.529177 Å). In these units, the radial
Schrödinger eq. (4) takes the form

1 d2 P
" #
`(` + 1)
− 2
+ V (r) + P = EP, (126)
2 dr 2r2

and the radial Dirac eqs. (16) read

dP κ E − V + 2c2
= − P − Q,
dr r c
(127)
dQ E−V κ
= P + Q.
dr c r

Let us assume that the values Vi ≡ ri V (ri ) have been given for a grid of points
r1 = 0 < r2 < . . . < rNV . In the numerical routines, the function V(r) is approximated
by the natural cubic spline (see appendix A) which interpolates the input values, i.e. by
a piecewise cubic polynomial
(i) (i) (i) (i)
V(r) = v0 + v1 r + v2 r2 + v3 r3 if ri ≤ r < ri+1 (128)

with continuous first and second derivatives. Fields having a finite number of disconti-
nuities are dealt with by using different splines in each continuous region. In this case,
the locations of the discontinuities are specified by simply introducing the two values of

21
the potential for the same point; i.e. when ri = ri+1 the adopted piecewise spline takes
the values Vi and Vi+1 to the left and right of ri respectively. The only requirements
on the spacing of the grid points are: 1) the interpolation errors introduced by the
spline approximation (128) have to be small and 2) the last grid point rNV should be
selected such that the potential function has reached its (constant) asymptotic value,
i.e. V(r) = V(rNV ) for r > rNV . In fact, this last condition is implicitly assumed by
RADIAL, which sets V(r) = V(rNV ) for r > rNV . Notice that it is not necessary to use
uniform grids.

4.1 Schrödinger equation

We consider that the values of the radial function and its first derivative at a given point
ra have already been computed. What we want to do is to evaluate the functions P (r)
and P 0 (r) ≡ dP/dr in the interval between ra and rb , where the field function V(r) is
given by
V(r) ≡ rV (r) = v0 + v1 r + v2 r2 + v3 r3 . (129)
Introducing the new variable

x ≡ (r − ra )/h, h ≡ rb − ra , (130)

the radial equation (126) transforms to

d2 P
(ra + hx)2 − h2 U(x)P = 0, (131)
dx2
with
P(x) ≡ P (r) (132)
and

U(x) ≡ 2r2 [V (r) − E] + `(` + 1) = u0 + u1 x + u2 x2 + u3 x3 + u4 x4 , (133)

where

u0 = `(` + 1) + 2v0 ra + 2(v1 − E)ra2 + 2v2 ra3 + 2v3 ra4 ,


h i
u1 = 2 v0 + 2(v1 − E)ra + 3v2 ra2 + 4v3 ra3 h,
h i
u2 = 2 (v1 − E) + 3v2 ra + 6v3 ra2 h2 , (134)
3
u3 = 2 (v2 + 4v3 ra ) h ,
u4 = 2v3 h4 .

The radial function P(x) is now expanded as a power series in x



an x n .
X
P(x) = (135)
n=0

22
Introducing (135) in (131) we obtain the following recurrence relation for the coefficients
in the series
"
h h 
 
an = −2(n − 1)(n − 2)an−1 + u0 − (n − 2)(n − 3) an−2
n(n − 1)ra ra
#
+ u1 an−3 + u2 an−4 + u3 an−5 + u4 an−6 , (136)

which determines the values of all the an from the boundary conditions
a0 = P (ra ), a1 = hP 0 (ra ). (137)

Generally we will only be interested in the values of P (r) and P 0 (r) at the end point
rb (x = 1):
∞ ∞
P 0 (rb ) = h−1 P 0 (1) = h−1
X X
P (rb ) = P(1) = an , nan . (138)
n=0 n=0

In the numerical evaluation, the series P(1) and P 0 (1) may be summed exactly, i.e.
we can add enough terms to ensure that the relative error in the sum is smaller than a
certain value  ( 1), which should be of the order of 10−15 to get the optimum accu-
racy attainable with double-precision arithmetic. We adopt the following convergence
criteria: the summation of series (138) is stopped when the last added term, aj , satisfies
the conditions  
j j
 X 1 X


|aj | <  max an ,
nan (139a)

n=0 j n=0 
and, at the same time,

2 00
rb P (1) − h2 U(1)P(1)

<  max {|P(1)| , |P 0 (1)|} , (139b)
so that the function P(x) fulfills differential equation (131) in the considered inter-
val with the required accuracy. Notice that in order to check this last condition it is
necessary to also sum the series for P 00 (1).
When ra = r1 = 0, i.e. to start the solution from the centre of force, we must proceed
in a slightly different way. In this case we take

P(x) = xs an x n .
X
(140)
n=0

Introducing (140) in (131) we get the recurrence relation


u1 an−1 + u2 an−2 + u3 an−3 + u4 an−4
an = . (141)
(s + n)(s + n − 1) − u0
For n = 0, we must have a0 6= 0 and hence
s(s − 1) = u0 = `(` + 1). (142)
The regular solution is obtained for s = ` + 1. The radial function at r2 is renormalized
in such a way that
P (r2 ) = 1, P 0 (r2 ) = P 0 (1)/P(1). (143)
In the summation of series (140) we use the convergence criteria given by eqs. (139).

23
4.2 Dirac equation

The Dirac equation (127) is solved in a similar way. We assume that the values of
the radial functions P and Q at the point ra are known. We wish to determine these
functions in the interval between ra and rb , where the field function V(r) is again given
by (129).
After changing to the new variable x, eq. (130), the radial equations (127) are written
in the form
(ra + hx)P 0 − σ|κ|hP − UhQ + 2ch(ra + hx)Q = 0,
(144)
(ra + hx)Q0 + σ|κ|hQ + UhP = 0,
with
P(x) ≡ P (r), Q(x) ≡ Q(r), (145)
σ = −sgn(κ), and

r[V (r) − E]
U(x) ≡ = u0 + u1 x + u2 x2 + u3 x3 , (146)
c
where
u0 = c−1 [v0 + (v1 − E)ra + v2 ra2 + v3 ra3 ] ,
u1 = c−1 [(v1 − E) + 2v2 ra + 3v3 ra2 ] h,
(147)
u2 = c−1 [v2 + 3v3 ra ] h2 ,
u3 = c−1 v3 h3 .

Introducing the series expansions


∞ ∞
an x n , bn x n
X X
P(x) = Q(x) = (148)
n=0 n=0

in (144), we find the following recurrence relations for the coefficients

h
an = [−(n − 1 − σ|κ|)an−1
nra
+ (u0 − 2cra )bn−1 + (u1 − 2ch)bn−2 + u2 bn−3 + u3 bn−4 ] , (149)
h
bn = − [u0 an−1 + (n − 1 + σ|κ|)bn−1 + u1 an−2 + u2 an−3 + u3 an−4 ].
nra
Using these relations and the boundary conditions

a0 = P (ra ), b0 = Q(ra ), (150)

the coefficients an and bn are completely determined. The values of P (r) and Q(r) at
the end point rb (x = 1) are given by

P (rb ) = P(1), Q(rb ) = Q(1). (151)

24
In the numerical evaluation of the series P(1) and Q(1) we adopt a convergence
criterion similar to (139). The summation is stopped when the last added terms, aj and
bj , satisfy the conditions
 
j
 X j
X 

max {|aj | , |bj |} <  max an ,
bn (152a)
 n=0 
n=0

and, at the same time,



max rb P 0 (1) − σ|κ|hP(1) − (U − 2crb ) hQ(1) ,


rb Q0 (1) + σ|κ|hQ(1) + UhP(1)

<  max {|P(1)| , |Q(1)|} . (152b)

In order to check this last condition it is necessary to also sum the series for P 0 (1) and
Q0 (1).
As in the case of the Schrödinger equation, special series expansions must be used
to start the solutions at ra = r1 = 0. We take
∞ ∞
P(x) = xs an x n , Q(x) = xs+t bn x n .
X X
(153)
n=0 n=0

Introducing (153) in (144) we get

(s + n − σ|κ|)an − u0 bn−t − (u1 − 2ch)bn−t−1 − u2 bn−t−2 − u3 bn−t−3 = 0,


(154)
(s + n + σ|κ|)bn−t + u0 an + u1 an−1 + u2 an−2 + u3 an−3 = 0,

where h = r2 .
The parameters s and t may be determined from the value of u0 and the regularity
condition at r = 0. The following different cases must be considered:

(i) u0 6= 0. We may take t = 0; equations (154) for n = 0 simplify to

(s − σ|κ|)a0 − u0 b0 = 0,
(155)
u0 a0 + (s + σ|κ|)b0 = 0.

Non-trivial solutions (a0 6= 0, b0 6= 0) exist only if the determinant vanishes, i.e.


s2 − κ2 + u20 = 0. This yields
h i1/2
s = κ2 − u20 (156)

for the regular solutions. Equations (154) with t = 0 give the following recurrence
relations
n(2s + n)an = u0 An + (s + n + σ|κ|)Bn ,
(157)
n(2s + n)bn = −(s + n − σ|κ|)An + u0 Bn ,

25
with
An = u1 an−1 + u2 an−2 + u3 an−3 ,
(158)
Bn = (u1 − 2ch)bn−1 + u2 bn−2 + u3 bn−3 .
These relations, complemented with the values

a0 = 1, b0 = (s − σ|κ|)/u0 , (159)

suffice to determine the coefficients in series (153).

(ii) u0 = 0, σ = 1. We take s = |κ| and t = 1. With these values, equations (154) yield

nan = (u1 − 2ch)bn−2 + u2 bn−3 + u3 bn−4 ,


(160)
(2|κ| + n + 1) bn = −u1 an − u2 an−1 − u3 an−2 .

To start the series we set

a0 = 1, b0 = −u1 a0 /(2|κ| + 1). (161)

(iii) u0 = 0, σ = −1. We take s = |κ| + 1 and t = −1. From equations (154) it follows
that
(2|κ| + n + 1) an = (u1 − 2ch)bn + u2 bn−1 + u3 bn−2 ,
(162)
nbn = −u1 an−2 − u2 an−3 − u3 an−4 .
The series are started with

b0 = 1, a0 = (u1 − 2ch)/(2|κ| + 1). (163)

The series (153) are summed with convergence criterion (152). The radial functions at
r2 are renormalized so that

P (r2 ) = 1, Q(r2 ) = Q(1)/P(1). (164)

The subroutine package RADIAL uses the power series method to solve the radial wave
equations to a prescribed accuracy that is fixed by the input value of the parameter 
(see eqs. (139) and (152)). This parameter determines, to a large extent, the calculation
time. A smaller value of  yields more accurate solutions, but the calculation takes a
longer computer time.
Values of the radial functions are delivered for the points of a grid specified by
the user, which may be different from the grid where the potential function V(r) is
tabulated. These two grids will be referred to as the “user” grid and the “potential”
grid, respectively. In fact, RADIAL uses a combined grid, which is obtained by merging
the user and potential grids. In what follows, the points of this combined grid are
denoted as ri (i =1, . . . , NT). We consider that they are sorted in strictly increasing
order (i.e. ri+1 − ri > 0) and that r1 = 0. For bound states, the value of rNT must be
large enough to guarantee that the probability of finding the particle farther than rNT

26
is negligible (this is important for highly excited bound states). An interesting feature
of the present solution method is that the accuracy of the computed wave functions is
independent of the spacing of the user grid (except for bound states with many nodes,
see below).
In principle, the wave function in each interval (ri , ri+1 ) is exactly given by the
corresponding series expansion. In practice, however, it may be convenient to split this
interval into a number of shorter subintervals in order to speed up the convergence
of the series. The RADIAL routines automatically select subinterval lengths such that
convergence is achieved with less than 60 terms. However, only the values of the radial
functions P (r) and Q(r) at the user grid points are transferred to the calling program.
In the case of the Schrödinger equation, the output function Q(r) is set equal to the
derivative of P (r), i.e. Q(r) ≡ P 0 (r).
Because of the renormalization of the wave function at the second grid point r2 (see
eqs. (143) and (164)), the computed radial wave functions may reach exceedingly large
values (with the risk of leading to computer overflows). To prevent this undesirable
effect during the calculation, each time the absolute value of P (ri ) exceeds 100, the
calculated radial functions are rescaled by dividing them by |P (ri )| (but the output
radial functions are properly normalized). Notice that, since the rescaling factor is
positive, the calculated function P (r) remains positive for small r.

5 Bound states. Eigenvalues

Let us now consider the problem of determining the energy (E < 0) and radial functions
for bound states with specified quantum numbers. Discrete eigenvalues are located in
the interval (∼ Einf , Esup ) given by
! ( )
`(` + 1) `(` + 1)
Einf ' min V (r) + , Esup ≡ min V (rNT ) + 2
,0 . (165)
2r2 2rNT
Einf , the minimum value of the effective radial potential, is a rigorous lower limit for
the Schrödinger equation while it is only approximate in the case of the Dirac equation
(small variations of this limit are allowed during the numerical calculations so that its
exact value does not really matter). The upper limit is fixed by numerical requirements
rather than by physical reasons.
The solution procedures for the Schrödinger and Dirac radial equations are similar.
For a given energy E in the allowed interval (165), the numerical solution is started at
r = 0 and extended outwards, by using the power series method described in the last
section, up to a certain grid point rm farther than the outer turning point, determined
from the condition
`(` + 1)
V (ri ) > E − if i ≥ m. (166)
2ri2

The first step in the solution is to find a value of the energy E for which the outward
solution (from 0 to rm ) has the correct number of zeros given by the radial quantum

27
number nr = n−(`+1), where n is the principal quantum number. This is accomplished
by following a bipartition scheme in the interval (165). It is important to note that the
number of zeros of P (r) is determined from its values at the grid points; as a consequence
it is necessary to use dense enough grids to ensure that there is at most a single zero
between consecutive grid points (otherwise, the program will probably ask for a denser
user grid).
Once a value of the energy giving the correct number of zeros of the outward solution
has been determined, we proceed to compute the solution starting from rNT (or from a
grid point far enough from the connection point rm ) and extending it inwards to rm . The
inward solution is then renormalized such that P (r) is continuous at the matching point,
i.e. Pin (rm ) = Pout (rm ). Successive corrections ∆E of the eigenvalue are determined
from the discontinuity of P 0 (r) or Q(r) at rm by using the method described by Mayers
(1957). The RADIAL routines are able to detect whether a certain bound state with
given quantum numbers occurs.

5.1 Schrödinger equation

The inward solution is started by means of the WKB approximation, which is expected
to be fairly accurate for r → ∞. The WKB solution of equation (126) in the region
r > rm is given by (Schiff, 1968)
 Z r 
(WKB) −1/2 0 0
P (r) = µ exp − µ(r ) dr , (167)
a

where ( )1/2
`(` + 1)
µ(r) ≡ 2 [V (r) − E] + (168)
r2
and a is an arbitrary point in the classically forbidden region (a > rm ). Approximation
(167) yields a closed formula for the ratio P 0 (r)/P (r) which, after setting a = r, reduces
to
P 0 (r) 1
= − µ0 µ−1 − µ. (169)
P (r) 2
The inward solution is started at a point r∞ ( rm ), where we take P (r∞ ) = 1 and use
(169) to approximate P 0 (r∞ ), and extended inwards by using the power series method.
The point r∞ is determined as the minimum grid point satisfying the condition

r∞ µ(r∞ ) > 75, (170)

which ensures that P (r∞ )  P (rm ). If this last relation holds, the error introduced by
the WKB approximation (167) does not propagate towards the connection point, i.e.
the inward solution is stable. When rNT µ(rNT ) < 75 we take r∞ = rNT . Further than
r∞ we set P (r) = 0. Notice that the last grid point rNT should be larger than r∞ or at
least be far enough from rm so that the error in the inward solution originating from
the WKB formula (169) vanishes at the matching point.

28
The formula for correcting the eigenvalue may be obtained as follows. Consider the
Schrödinger equation (126) written in the form
" #
0 0 `(` + 1)
P = Q, Q = 2 V (r) − E + P, (171)
2r2
where P and Q are assumed to depend on r and E. From (171) it follows that
" #
d d Q

P2 = −2P 2 , (172)
dr dE P
and, integrating this equation over the arbitrary interval (ra , rb ), we get
" #rb Z rb
d Q

2
P = −2 P 2 (r) dr. (173)
dE P ra ra

Now we assume that the inward solution has been renormalized to match the outward
one at the connection point, i.e. Pout (rm ) = Pin (rm ) ≡ P (rm ) and, moreover, that the
entire function P (r) has been normalized to unity. From eq. (173) we have
Z ∞ (" #rm " #∞ )
1 d Q d Q
 
2 2 2
1= P (r)dr = − P + P
0 2 dE P 0
dE P rm
" #
1 d Qout (rm ) − Qin (rm )
= − P 2 (rm ) , (174)
2 dE P (rm )
where the last quantity in the square brackets vanishes when E equals the eigenvalue
En` . Finally, integrating (174) over E on the interval (E, En` = E + ∆E) we obtain the
eigenvalue correction
 Z ∞ −1
2
∆E = P (rm ) [Qout (rm ) − Qin (rm )] 2 P (r) dr . (175)
0

5.2 Dirac equation

The methods used to start the inward solution and to correct the eigenvalue are analo-
gous to those adopted for the Schrödinger equation. For large enough radii, the potential
energy V (r) becomes negligibly small in comparison with E + 2c2 , and equations (127)
may be combined to yield the following differential equation for the large component P
P 00 (r) − µ(r)P (r) = 0, (176)
where #1/2
E + 2c2 
"
 `(` + 1)
µ(r) ≡ V (r) − E + . (177)
c2 r2
The point r∞ is determined as in the case of the Schrödinger equation (see eq. (170)).
The inward solution is started there by using the first Dirac equation (127) and relation
(169) which yield
κ P 0 (r)
!
Q(r) c c κ 1 0 −1
 
'− + =− − µµ −µ . (178)
P (r) E + 2c2 r P (r) E + 2c2 r 2

29
The formula for the eigenvalue correction reads (Mayers, 1957)
Z ∞   −1
∆E = cP (rm ) [Qin (rm ) − Qout (rm )] P 2 (r) + Q2 (r) dr , (179)
0

and may be obtained by evaluating the quantity on the left-hand side of eq. (172) from
equations (127) and following the same steps as for the Schrödinger equation.

6 Free states. Phase shifts

The series expansion method is also applied to compute radial wave functions for
free states (E > 0). We recall that, for the considered class of potential functions,
lim r→∞ V(r) = Z, where Z is a constant. Let rc denote the grid point where the
asymptotic value of V(r) is reached, i.e. the smallest grid point such that |V(r) − Z| < 
for r > rc , where  is the accuracy parameter. Notice that the calculated radial functions
have a relative uncertainty of the order of  (see eqs. (139) and (152)). Accordingly, we
consider that two quantities are numerically equal when their relative difference is less
than .
In the region r > rc , the normalized solution of the Schrödinger equation can be
expressed as (Schiff, 1968)

P (r) = cos δ F` (η, r) + sin δ G` (η, r),


(180)
Q(r) = cos δ F`0 (η, r) + sin δ G0` (η, r),

where Q(r) = P 0 (r) and F` (η, r) and G` (η, r) are the regular and irregular Schrödinger-
Coulomb functions with Z=lim r→∞ V(r) (subsection 3.1). The normalized radial Dirac
functions P (r) and Q(r) in the outer region (r > rc ) satisfy

P (r) = cos δ f (u) (r) + sin δ g (u) (r),


(181)
Q(r) = cos δ f (l) (r) + sin δ g (l) (r),

where f (u,l) (r) and g (u,l) (r) stand for the regular and irregular Dirac-Coulomb functions
with Z=lim r→∞ V(r) (see subsection 3.4).
The asymptotic behaviour of the Coulomb functions is (section 3)
π
 
F (r), f (r) ∼ sin kr − ` − η ln 2kr + ∆ ,
2
(182)
π
 
G(r), g(r) ∼ cos kr − ` − η ln 2kr + ∆ ,
2
where k is the particle wave number, η is Sommerfeld’s parameter and ∆ is the corre-
sponding Coulomb phase shift. It then follows that, for large r,
π
 
P (r) ∼ sin kr − ` − η ln 2kr + ∆ + δ . (183)
2

30
Schrödinger- and Dirac-Coulomb functions are calculated by subroutines FCOUL and
DCOUL described above, which also give an estimate of the relative error of the delivered
function values. The magnitude of this error is of the order of 10−15 for r larger than
the Coulomb turning point, rTP [0]. For r less than this value, the accuracy of the
calculated Coulomb functions worsens with decreasing r. When |Z| > , we assume
that for the outer grid points the errors in the calculated Coulomb functions are less
than the tolerance  (otherwise, the program asks for an extended grid). This implies
that, for r-values larger than a certain grid point rm the radial functions P (r) and Q(r)
can be calculated analytically from the expressions (180) and (181).
When |Z| = 0 (or, numerically, < ), the Schrödinger- and Dirac-Coulomb functions
reduce to spherical Bessel and Neumann functions of integer order, which are accurately
given by the function subprogram BESJN for any value of r and E. In this case, we set
rm = rc and the radial functions for r > rc are evaluated by using eqs. (180) and (181).
For both the Schrödinger and the Dirac equations, the numerical solution of the
radial equation is started at r = 0 and extended outwards up to the matching point rm
by using the power series method described in section 4. Let P (ri ) and Q(ri ) (i=1,. . . ,m)
denote the resulting unnormalized radial functions. The normalized solution is obtained
by matching the inner numerical function and the outer analytical function at rm . Notice
that, owing to difficulties in computing the Coulomb functions for distances r less than
the turning point rTP [0], it may be necessary to extend the inner numerical solution up
to values of r that, in the case of low energies and repulsive fields, may be quite large
(and this can lengthen the calculation considerably). Of course, for completely screened
Coulomb fields (Z = 0), the inner solution can be stopped as soon as |V(r)| < .
The inner and outer functions are matched by requiring continuity of the P (r) func-
tion and its derivative,
A P (rm ) = cos δ F (rm ) + sin δ G(rm ),
0 (184)
A P (rm ) = cos δ F 0 (rm ) + sin δ G0 (rm ),
where F and G stand for the corresponding regular and irregular Coulomb functions.
Notice that
P 0 (r) = Q(r) (Schrödinger),
κ E − V + 2c2 (185)
P 0 (r) = − P − Q(r) (Dirac).
r c
From (184) we obtain (by supressing the argument rm )
0
P F 0 + tan δ G0
ρ≡ = (186)
P F + tan δ G
and
ρ F − F0
!
−1 cos δ F + sin δ G
δ = tan , A= . (187)
G0 − ρ G P
If |P | < , division by P is avoided by using the following alternative formulae
−F cos δ F 0 + sin δ G0
 
δ = tan−1 , A= 0 . (1870 )
G P

31
The normalized inner function is

P (ri ) = A P (ri ), Q(ri ) = A Q(ri ) (i = 1, . . . , m). (188)

In order to fix the global sign of the radial function, we require P (r) to be positive for
small r and, consequently, we use the branch of the multivalued tan−1 function that
makes the inner normalization constant, A, positive.
The “inner” phase shift δ is only due to the short-range distortion of the asymptotic
Coulomb field, Vsr (r) ≡ V(r) − Z; the effect of the Coulomb field is accounted for by the
logarithmic phase, −η ln 2kr, and the Coulomb phase shift ∆. For a pure Coulomb field
(Vsr ≡ 0), δ = 0. Attractive (repulsive) short-range fields give positive (negative) inner
phase shifts. These phase shifts are indeterminate in a multiple of 2π. Notice that if it
were not for the fact that P (r) is required to be positive for small r, the inner phase
shifts would be indeterminate in a multiple of π. We shall always reduce the calculated
values of δ to the interval (−π,π) so as to get rid of this indeterminacy when |δ| < π.

7 Structure of the RADIAL subroutines

All the real variables are handled in double precision. The input of the solution sub-
routines contains the parameter EPS (= , cf. eqs. (139) and (152)) which controls the
global accuracy of the numerical procedure; the relative numerical uncertainty in the
results is of the order of 100×EPS. Calculation time increases when EPS is reduced. With
double-precision arithmetic, optimum accuracy is obtained with EPS' 10−15 . We recall
that all quantities are in generalized atomic units.
The subroutines to be called from the MAIN program are the following:

1) SUBROUTINE VINT(R,RV,NV).
This is an initialization routine which determines the cubic spline that interpolates the
potential function. The values of the potential function V(ri ) = ri V (ri ) at the grid
points ri (i = 1, . . . , NV) are entered as the first NV components of the arrays RV and
R respectively, which are kept unaltered. The dimension of these arrays is NDIM (see
below). The r values must be given in increasing order with R(1)=0.0D0. A pair of
repeated r values is interpreted as a discontinuity of the potential (or its derivatives).

2) SUBROUTINE SBOUND(E,EPS,DELL,N,L).
Determination of Schrödinger bound-state radial functions and eigenvalues.
INPUT: E = estimated eigenvalue (a good estimate speeds up the
calculation but it is not essential).
DELL = eigenvalue tolerance (i.e. maximum acceptable relative
error in E).
N = principal quantum number n. L = `.
OUTPUT: E = eigenvalue.
Radial functions P (r) and Q(r) ≡ P 0 (r) (see below).

32
3) SUBROUTINE SFREE(E,EPS,PHASE,L).
Calculation of Schrödinger free-state radial functions and phase shifts.
INPUT: E = kinetic energy. L = `.
OUTPUT: PHASE = inner phase shift δ (in radians).
Radial functions P (r) and Q(r) ≡ P 0 (r) (see below).

4) SUBROUTINE DBOUND(E,EPS,DELL,N,K).
Determination of Dirac bound-state radial functions and eigenvalues.
INPUT: E = estimated eigenvalue. DELL = eigenvalue tolerance.
N = principal quantum number n. K = κ.
OUTPUT: E = eigenvalue.
Radial functions P (r) and Q(r) (see below).

5) SUBROUTINE DFREE(E,EPS,PHASE,K).
Calculation of Dirac free-state radial functions and phase shifts.
INPUT: E = kinetic energy. K = κ.
OUTPUT: PHASE = inner phase shift δ (in radians).
Radial functions P (r) and Q(r) (see below).

The values of the radial functions at the points ri (i = 1, . . . , NGP) of a grid arbitrarily
selected by the user (which may be different from the grid where the potential function
is tabulated) are delivered through the named common block
COMMON/RADWF/RAD(NDIM),P(NDIM),Q(NDIM),NGP,ILAST,IER
The array RAD contains the input grid points ri (i = 1, . . . , NGP) in the first NGP positions.
At the output, the arrays P and Q contain the values of P (RAD(I)) and Q(RAD(I)) stored
in their I-th positions (Q ≡ P 0 for the Schrödinger equation). The dimension of the
arrays is NDIM (see below). For bound states, ILAST is the index corresponding to
the practical infinity, i.e. RAD(ILAST)= r∞ . For free states, ILAST is the index of the
matching point, RAD(ILAST)= rm . Bound-state radial functions are normalized to unity;
the normalization is carried out by interpolating the radial functions with natural cubic
splines and integrating the squared splines. If the spacing between the grid points is not
small enough, the normalization may be in serious error, i.e. the given radial functions
may differ from the exact solution by a constant factor. Free-state radial functions are
normalized to asymptotic unit amplitude. Notice that the calculated radial function
P (r) is positive for small r.
The value of NDIM, which defines the array dimensions, is set as a parameter in the
source listing and must be the same in all subroutines and in the MAIN program (since
otherwise the variables in the common blocks would not be correctly aligned). In the
original RADIAL code, it is set to 800. This value must be changed by the user, by editing
the source files, when a larger number of grid points is required.
The variable IER in the common block RADWF is an error indicator: its output value
is zero when the calculation has been successfully ended, a positive value is returned
when some fatal error is found during the calculation (in this case an error message is
also written in the output file). The output value of IER indicates the type of detected

33
error. A list of error codes and tentative solutions is given in the source listing. The
program stops when an obvious inconsistency in the input data is detected.
In the case of free states, the radial functions for r >RAD(NGP) can be obtained
analytically from eqs. (180) and (181), with the help of subroutines SCOUL and DCOUL
(which compute Schrödinger- and Dirac-Coulomb functions, respectively). For fields
such that lim r→∞ V(r) = 0, the radial functions for r >RAD(NGP) should be calculated
in terms of the spherical Bessel functions of integer order (which are computed by
function BESJN). At output, the common block
COMMON/OCOUL/WAVENUM,ETA,DELTA
contains the values of the wave number, k (=WAVENUM), the Sommerfeld parameter, η
(=ETA), and the Coulomb phase shift, ∆ (=DELTA) in radians. With these values avail-
able, the calculation of Coulomb functions for large r’s can be substantially simplified
by using the asymptotic expansion given by eqs. (71) and (75).
Although RADIAL has been devised to handle fields such that V (r) goes to zero at
large distances, it can also be used to compute bound states for potentials that diverge
at r = ∞ (e.g. the isotropic harmonic oscillator potential, V (r) ∝ r2 ). For these fields,
we can start from a table of values of V (r) for a certain grid ri (i = 1, . . . , NT), suitably
spaced to minimize spline interpolation errors, and define the shifted potential function
V(r) ≡ r[V (r) − V (rNT )], which vanishes at the outer grid point. This point must be
selected such that, for the considered bound state, the probability of having the particle
farther than rNT is negligible. It is important to meet this condition, since RADIAL sets
V(r) = V(rNT ) for r > RNT . With the shifted potential, RADIAL then gives the desired
bound-state radial functions; the output value of the energy is E − V (rNT ), where E is
the eigenenergy for the actual field V (r).

8 Test program

The RADIAL package is accompanied with a simple MAIN program called DEMORAD that
calculates bound- and free-state radial functions for partially screened Coulomb fields
of the form
Z ZS
V (r) = + exp(−Ar). (189)
r r
With properly selected parameters, this potential may be used to approximate the
interactions that occur in atomic physics (atomic structure, photoionization, collisions
of charged particles with atoms and ions, . . . ). The program DEMORAD can be run
interactively and the input/output is self-explanatory. Radial functions are written in
the output file WAVES.DAT, in a format ready to be imported by a plotting program for
visualization. Examples of results produced by DEMORAD are given below, in the test run
output.
The user and potential grids, ri (i = 1, . . . , N ), adopted in the DEMORAD program are
identical and defined as
r1 = 0 and G(ri ) ≡ a ri + b ln ri + c = i (i = 2, . . . , N ), (190)

34
with
a = 1/STEP, b = 1/ ln(RATIO), c = N − arN − b ln rN . (191)
The quantities STEP, RATIO, and rN are parameters, which are appropriately selected.
With RATIO1, we get a nearly uniform grid with spacing ri − ri−1 ' STEP. Taking
STEP=0, we obtain a logarithmic grid such that ri /ri−1 = RATIO. With a value of RATIO
slightly larger than unity, say RATIO=1.15, a number of points, N , of the order of 600
or larger and rN ' (N − 100)STEP, the grid is nearly logarithmic in the vicinity of
r = 0 and nearly uniform at large r. In this case we get a high density of points
near the origin (which is convenient in order to have a good representation of bound
states) and a nearly uniform grid at large distances from the origin (as required to
follow the regular oscillations of free-state wave functions in the asymptotic region).
Notice that, for free states, a value of STEP of the order of 0.05 times the wavelength λ
(= 2π/k) automatically locates at least 20 points within a wavelength. This kind of grid
is also very convenient for further numerical calculations. Thus, to evaluate integrals
involving radial functions, we simply change to the new variable i = G(r) to get the
integrand tabulated in a uniform grid, with unit spacing, so that the integral can be
routinely calculated e.g. by Simpson’s method. Interpolation from the uniform i-grid is
also easier than in the r-grid. Notice, however, that the first interval (r1 , r2 ) must be
considered separately. The subroutine GRID, included in the source file DEMORAD.FOR,
generates the grid (190) for the selected parameters. The grids used in DEMORAD are
such that the output radial functions usually look smooth when plotted using straight
segments to join the data points.
RADIAL provides radial functions, eigenvalues and phase shifts for the potential func-
tion given by the cubic spline (128). Calculation results are affected by numerical un-
certainties that arise not only from round-off errors (which can be reduced by using a
smaller accuracy parameter ) but also from differences between the spline aproximation
and the actual potential function V(r). In general, we shall deal with potentials that
are either given in analytical form or defined numerically by means of a table V(ri )
(i = 1, . . . , N ). For analytical potentials, we can always determine a radial grid ri that
is dense enough to make sure that the corresponding natural cubic spline differs from
the actual potential function by less than a selected tolerance. Thus, for the analytical
fields (189) and the grids used in DEMORAD, the relative error introduced by the spline
interpolation is less than 10−6 . In a few particular cases (namely, piecewise Coulomb,
constant, linear or quadratic fields) the spline interpolation is exact, irrespective of the
number of grid points, and the calculated results are only affected by round-off errors.
When the potential function V(r) is given in numerical form, the error introduced by
the spline approximation may be difficult to estimate. As mentioned in the introduction,
one must at least make sure that the interpolating spline does not wiggle between the
tabulated data; this may happen when the potential grid points are spaced too far apart.
To get an idea of the magnitude of the interpolation error in the vicinity of the grid
point rk , we can consider the natural cubic spline that interpolates the potential table
with the k-th point removed. The difference between the value of this spline at rk and
the datum V(rk ) then gives the sought error estimate. The subroutine ERRSPL, which is
included in the source code DEMORAD.FOR, uses this method to determine the maximum

35
relative error introduced by natural cubic spline interpolation in a given table. This
subroutine may be helpful to check whether a given radial grid is adequately spaced to
permit spline interpolation of V(r) to the required accuracy.

36
Test run output
**** SCHRODINGER EQ. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)
Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
BOUND STATE: N= 1, L= 0 (EPS= 1.0E-13)
BINDING ENERGY =-1.067816660378799E+03

**** DIRAC EQUATION. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)


Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
BOUND STATE: N= 1, K= -1 (EPS= 1.0E-13)
BINDING ENERGY =-1.115472538267358E+03

**** SCHRODINGER EQ. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)


Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
BOUND STATE: N= 10, L= 5 (EPS= 1.0E-13)
BINDING ENERGY =-5.000000000005560E-03

**** DIRAC EQUATION. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)


Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
BOUND STATE: N= 10, K= 5 (EPS= 1.0E-13)
BINDING ENERGY =-5.000003328218895E-03

**** SCHRODINGER EQ. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)


Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
FREE STATE: E= 1.000000E+02, L= 0 (EPS= 1.0E-13)
INNER PHASE SHIFT=-8.870875130050138E-01
COULOMB PHASE SHIFT= 4.067401266229027E-02 (ETA=-7.071068E-02)

**** DIRAC EQUATION. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)


Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
FREE STATE: E= 1.000000E+02, K= -1 (EPS= 1.0E-13)
INNER PHASE SHIFT=-7.124212735575739E-01
COULOMB PHASE SHIFT= 4.069204642944557E-02 (ETA=-7.099277E-02)

**** SCHRODINGER EQ. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)


Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
FREE STATE: E= 1.000000E+02, L= 5 (EPS= 1.0E-13)
INNER PHASE SHIFT= 5.109874444042619E-01
COULOMB PHASE SHIFT=-1.206426693445105E-01 (ETA=-7.071068E-02)

**** DIRAC EQUATION. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)


Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
FREE STATE: E= 1.000000E+02, K= 5 (EPS= 1.0E-13)
INNER PHASE SHIFT= 5.165575947733907E-01
COULOMB PHASE SHIFT=-1.210779425766962E-01 (ETA=-7.099277E-02)

**** DIRAC EQUATION. POTENTIAL FUNCTION: R*V(R)=Z+ZS*DEXP(-A*R)


Z=-1.000000E+00, ZS =-5.000000E+01, A= 5.000000E+00
FREE STATE: E= 1.000000E+02, K= 10 (EPS= 1.0E-13)
INNER PHASE SHIFT= 5.837929241068245E-02
COULOMB PHASE SHIFT=-1.669349756666961E-01 (ETA=-7.099277E-02)

37
Appendix A. Cubic spline interpolation

In this appendix we follow the presentation of Maron (1982). Suppose that a function
f (x) is given in numerical form, i.e. as a table of values

fi = f (xi ) (i = 1, . . . , N ). (A.1)

The points (knots) xi do not need to be equispaced, but we assume that they are in
(strictly) increasing order
x1 < x2 < · · · < xN . (A.2)

A function ϕ(x) is said to be an interpolating cubic spline if


1) It reduces to a cubic polynomial within each interval [xi ,xi+1 ], i.e. if xi ≤ x ≤ xi+1

ϕ(x) = ai + bi x + ci x2 + di x3 ≡ pi (x) (i = 1, . . . , N − 1). (A.3)

2) The polynomial pi (x) matches the values of f (x) at the end-points of the i-th interval,

pi (xi ) = fi , pi (xi+1 ) = fi+1 (i = 1, . . . , N − 1), (A.4)

so that ϕ(x) is continuous in [x1 ,xN ].


3) The first and second derivatives of ϕ(x) are continuous in [x1 ,xN ]

p0i (xi+1 ) = p0i+1 (xi+1 ) (i = 1, . . . , N − 2), (A.5)

p00i (xi+1 ) = p00i+1 (xi+1 ) (i = 1, . . . , N − 2). (A.6)

Consequently, the curve y = ϕ(x) interpolates the table (A.1) and has a continuously
turning tangent.
To obtain the spline coefficients ai , bi , ci , di (i = 1, . . . , N − 1) we start from the fact
that ϕ00 (x) is linear in [xi ,xi+1 ]. Introducing the quantities

hi ≡ xi+1 − xi (i = 1, . . . , N − 1) (A.7)

and
σi = ϕ00 (xi ) (i = 1, . . . , N ), (A.8)
we can write the obvious identity
xi+1 − x x − xi
p00i (x) = σi + σi+1 (i = 1, . . . , N − 1). (A.9)
hi hi
Notice that xi+1 must be larger than xi in order to have hi > 0. Integrating eq. (A.9)
twice with respect to x gives for i = 1, . . . , N − 1

(xi+1 − x)3 (x − xi )3
pi (x) = σi + σi+1 + Ai (x − xi ) + Bi (xi+1 − x), (A.10)
6hi 6hi

38
where Ai and Bi are constants. These can be determined by introducing the expression
(A.10) into eqs. (A.4); this gives the pair of eqs.
h2i h2
σi + Bi hi = fi and σi+1 i + Ai hi = fi+1 . (A.11)
6 6
Finally, solving for Ai and Bi and substituting the result in (A.10), we obtain
σi (xi+1 − x)3
" #
xi+1 − x
pi (x) = − hi (xi+1 − x) + fi
6 hi hi
(A.12)
σi+1 (x − xi )3
" #
x − xi
+ − hi (x − xi ) + fi+1 .
6 hi hi

To be able to use ϕ(x) to approximate f (x), we must find the second derivatives
σi (i = 1, . . . , N ). To this end, we impose the conditions (A.5). Differentiating (A.12)
gives
3(xi+1 − x)2 σi+1 3(x − xi )2
" # " #
σi
p0i (x) = − + hi + − hi + δi , (A.13)
6 hi 6 hi
where
yi+1 − yi
δi = . (A.14)
hi
Hence,
hi hi
p0i (xi+1 ) = σi + σi+1 + δi , (A.15a)
6 3
hi hi
p0i (xi ) = −σi − σi+1 + δi , (A.15b)
3 6
and, similarly,
hi+1 hi+1
p0i+1 (xi+1 ) = −σi+1
− σi+2 + δi+1 . (A.15c)
3 6
Replacing (A.15a) and (A.15c) in (A.5), we obtain
hi σi + 2(hi + hi+1 )σi+1 + hi+1 σi+2 = 6 (δi+1 − δi ) (i = 1, . . . , N − 2). (A.16)

The system (A.16) is linear in the N unknowns σi (i = 1, . . . , N ). However, since


it contains only N − 2 equations, it is underdetermined. This means that we need
either to add two additional (independent) equations or to fix arbitrarily two of the N
unknowns. The usual practice is to adopt endpoint strategies that introduce constraints
on the behaviour of ϕ(x) near x1 and xN . An endpoint strategy fixes the values of σ1
and σN , yielding an (N − 2) × (N − 2) system in the variables σi (i = 2, . . . , N − 1).
The resulting system is, in matrix form,
H2 h2 0 ··· 0 0 0 σ2 D2
    

 h2 H3 h3 ··· 0 0 0 
 σ3 


 D3 

0 h3 H4 ··· 0 0 0 σ4 D4
    
    
.. .. .. ... .. .. .. .. ..
    

 . . . . . .

 .

 = 
 . ,

(A.17)
    

 0 0 0 · · · HN −3 hN −3 0  
 σN −3 


 DN −3 

0 0 0 · · · hN −3 HN −2 hN −2   σN −2  DN −2 
    
 
0 0 0 ··· 0 hN −2 HN −1 σN −1 DN −1

39
where
Hi = 2(hi−1 + hi ) (i = 2, . . . , N − 1) (A.18)
and
D2 = 6(δ2 − δ1 ) − h1 σ1 ,
Di = 6(δi − δi−1 ) (i = 3, . . . , N − 2), (A.19)
DN −1 = 6(δN −1 − δN −2 ) − hN −1 σN .
(σ1 and σN are removed from the first and last equations, respectively). The matrix
of coefficients is symmetric, tridiagonal and diagonally dominant (the larger coefficients
are in the diagonal), so that the system (A.17) can be easily (and accurately) solved by
Gauss elimination. The spline coefficients ai , bi , ci , di (i = 1, . . . , N − 1) –see eq. (A.3)–
can then be obtained by expanding the expressions (A.12):

1 h i hi
ai = σi x3i+1 − σi+1 x3i + 6 (fi xi+1 − fi+1 xi ) + (σi+1 xi − σi xi+1 ) ,
6hi 6
1 h i hi
bi = σi+1 x2i − σi x2i+1 + 2 (fi+1 − fi ) + (σi − σi+1 ) ,
2hi 6 (A.20)
1
ci = (σi xi+1 − σi+1 xi ) ,
2hi
1
di = (σi+1 − σi ).
6hi

When accurate values of f 00 (x) are known, the best strategy is to set σ1 = f 00 (x1 ) and
σN = f 00 (xN ), since this will minimize the spline interpolation errors. Unfortunately,
the exact values f 00 (x1 ) and f 00 (xN ) are not always available.
The so-called natural spline corresponds to taking σ1 = σN = 0. It results in
a y = ϕ(x) curve with the shape that would be taken by a flexible rod (such as a
draughtsman’s spline) if it were bent around pegs at the knots but allowed to maintain its
natural (straight) shape outside the interval [x1 ,xN ]. Since σ1 = σN = 0, extrapolation
of ϕ(x) outside the interval [x1 ,xN ] by straight segments gives a continuous function
with continuous first and second derivatives (i.e. a cubic spline in [−∞,∞]).
The accuracy of the spline interpolation is mainly determined by the density of knots
in the regions where f (x) has strong variations. For constant, linear, quadratic and cubic
functions the interpolation errors can be reduced to zero by using the exact values of
σ1 and σN (in these cases, however, the natural spline may introduce appreciable errors
near the endpoints). It is important to keep in mind that a cubic polynomial has, at
most, one inflexion point. As a consequence, we should have at least a knot between
each pair of inflexion points of f (x) to ensure proper interpolation. Special care must
be taken when interpolating functions that have a practically constant value in a partial
interval, since the spline tends to wiggle instead of staying constant. In this particular
case, it may be more convenient to use linear interpolation.
Obviously, the interpolating cubic spline ϕ(x) can be used not only to obtain inter-

40
polated values of f (x) between the knots, but also to calculate integrals such as
Z b Z b
f (x) dx ' ϕ(x) dx, x1 ≤ a and b ≤ xN , (A.21)
a a

analytically. It is worth noting that derivatives of ϕ(x) other than the first one may
differ significantly from those of f (x).
To obtain the interpolated value ϕ(xc ) −see eq. (A.3)− of f (x) at the point xc , we
must first determine the interval [xi ,xi+1 ] that contains the point xc . To reduce the
effort to locate the point, we use the following binary search algorithm

(i) Set i =1 and j = N .

(ii) Set k = [(i + j)/2].

(iii) If xk < xc , set i = k; otherwise set j = k.

(iv) If j − i > 1, go to step (ii).

(v) Deliver i.

Notice that the maximum delivered value of i is N − 1.

Appendix B. Continued fractions

Continued fractions are often useful to evaluate special functions (see Press et al., 1992).
A continued fraction is defined as
a1
f (x) = b0 + a2 , (B.1)
b1 + a3
b2 +
b3 + · · ·
where the a’s and b’s can themselves be simple functions of x. The continued fraction
(B.1) is frequently written in the typographically simpler form
a1 a2 a3
f (x) = b0 + . (B.2)
b 1 + b2 + b3 + · · ·
If the number of terms is finite, f is called a terminating continued fraction. If the
number of terms is infinite, f is called an infinite continued fraction and the terminating
fraction
a1 a2 an
fn (x) = b0 + ··· (B.3)
b1 + b2 + bn
is called the n-th convergent of f . If lim n→∞ fn (x) exists, the infinite continued fraction
f (x) is said to be convergent, and the limit is then the value of the continued fraction.
Continued fractions frequently converge much more rapidly than power series expansions
and in a wider domain of the complex plane.

41
In the calculation of terminating continued fractions, is seems natural to proceed
from right to left. But this is not an efficient method to compute infinite fractions. It
is much more effective to proceed from left to right by using the following recursion
method, which was invented by Wallis a long while ago (in 1655!). Let us define two
sequences, An and Bn , by the initial values

A−1 = 1, A0 = b0 , B−1 = 0, B0 = 1 (B.4a)

and the recurrence relations

An = An−1 bn + An−2 an , Bn = Bn−1 bn + Bn−2 an ; (B.4b)

then, the n-th convergent of f is


An
fn (x) = . (B.5)
Bn
This result can be easily proved by induction. The recurrence (B.4) frequently generates
very large or very small values of the partial numerators and denominators An and Bn ,
with the risk of overflow or underflow of the floating point representation. However, as
the recurrence (B.4) is linear, this can be fixed by simply rescaling the values An , An−1 ,
Bn and Bn−1 , for instance dividing all them by |Bn |, when an overflow is imminent4 .
A brute force solution, easier to program, is to rescale after each iteration. If one of
the denominators Bn equals 0 (as it may happen in the case of Coulomb functions),
we must skip the rescaling and evaluation of the ratio (B.5) and continue with the
next iteration of (B.4); a second zero could indicate that the continued fraction is not
convergent. We assume that the numerical evaluation of the continued fraction can be
terminated when the values fn (x) and fn−1 (x) of the last iterations differ in less than the
selected tolerance. This is normally a good termination method (it certainly works for
Coulomb functions), although it may yield wrong results with peculiar fractions (such
that fn−1 = fn but fn+1 6= fn ). More sofisticated algorithms for evaluating continued
fractions, which avoid the need for rescaling intermediate results, have been proposed
by Steed (Barnett et al., 1974) and by Lentz (see Press et al., 1992).
The equivalence transformation

ak → cak , bk → cbk , ak+1 → cak+1 , (B.6)

with c 6= 0, keeps the value of the continued fraction unchanged. Successive equivalence
transformations with different c’s can be applied to successive terms to simplify the form
of the a and b coefficients:
c 1 a1 c 1 c 2 a2 cn−1 cn an
f (x) = b0 + ··· . (B.7)
c 1 b1 + c 2 b2 + c n bn + · · ·

4
The use of a positive scaling factor is important so as to keep track of the true sign of the partial
denominator, which is required to determine the sign of the Coulomb functions computed by Steed’s
continued fraction method.

42
References
M. Abramowitz and I. A. Stegun (1974), Handbook of Mathematical Functions (Dover,
New York).

P. R. Auvil and L. M. Brown (1978), Am. J. Phys. 46, 679.

C. Bardin, Y. Dandeu, L. Gauthier, J. Guillermin, T. Lena, J.-M. Pernet, H. H. Wolter


and T. Tamura (1972), Comput. Phys. Commun. 3, 73.

A. R. Barnett, D. H. Feng, J. W. Steed and L. J. B. Goldfarb (1974), Comput. Phys.


Commun. 8, 377.

A. R. Barnett (1981), Comput. Phys. Commun. 21, 297.

A. Erdélyi, W. Magnus, F. Oberhettinger and F. G. Tricomi (1953), Higher Transcen-


dental Functions, Vol. 1 (McGraw-Hill, New York).

C.-E. Fröberg (1955), Rev. Mod. Phys. 27, 399.

W. Greiner (1990), Relativistic Quantum Mechanics – Wave Equations (Springer, Ber-


lin).

M. Kolsrud (1966), Physica Norvegica 2, 43.

M. J. Maron (1982), Numerical Analysis: A Practical Approach (Macmillan, New York).

D. F. Mayers (1957), Proc. Roy. Soc. (London) A241, 93.

P. M. Morse and H. Feshbach (1953), Methods of Theoretical Physics (McGraw-Hill,


New York).

W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flannery (1992), Numerical


Recipes, 2nd. ed. (Cambridge Univ. Press, New York).

M. E. Rose (1961), Relativistic Electron Theory (John Wiley and Sons, New York).

F. Salvat and R. Mayol (1991), Comput. Phys. Commun. 62, 65.

L. I. Schiff (1968), Quantum Mechanics (McGraw-Hill Kogakusha, Tokyo).

W. Walker (1971), Adv. Phys. 20, 257.

43

You might also like