Atom file format

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))
enddo
[partial core charge density]
     ( corecharge(i), i = 1, N_loc ) ("-3",1x,6f12.8/(3x,6f12.8))basis:
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)
enddo
shell occupancies - reference atom shell occupancies
     ( occup_shell(i_shell), i_shell = 1, n_shell ) (3x,6f12.8)
end atom file

Return to Top

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.

notesN

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.

mass

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.

energy

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.

radial mesh:

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.

non-local potential:

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.

alphas

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.

shell occupancies

In the order of the basis shells given above, the (spherical) occupancies of the shells that define the “reference” atom density used in Quest.

Examples

Visit a Quest atom file library directory.