This page gives a description of the structure of atom files (potentials and basis sets) used in the DFT calculations. It is possible to construct atom files for atoms with pseudopotentials, all-electron atoms with bare-core potentials, and "floating" orbitals without any potentials. Pseudopotentials with non-local projectors up to l=2 are allowed (using l=3 as local), and partial core correction (Louie, Froyen, and Cohen) is supported. Currently (v2.53), even though the code will do spin-polarized DFT calculations, it cannot handle spin-polarized pseudopotentials. For each atom "type", the code requires information like the effective nuclear charge, radial grids on which to do its integrals (these same grids are used for local xc, Coulomb integrals), the pseudopotentials given on those grids, and the contracted Gaussian basis sets associated with that atom type.
The default units energy units are Rydberg, and the distance unit is bohr. In particular, pseudopotentials are given in Ry, and the Gaussian exponents in the basis sets are in bohr^-2.
Atom file format
The atom potential/basis data, while it can be input directly from the input file, is intended to be read in from a separate file specified in the input file. Like other input sections to the code, the atom file input is driven by keywords in such a way as to be self-documenting. Unlike other input sections, the atom file input (1) has a very strict order, and (2) data is usually highly formatted, not free-format. There is optional input data, enclosed in square brackets . Because the atom files are collected in libraries, and can last a long time, there are legacy pieces that serve no useful current function other than backward compatibility.
- type number, label
- itype, type_name (i2,a24)
- [notesN] - N lines of notes describing atom
- N comments line(s) (a80)
- [mass ] - atomic mass for this atom type
- atom_mass (d16.8)
- [energy] - reference energy for atom
- atom_energy (d16.8)
- effective nuclear charge - valence charge of atom
- z_valence (d16.8)
- if( z_valence .eq. 0 ) goto basis: - skips grids/ppots for floating orbs
- pseudopotentials: Lmax, and effective gaussian range
- L_max, gaussian (free format int, real)
- [functional type used in generating potential]
- gmethod (a8)
- radial mesh: number of points for local and non-local pot integrals
- N_loc, N_nonloc (two free format integers)
- mesh points for nuclear potential
- ( rmesh(i), i = 1, N_loc ) (3x,6f12.8)
- radwts: weights for radial points
- ( weight(i), i = 1, N_loc ) (3x,6f12.8)
- if( L_max .lt. 0 ) goto basis: - skips ps-pot for bare core atom
- do L_pot = 0,L_max
- non-local potential: l,potential*integration weight
- L_pot, ( pspot(i,L_pot), i = 1, N_loc ) (i2,1x,6f12.8/(3x,6f12.8))
- [partial core charge density]
- ( corecharge(i), i = 1, N_loc ) ("-3",1x,6f12.8/(3x,6f12.8))
- number of radial functions - number of shells in basis
- n_shell (i2)
- do i_shell = 1, n_shell
- angular momentum, number of alphas
- L_shell, n_gaus_shell (i2,1x,i2)
- alphas - gaussian exponents of contracted function
- ( alpha(i), i = 1, n_gaus_shell ) (4d16.8)
- wave function coefficients - contraction coefficients
- ( c_alpha(i), i = 1, n_gaus_shell ) (4d16.8)
- shell occupancies - reference atom shell occupancies
- ( occup_shell(i_shell), i_shell = 1, n_shell ) (3x,6f12.8)
- end atom file
Detailed explanation of input data
type number, label
This data, the type number (int) and an atom name (char) are not used in the code (unless the atom data is placed directly in the SeqQuest input file rather than through a separate file, in which case the type number keeps the sequence number of the atom type). This input is subject to change at some future date. Currently, enter a "1" for the atom type number, and give a name to the atom. Up to 24 characters are kept internally, but using the elemental symbol is usually best.
The purpose of this section is to document the pedigree of the atom file – who constructed the file when, using what kind of pseudopotential generator, and basis refined in what kind of system, etc.
This data is optional (and can be overridden in the setup phase input). It is used in the dynamical geometry (ASD, damped dynamics, MD) updates. The units are atomic units, e.g., mass(carbon) = 12.0.
This data is optional (and can be overridden in the setup phase input). It is a "reference" energy (Rydberg) for this atom type, and is used in computing a "binding energy" for a calculation, i.e., the total scf energy minus the sum of the atomic reference energies.
effective nuclear charge
The effective nuclear charge … the valence Z of the pseudo-atom.
pseudopotentials: Lmax, and effective gaussian range
The max angular momentum included in the pseudopotential, and an effective range for the potential, expressed as a Gaussian exponent. This latter is used in computing a cutoff criterion for the evaluation of non-local potential matrix elements between basis functions (themselves composed of Gaussians). Since the potential is expressed on a radial grid (rather than as Gaussian fits), an effective Gaussian must be provided. The practice for Quest is to use the appropriate longest (i.e., smallest) Gaussian in the pseudopotential fits in: PRB 26, 4199 (1982).
functional type used in generating potential OPT
Optional data. Documents which flavor of DFT used to generate the potential. Should use the same flavor of DFT to generate the atomic pseudpotential as in the Quest calculation, but the code does not currently enforce this.
The number of points in the radial mesh about this atom type, and the maximum number of points used
mesh points for nuclear potential
The radial mesh, currently logarithmic, used in evaluating both the local (xc and Coulomb) and non-local pseudopotential integrals over this atom. It must be strictly monotonically increasing, and must not include the origin (r=0).
radwts: weights for radial points
The integration weights for each of the radial points.
The pseudopotential projectors, by angular momentum, on the radial mesh.
partial core charge density
Optional data. If provided, this is the partial core charge density as described in Louie, Froyen, and Cohen.
number of radial functions
For the basis set, the number of independent contracted radial shells. In other words, the number of "zetas". For example, a double-zeta-s, double-zeta-p, single-zeta d-polarization basis for a carbon atom would amount to five shells.
angular momentum, number of alphas
The angular momentum for this shell, and the number of contracted Gaussians in this shell.
The exponents for the Gaussians in this contracted function. These values must be in strictly increasing order, and should be separated by at least a factor of two between successive exponents.
wave function coefficients
The contraction coefficients for the primitive Gaussians in this shell. The full contracted basis function need not be normalized; the code will automatically apply a normalization internally.
In the order of the basis shells given above, the (spherical) occupancies of the shells that define the "reference" atom density used in Quest.
Visit a Quest atom file library directory.