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
The size of the basis set.
Default: DoubleZetaPolarized
The separation between the points used for the radial representation of the numerical orbitals.
Default: 0.001*Bohr
Determines the confinement radius
of the numerical
orbitals. The confinement radius is taken as the position of the first node of
the wave function with energy
+
energy_shift, where
is the
energy of the corresponding pseudo-atomic eigenstate.
Default: 0.01*Rydberg
Defines the inner radius
of the
soft confinement potential through the expression
. Valid numbers
are in the range from (but not including) 0 to 1.
Default: 0.8
Defines the softness of the confined potential. If this parameter is zero, a hard-wall potential is used.
Default: 40.0*Rydberg
Defines the net charge of that atom when generating basis orbitals.
Default: 0.0
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
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
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 )
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.