hfd - hartree-fock-dirac
The hfd program solves restricted Hartree-Fock-Dirac (HFD) equations self-consistently under the central field approximation to find four-component Dirac-Fock (DF) orbitals and eigenvalues of the HFD Hamiltonian. The program provides the initial approximation, storing both basis radial orbitals
as well as the radial derivatives of the orbitals \(\partial_r\phi_{nlj}\), to the file HFD.DAT.
A more detailed description of this program is given in the 2015 CI-MBPT paper[1].
Input Files:
HFD.INP- atomic system definition, HFD parameters, and orbital listHFD.DAT(optional) - pre-existing orbitals; required whenkl = 1orkl = 2
Output Files:
HFD.DAT- basis radial orbitals \(\phi_{nlj}\) and radial derivatives \(\partial_r\phi_{nlj}\)HFD.RES- program log
The hfd program reads its parameters from HFD.INP. The first line is a free-form label for the atom or ion. This is followed by a block of keyword parameters, which can appear in any order and are case-insensitive:
KL = 0 # calculation mode
NS = 18 # total number of orbitals
NSO= 2 # number of closed core shells
Z = 26.0 # atomic number
AM = 56.000 # atomic weight
JM = -2.0 # angular momentum projection (-2 to disable)
R2 = 20.0 # radial grid outer boundary (a.u.)
kbr= 2 # Breit interaction (0 - Coulomb, 1 - Gaunt, 2 - Full Breit)
rnuc= 0.0 # nuclear rms radius (fm); 0 = derived from AM
k_is= 0 # isotope shift (0 - off, 1 - VS, 2 - SMS, 3 - NMS, 4 - MS)
c_is= 0.0 # isotope shift scaling factor
n_is= 0 # number of core shells for SMS potential (default: NSO)
The value of KL can take the following values:
KL = 0- start a new self-consistent HFD calculation from scratchKL = 1- start a new calculation, reading frozen orbitals (KP = 1) from an existingHFD.DATKL = 2- read all orbitals from an existingHFD.DATwithout re-solving (e.g., to add Breit corrections)
The value of k_is selects the type of isotope shift perturbation added to the HFD potential:
k_is = 0- no isotope shiftk_is = 1- volume shift (VS)k_is = 2- specific mass shift (SMS)k_is = 3- normal mass shift (NMS)k_is = 4- total mass shift (SMS + NMS)
c_is is a scaling factor applied to the isotope shift perturbation. n_is specifies the number of core shells included in the SMS core potential; it defaults to NSO if not set. rnuc overrides the nuclear rms radius (in fm) used in the nuclear potential; it can be omitted entirely or set to zero, in which case it is derived automatically from the atomic weight AM.
After the keyword block, three header lines are followed by the orbital list. Each line specifies one orbital in fixed format:
NL J QQ KP NC
1 1S (1/2) 2.0000 1 0
2 2S (1/2) 2.0000 1 0
...
10 4S (1/2) 1.0000 0 1
The columns are:
index - orbital index (informational only)
NL - principal quantum number and angular momentum letter (e.g.,
4S,2P,3D)J - total angular momentum as a fraction (e.g.,
(1/2),(3/2))QQ - occupation number
KP -
0to solve the HFD equation for this orbital;1to read it from an existingHFD.DAT(frozen)NC - configuration group index (
0for core;1,2, … for valence groups solved sequentially)
Running hfd
To run hfd, run the command:
hfd
References