The GaussianBasisSet class is used describe a basis set composed of atomic gaussian orbitals.
Following is a table with available basis sets listing the supported elements for each basis and the number of basis functions for H,
, first row,
, and second row,
, atoms. Basis sets with non-alpha-numerical characters in their name must be given in quotes.
If this boolean parameter is true then 5D, 7F, etc. will be used. Otherwise all cartesian functions will be used. The default depends on the particular basis set.
name
This is a string giving the name of the basis set. The above table of basis sets gives some of the recognized basis set names. It may be necessary to put the name in double quotes. There is no default.
basis
This is a vector of basis set names that can give a different basis set to each atom in the molecule. If the element vector is given, then it gives different basis sets to different elements. The default is to give every atom the basis set specified in name.
element
This is a vector of elements. If it is given then it must have the same number of entries as the basis vector.
basisdir
A string giving a directory where basis set data files are to be sought. See the text below for a complete description of what directors are consulted.
basisfiles
Each keyword in this vector of files is appended to the directory specified with basisdir and basis set data is read from them.
matrixkit
Specifies a SCMatrixKit object. It is usually not necessary to give this keyword, as the default action should get the correct SCMatrixKit.
Several files in various directories are checked for basis set data. First, basis sets can be given by the user in the basis section at the top level of the main input file. Next, if a path is given with the basisdir keyword, then all of the files given with the basisfiles keyword are read in after appending their names to the value of basisdir. Basis sets can be given in these files in the basis section at the top level as well. If the named basis set still cannot be found, then GaussianBasisSet will try convert the basis set name to a file name and check first in the directory given by basisdir. Next it checks for the environment variable SCLIBDIR. If it is set it will look for the basis file in $SCLIBDIR/basis. Otherwise it will look in the source code distribution in the directory SC/lib/basis. If the executable has changed machines or the source code has be moved, then it may be necessary to copy the library files to your machine and set the SCLIBDIR environmental variable.
The basis set itself is also given in the ParsedKeyVal format. It is a vector of shells with the keyword :basis: followed by the lowercase atomic name followed by : followed by the basis set name (which may need to be placed inside double quotes). Each shell reads the following keywords:
type
This is a vector that describes each component of this shell. For each element the following two keywords are read:
am
The angular momentum of the component. This can be given as the letter designation, s, p, d, etc. There is no default.
puream
If this boolean parameter is true then 5D, 7F, etc. shells are used. The default is false. This parameter can be overridden in the GaussianBasisSet specification.
exp
This is a vector giving the exponents of the primitive Gaussian functions.
coef
This is a matrix giving the coeffients of the primitive Gaussian functions. The first index gives the component number of the shell and the second gives the primitive number.
An example might be easier to understand. This is a basis set specificition for STO-2G carbon: