Questaal Home
Navigation

Scalar Dirac equation, and numerical considerations

Table of Contents


Preliminaries


Questaal codes normally solve the Dirac equation in a scalar relativistic approximation for partial waves inside the augmentation spheres, though some parts of the code (mostly ASA codes) have extensions to the full Dirac equation.

These integrations are performed numerically on a discrete radial mesh. For the most part you don’t need to worry about how integrations are carried out; for the most part Questaal takes care of the numerics pretty well without you needing to delve into the details. If you are haveing an issue and looking for a quick fix, see documentation for the RSEDEF token.

There are details that at times can be important, (occasionally the integrators can trip up or be a little inaccurate), which this page documents.

Scalar Dirac equations

The scalar relativistic approximation reduces the four component Dirac equation to two components (or two pairs of components in a spin polarized case). The spin orbit couping that connects the two pairs can be included perturbatively and has a structure of the form . The two components consist of a large component and a small component . In a spherical potential the two satisfy these coupled equations

where

is the speed of light, is the energy, is the nuclear potential (in Ry, the units Questaal uses) and the external potential. Note that the partial waves have an quantum number, but the index is suppressed.

Boundary Conditions near the origin

A second order differential equation (or two coupled first order ones) has two solutions, one regular at the origin and one irregular. On physical grounds the solution must be regular at the origin, and for the scalar Dirac case the behavior at the origin is defined by

Boundary Conditions at the augmentation radius

We are left with one free boundary condition. For the free atom, there is a physical requirement that the wave function is normalizable, which requires the solution decay as . Solutions that are regular both at the origin and at occur only at discrete energies ; this is how the quantization condition manifests itself.

In the solid with an all-electron method, the partial waves are evaluated only up to a “muffin tin” radius (aka augmentation radius) , and joined to envelope functions there, which for Questaal are smoothed Hankel functions, jigsaw puzzle orbitals, or possibly plane waves. The partial wave must join smoothly and differentiably to the envelope function: matching value can always accomplished by normalization of the partial wave, but to match the slope (or logarithmic derivative, ) is valid only for a particular . Thus we have freedom to choose either or , and there is a 1-1 correspondence between the two. (More precisely there is a multiplicity of energies for a given , each with a different number of nodes : there is a 1-1 mapping between and the () pair.)

Solving the Dirac equation Radial Mesh

and must be integrated numerically on a radial mesh. These functions will oscillate very rapidly for small where they must be orthogonalized to core levels; thus meshes are typically logarithmic. Questaal uses a modified form: a shifted logarithmic mesh. For points , the mesh is

Since must be the augmentation radius, there is only one degree of freedom in the choice of and .

When is small compared to unity the are linearly spaced, with spacing ; as increases it smoothly tums into a logarithmic mesh where is constant.

To control stability there are several considerations:

  1. When is much larger than one, the mesh is logarithmic with fixed . If is too large, the integration near the augmentation radius is inaccurate.

  2. When is small compared to unity the are linearly spaced, with spacing If is too small, the integrator becomes inaccurte as numerical problems with points too closely spaced appears.

  3. In a linear method not only the partial wave, but its energy derivative, must be integrated.

  4. Core states with very negative decay exponentially fast for large .

To address the last issue, the partial wave is integrating outward from the origin, and inward from to some central meeting point . The logarithmic derivative of the two solutions must match at , which is done by fixing and varying , or the reverse. It is a nonlinear problem either way, and either or must be determined by successive iterations. (Most of the time in the Questaal codes, is fixed and is varied.)

Legacy and modern implementations

As for points 1, and 2, it has been found empirically that is quite reliable; this is the typical default value. (You can explicitly specify for a particular species in the input file.) is fixed by an internal formula (see subs/rmesh.f in the distribution). In the legacy code the formula was a simple function of the nuclear atomic number . However it can happen that is too small, especially when is small, and the mesh generator can adjust for this.

Regarding point 3, (actually the relativistic analog ) can be computed by finite difference at several energies, or by solving an inhomogenous Schrodinger equation.

Input file switches controlling how the integrations are performed: the RSEDEF token

To preserve backward compatibility, Questaal uses legacy algorithms, but it is generally ore accurate to use more modern replacements. Do this by adding this to the OPTIONS category : RSEDEF=0 in the input file. This does three things: (1) replaces the legacy Numerov solver with a Runge Kutta solver, (2) solves with an inhomogenous equation, rather than finite differences of the homgenous one, and (3) safeguards against becoming too small.

To set options individually, see the following table.

Operationlegacy codealternativeTag
solverNumerovRunge KuttaHAM_RKRSE
finite differenceinhomogeneous Schrodinger equationOPTIONS_NEPHD, 2nd argument
determine function of possibly scaled so that is not too smallOPTIONS_RBFAC