Pseudo-potential

KSSOLV uses pseudo-potentials to model nuclear potentials experienced by electrons. By default, the Optimized Norm-Conserving Vanderbilt (ONCV) pseudo-potentials are used. One can also specify this choice by using the following command

>> kssolvpptype('default');

It is also possible to use other types of pseudo-potentials. To do that, users should first download pseudo-potential files for desired atoms to the folder PATH_TO_KSSOLV/ppdata or create subfolders in this folder. Currently, KSSOLV supports two file formats for pseudo-potential, i.e., UPF and PSP8. The pseudo-potential file name should follow the convention as asym+sep+pptype+*+.ext, where asym denotes the atom symbol, sep denotes the separator (_ or -), pptype denotes the type of pseudo-potential, ext denotes the file extension, and * means any string. Examples of such filenames include Ag_ONCV_PBE-1.0.upf and Si.pbe-hgh.psp8. Once the pseudo-potential files are prepared, users can set the pptype and ext parameters through kssolvpptype() function. KSSOLV then adopt these imported pseudo-potential files instead of those default ones.

Why Pseudo-potential?

The electrons of each atom are divided into two group. The electrons that fill up inner shells are called core electrons, whereas electrons in the outermost (major) shell that is not completely filled are called valence electrons. For example, Silicon has 14 electrons. Its electron configuration is commonly written as \(1s^2 2s^2 2p^6 3s^2 3p^2\). The two electons in the 1s and 2s orbtials as wells as the six electrons in the 2p orbital are all core electrons that fill up the first and second major shells. The two electrons in the \(3s\) orbital and two electrons in the \(3p\) orbtial are valence electron because the third shell is partially filled.

Because core electrons of an atom are inert (chemically less active), they are combined with the nucleus to form an ionic core. This allows us to focus on the valence electrons which are more important in determining the chemical properties of a polyatomic system. Furthermore, the use of pseudo-potential allows us to remove the singularity at the origin of the nuclear potential \(V(r) = Z/|r|\), where \(Z\) is the atomic charge.

Pseudo-potential Construction

We now sketch the basic steps involved in constructing an atomic pseudo-potential. The total pseudo-potential of a polyatomic system (molecules or solids) is the sum of all atomic pseudo-potentials associated with all atoms in the system and must account for the positions of the atoms.

Let \(n_{\mathrm{core}}\) be the number of core electrons in an atom of interest, and \(R_{n_{\mathrm{core}}+i}(r)\) be the radial part of the i th valence electron orbital of an atom centered at the origin of a 3D coordinate system with nuclear charge \(Z\), i.e., \(R_{n_{\mathrm{core}}+i}(r)\) is the radial part of the eigenfunction of the atomic Hamiltonian \(H_a = -\nabla^2 - Z/r\) (in atomic units) associated with the eigenvalue \(\varepsilon_{n_{\mathrm{core}}+i}\). We construct a pseudo-potential \(V_{p}(r)\) such that the radial part of the i th eigenfunction of the pseudo-Hamiltonian \(H_p = -\nabla^2 - V_{p}(r)\), which we denote by \(\tilde{R}_i(r)\), matches \(R_{n_{\mathrm{core}}+i}(r)\) for \(|r| > r_c\), where \(r_c\) is a cutoff radius. Within the cutoff radius, \(\tilde{R}_i(r)\) is a parametrized function that satisfies a number of norm conservation and smoothness constrains. For example,

\[\int_{0}^{r_c} |\tilde{R}_i(r)|^2 dr = \int_{0}^{r_c} |R_{n_{\mathrm{core}}+i}(r)|^2 dr,\]

or more generally,

\[\int_{0}^{r_c} \tilde{R}_i(r)\tilde{R}_j(r)^2 dr = \int_{0}^{r_c} R_{n_{\mathrm{core}}+i}(r) R_{n_{\mathrm{core}}+j} dr.\]

The functions \(\tilde{R}_i(r)\) and \(\tilde{R}_j(r)\) are required to be orthogonal for \(i\neq j\).

There are a number of ways to parameterize \(\tilde{R}_i\) and obtain the values of the parameters by imposing different types of constraints. The most well known is the Troullier-Martins scheme []. But there are many others. Hence a large variety of pseudo-potentials one can choose from.

Once \(\tilde{R}_i\) is determined, we can compute the i th component of the atomic pseudo-potential \(V_{p}^{(i)}(r)\) by solving the following problem

\[\left[-\nabla^2 - V_{p}^{(i)}(r) \right]\tilde{\phi}_i = \varepsilon_i \tilde{\phi}_i,\]

where \(\tilde{\phi}_i\) is the i th eigenfunction of \(H_p\) with \(\tilde{R}_i\) as its radial part. The solution can be written as a function in the form

\[V_{p}^{(i)}(r) = \left[ -\nabla^2 \tilde{\phi}_i - \varepsilon_i \tilde{\phi}_i \right]/ \tilde{\phi}_i\]

or an operator in the form

\[V_{p}^{(i)}(r) = | -\nabla^2 \tilde{\phi}_i - \varepsilon_i \tilde{\phi}_i \rangle \langle \tilde{\phi}_i |,\]

where we have used bra \(| \cdot \rangle\) and ket \(\langle \cdot |\) notation to distinguish a vector and its transpose.

The latter form is convenient when we combine all components into a single atomic total pseudo-potential

\[V_{p}(r) = \sum_i V_{p}^{(i)}(r) = \sum_i | -\nabla^2 \tilde{\phi}_i - \varepsilon_i \tilde{\phi}_i \rangle \langle \tilde{\phi}_i |.\]

This form can be symmetrized to yield

\[V_{p}(r) = \sum_i V_{p}^{(i)}(r) = \sum_i \frac{| \beta_i \rangle \langle \beta_i |}{ \langle \beta_i, \tilde{\phi}_i \rangle},\]

where \(\beta_i = -\nabla^2 \tilde{\phi}_i - \varepsilon_i \tilde{\phi}_i\). This is often known as the Kleinmann and Bylander (KB) form. This low rank representation is convienent in practical computation, and is applicable in both real and reciprocal spaces.

Note that the index i used in the summation above corresponds to a set of quantum numbers associated with an eigenfunction of atomic Schrodinger operator. One of the indices in the summation can be taken out and used as a reference. We can use the function form of the corresponding \(V_{p}^{(i)}(r)\) to define a local pseudo-potential in real space. Therefore, pseudo-potentials are often written as

\[V_{p}(r) = V_{p}^{\mathrm{loc}}(r) + V_{p}^{\mathrm{nl}}(r),\]

where \(V_{p}^{\mathrm{nl}}(r)\) is represented in KB form.

All atomic pseudo-potentials for different atoms must be combined to form the total pseudo-potential experienced by all valence electrons. We refer users to the developer’s guide for details on how local and non-local pseudo-potentials are implemented in KSSOLV.