ATK solves the Kohn-Sham equations by expanding the wave functions using
localized, numerical orbitals as basis sets [2]. Five
different types of basis sets are available, and they are listed below in order of
increasing size and accuracy. In most practical cases, experience has shown that
the DoubleZetaPolarized basis set gives very good accuracy, but
for large systems with e.g. many transition metal atoms this basis set might be
too big to fit in the computer memory.
The following AtomicOrbitals objects are singleton values
that take no options nor return any values:
SingleZeta;
least accurate; a single basis orbital for each valence orbital
SingleZetaPolarized;
SingleZeta plus one basis orbital for the first unoccupied
shell
DoubleZetaPolarized;
DoubleZeta plus one basis orbital for the first unoccupied
shell
DoubleZetaDoublePolarized;
most accurate; DoubleZeta and two basis orbitals for the first
unoccupied shell
The SingleZeta basis set covers the valence configuration, which
contains all open shells and, in some cases, also some high-energy closed shells
(such as the d shell in transition metals).
Set the basis size for all elements to the DoubleZeta basis set
basis_set_parameters = basisSetParameters(type=DoubleZeta)
Specify a smaller basis set for Hydrogen elements than the default basis set.
my_basis = basisSetParameters( type=SingleZeta, element=Hydrogen ) my_method = KohnShamMethod( basis_set_parameters=my_basis, exchange_correlation_type=GGA.PBE )
Using the basisSetParameters() method of NanoLanguage, it is possible to customize the predefined basis sets supplied with ATK. In the following subsections we will describe how these parameters affect the basis sets.
Please see basisSetParameters() for a presentation of the various parameters that control the basis functions within the basis set.
The basis functions are found by solving the radial Schrödinger equation for
the atom with a confinement potential. The confinement potential is defined by
the parameters,
,
and
through the equation
The double zeta orbital is constructed through a procedure reminiscent of
the splitting of a Gaussian basis set. The split orbital is obtained by
constructing an analytical basis orbital that matches the first zeta orbital
smoothly at the radius
. The functional form
used for the split orbital is
The radius
is determined by specifying the
norm of the split orbital using the split_norm argument of
the basisSetParameters() method.
The polarization orbitals have higher angular momentum than the valence
orbitals. In ATK such orbitals are generated by perturbing the single zeta
orbitals by an electric field, and extracting the
component
of the perturbed orbital.
Figure 64:
The lower part of the plot shows the
effective potential
for hydrogen (dashed) with the soft confinement potential (solid). The
upper part shows the lowest occupied state of the confined potential
(solid line), and the atomic
-wave function is indicated by
the dashed curve. The dotted curve shows the solution with energy shift
0.01 Rydberg. The position of the first node of this
solution defines the position of
.
One can inspect which type of orbitals that are included in the basis set for a particular atom in the system by running the self-consistent calculation with verbosity level larger than or equal to 9.