Basis for CI+all-order and CI+MBPT
The following instructions assume familiarity with the main programs of the pCI package.
In this section, we describe the general method of building basis sets for the CI+all-order and CI+MBPT code packages. As the CI and all-order code packages were developed separately, they use basis sets in different formats. CI uses HFD.DAT and all-order uses hfspl.1 and hfspl.2 files. For all-order/CI+all-order/CI+MBPT calculations, most of the basis is constructed via the B-splines. However, one needs too many B-splines to reproduce core and lower valence stats with high enough accuracy for heavier atoms. Therefore, core and a few few valence electron wave functions are taken from Dirac-Hartree-Fock (DHF), and a combined basis with splines is built. More splines will mean larger basis for the CI as well, so we would like to avoid this. There also seems to be an issue with the basis converter codes for larger numbers of B-splines.
All-order or MBPT calculations involve sums over all possible states. To computer these accurately, one needs a large basis. Generally, we use lmax=6 and Nmax=35 for each of the partial waves \((1-35)s, (2-35)p_{1/2}, (2-35)p_{3/2}, \dots\). CI does not require such large basis sets and it is reducing for CI computations.
Note
More splines will mean larger basis for the CI as well, so we would like to avoid this. There also seems to be an issue with the basis converter codes for larger numbers of B-splines.
Note
There is a technical issue of CI codes using Taylor expansion inside the nucleus, while all-order codes use a radial grid that starts from the origin. This makes format conversion somewhat imperfect near the nucleus.
Instructions
Now we will discuss the steps to build the basis set for CI+all-order and CI+MBPT calculations.
Produce B-splines
./tdhf < bas_wj.in- solves DHF equations (readsbas_wj.inand writesfort.1)./nspl40 < spl.in- produces B-spline basis (readsfort.1and writeshfspl.1andhfspl.2)
Run HFD code
./hfd- solves DHF equations (readsHFD.INPand writesHFD.DAT)
Convert B-spline basis to HFD.DAT format
./bas_wj- convertshfspl.1andhfspl.2B-spline files and writesWJ.DATandBASS.INPNote
There are a couple of changes that have to be made to the resulting
BASS.INPfile:The line
lst= 0s 1# last orbital to be kept in the basis sethas to be deleted.The line
orb= 0s 1# first orbital to apply kin.bal.has to be changed to reflect the first orbital not fromhfd.The line
orb= 5s 1# first orbital for diagonalizationcan either be kept or changed to reflect the first orbital not fromhfd.The lines
1 0.5001 3 0.5001that include orbitals fromhfdhave to be changed to1 0.5001
Build combined basis from
HFD.DATandWJ.DAT./bass- readsBASS.INP,HFD.DATandWJ.DATand writes newHFD.DAT
Convert combined HFD.DAT to format used for all-order and second-order codes
rm hfspl.1 hfspl.2- erase the fileshfspl.1andhfspl.2./bas_x- readsHFD.DATand writeshfspl.1andhfspl.2
Note
bdhf and bspl40 are used in place of tdhf and nspl40 if Breit corrections are included.
Note
hfd can work with partially opened shells, whereas tdhf and bdhf cannot.
The final hfspl.1 and hfspl.2 files are the basis set files that can be read from the all-order part of the package.