Name

basisSetParameters Controls the basis set used on a global (all atoms) or per atom basis.

Synopsis

Namespace: ATK.KohnSham or ATK.TwoProbe
dictionary basisSetParameters(
type,
radial_sampling_dr,
energy_shift,
delta_rinn,
v0,
charge,
split_norm,
element
)

Description

The function basisSetParameters() returns a dictionary with the parameters that are used to generate the basis set orbitals which are used to solve the Kohn-Sham equations. The basis set orbitals used by ATK have compact support, i.e. they vanish identically outside a certain confinement radius. This vastly reduces the number of Hamiltonian and overlap matrix elements that must be computed, thereby increasing the performance of the DFT calculations. The function basisSetParameters() returns a dictionary with the parameters that are used to generate the basis set orbitals which are used to solve the Kohn-Sham equations. The basis set orbitals used by ATK have compact support, i.e. they vanish identically outside a certain confinement radius. This vastly reduces the number of Hamiltonian and overlap matrix elements that must be computed, thereby increasing the performance of the DFT calculations.

List of arguments

type

The size of the basis set.

Default: DoubleZetaPolarized

radial_sampling_dr

The separation between the points used for the radial representation of the numerical orbitals.

Default: 0.001*Bohr

energy_shift

Determines the confinement radius r_c of the numerical orbitals. The confinement radius is taken as the position of the first node of the wave function with energy E_\mathrm{nl} + energy_shift, where E_\mathrm{nl} is the energy of the corresponding pseudo-atomic eigenstate.

Default: 0.01*Rydberg

delta_rinn

Defines the inner radius r_\mathrm{inn} of the soft confinement potential through the expression r_\mathrm{inn} =\mathrm{delta\_rinn} \cdot r_c. Valid numbers are in the range from (but not including) 0 to 1.

Default: 0.8

v0

Defines the softness of the confined potential. If this parameter is zero, a hard-wall potential is used.

Default: 40.0*Rydberg

charge

Defines the net charge of that atom when generating basis orbitals.

Default: 0.0

split_norm

The split_norm parameter is used to find the matching radius of an analytical orbital which splits the first zeta orbital into a double zeta basis. The matching radius is determined by specifying that the norm of the split orbital relative to the norm of the first zeta orbital should have the value split_norm. Valid numbers are in the range from (but not including) 0 to 1.

Default: 0.15

element

By giving an element as a parameter, the above parameters only apply for that particular element. If no element is given, the parameters will apply to all elements in the calculation.

Default: None

Usage examples

Modify the default basis set parameters slightly:

basis_set_parameters = basisSetParameters(
    energy_shift = 1e-4,
    split_norm = 0.2
    )

Specify specific basis set parameters for hydrogen only:

basis_set_parameters = basisSetParameters(
    split_norm = 0.4,
    element = Hydrogen
    )

Notes

Different basis set parameters for different elements can be used by creating a basisSetParameters() dictionary for each element, and then supply a list of such dictionaries to the method used for SCF calculations:

basis_set_H = basisSetParameters(
    type = SingleZeta,
    element = Hydrogen
    )
basis_set_Li = basisSetParameters(
    type = DoubleZeta,
    element = Lithium
    )
dft_method = KohnShamMethod(
    [basis_set_H, basis_set_Li]
    )

In this example, all hydrogen atoms will use a SingleZeta basis set, all lithium atoms a DoubleZeta set, and all other elements will use the default DoubleZetaPolarized basis set size.

By decreasing the energy_shift, the confinement radius increases. This potentially brings more atoms within interaction radius of each other, which can improve the accuracy of the calculation quite substantially in some cases, in particular for molecules. Except for this parameter (and of course the specification of the basis set type), the basis set parameters never really have to be changed.

By decreasing the radial_sampling_dr, the sampling of the basis set functions increases, making the radial function smoother. This can in some cases help removing noise in the calculation of total energy, e.g. when calculating the lattice constants for metals and semiconductors.

More details on the generation of the basis functions can be found in Appendix B of the ATK 2.0 manual.