Isotope shifts

The transition frequency shift of an isotope \(A^\prime\) compared to an isotope \(A\) can be written as

\[\delta \nu_{AA^\prime} = (K_\mathrm{NMS} + K_\mathrm{SMS})(\frac{1}{A}-\frac{1}{A^\prime}) + K_\mathrm{FS} \delta \langle r^2 \rangle^{AA^\prime},\]

where \(A\) and \(A^\prime\) are mass numbers of the two isotopes and \(\langle r^2 \rangle\) is the mean-square nuclear radius. The first term on the right represents the mass shift and the second term represents the field shift. The mass shift consists of two parts: a normal mass shift (NMS) and a specific mass shift (SMS). For more detail, see references below [1][2].

Normal mass shift

The normal mass shift coefficient is given by

\[K_\mathrm{NMS} = \frac{\nu_\mathrm{expt}}{1822.888},\]

where \(\nu_\mathrm{expt}\) is the experimental frequency and the factor \(1/1822.888\) is the electron mass expressed in atomic mass unit.

Field shift

We use the finite-field method to calculate field shift coefficients, in which the initial Hamiltonian is modified with an arbitrary perturbation coefficient \(\lambda\):

\[H\rightarrow H_\lambda = H + \lambda H_\textrm{FS},\]

where the field shift operator \(H_\textrm{FS}\) modifies the Coulomb potential inside the nucleus. Here, the coefficient \(\lambda\) has to be chosen to be sufficiently large enough to make the effect of the field shift significantly larger than the numerical uncertainty of the calculations, while also small enough to keep the change in the energy linear with \(\lambda\). Typically \(\lambda=0.01\) meets both criteria. The energy eigenvalues \(E\) are obtained by diagonalizing \(H_\lambda\), and then the field shift coefficient \(K_\mathrm{FS}\) are found as

\[K_\mathrm{FS} = \frac{5}{6R^2} \frac{\partial E}{\partial \lambda}.\]

The conversion factor from atomic units to SI units used for the coefficient \(K_\mathrm{FS}\) is \(1\,\mathrm{a.u.}=2.3497\times 10^{-3}\, \mathrm{GHz/fm}^2\).

Specific mass shift

The finite-field approach is also used to calculate the specific mass shift, in which the initial Hamiltonian is modified with the SMS operator:

\[H\rightarrow H_\lambda = H + \lambda H_\textrm{SMS}.\]

The SMS coefficient is given by the corresponding derivative

\[K_\mathrm{SMS}=\partial E /\partial \lambda.\]

The conversion factor from atomic units to SI units for the coefficient \(K_\mathrm{SMS}\) is \(1\,\mathrm{a.u.}=3609.46\, \mathrm{GHz/amu}\).

Running isotope shift calculations

To run isotope-shift (IS) calculations, a few additional keys must be added to the HFD.INP, BASS.INP and CONF.INP files before running the CI procedure as usual. The relevant isotope-shift keys are:

  • K_is - selects the type of isotope shift to calculate

    • K_is = 0 - no isotope shift

    • K_is = 1 - field shift (FS)

    • K_is = 2 - specific mass shift (SMS)

    • K_is = 3 - normal mass shift (NMS)

    • K_is = 4 - total mass shift (SMS + NMS)

  • C_is - scaling parameter \(\lambda\) used to evaluate IS coefficients in the finite-field method (C_is = dR_nucl/R_nucl)

  • Klow - lower component key

Note

For isotope shifts, it is important to recompile pbasc and pconf with arrays for 2-electron integrals set to double precision type. This can be done by setting the flag -DUSE_DP_INTEGRALS during compilation, or in the params.f90 file by changing the value of Integer, Parameter :: type2_real = sp from sp to dp. You can confirm this change in the title of the BASC.RES and CONF.RES output files, which should mention double precision for 2e integrals.

via pCI-py scripts

Isotope shift calculations can also be automated using the pCI-py scripts. They generate basis sets and performs the corresponding CI calculations at different values of \(\lambda\) to obtain \(E(\lambda=0)\), \(E(\lambda=\pm \delta \lambda)\) and \(E(\lambda=\pm 2\delta\lambda)\). The field shift coefficient is then calculated using a five-point stencil finite difference formula using these energies.

To do this, set the keys in the config.yml file. For example, we can set our field shift calculation with C_is=0.01:

optional:
    isotope_shifts:
        include: True
        K_is: 1
        C_is: 0.01

References