Non-Standard Basis Sets in Gaussian09





For metal containing systems, you often want to specify different basis sets for different atoms. For example, use can use an all-electron basis set for light atoms and use an effect core potential (ECP) basis set for heavy atoms. To do this, you need input the basis set manually. In GaussView, go to the Gaussian Calculation Setup dialog, select the Method tab and set Basis Set: to GENECP. Then select the Add. Inp. tab, input the basis set manually. Here is an example for the detailed basis set input format for V(CO)6:

Note: Blank line placement is critical in Gaussian input. One of the most common reasons for failure when setting up these calculations is omission of the necessary blank line at the end of the file. Explicitly add a few blank lines at the end just to be safe.


              !!! One blank line after geometry section.
O  0          !!! This is O as in Oxygen, followed by a zero. The zero means all Oxygen atoms. 
6-31G(d,p)    !!! All-electron 6-31G basis set with polarization functions.
****          !!! 4 asterisks mark the end of Oxygen basis set input
C  0          !!! This is C as in Carbon, followed by a zero. The zero means all Carbon atoms. 
6-31++G(d,p)  !!! All-electron 6-31G basis set with polarization and diffuse functions.
****          !!! 4 asterisks mark the end of one element basis set input
V  0          !!! V is Vanadium; the zero means all Vanadium atoms. 
SDD           !!! Stuttgart/Dresden basis set for outer shell electrons on V
****          !!! 4 asterisks mark the end of one element basis set input
              !!! a blank line between basis sets for electrons and ECP.
V 0           !!! The ECP for the V atom.
SDD           !!! The ECP for the V atom.
              !!! Two continuous blank lines means the end of input file.
              !!! Two continuous blank lines means the end of input file.

More detailed basis set input format can be found in the Gaussian09 online manual under the keyword Gen, GenECP.

Some suggestions for the choice of basis sets for DFT calculations:
For light atoms from H to Ar, we would recommend double-zeta all-electron basis set with polarization functions. For example: 6-31G** or cc-pVDZ. Remember to add diffuse functions for excited state calculations. For transition metals: All-electron 6-31G and cc-pVDZ basis set is available only for the first row transition metals. We suggest you always add diffuse and polarization functions (6-31++G**) for atoms from Sc to Zn. We recommend the Stuttgart/Dresden (SDD) ECP basis set with relativistic effect corrections for heavier atoms. The SDD keyword in your Gaussian input file give the built in SDD version. You can also get the latest version of the SDD basis set. Remember to select the Data format as Gaussian before you click the element in the periodic table, and copy both the pseudopotential and the basis set. Please refer below to Example 4: Direct basis set input


Other examples:The following are example inputs for different ways of setting up a single point energy calculation on H3PAuF. All of the basis set sections are placed after the molecule specification, but if you have other additional sections, make sure you put them in the correct order (see the manual). Some of these methods require obtaining basis functions from an external source. The EMSL Basis Set Exchange (https://bse.pnl.gov/bse/portal) contains many popular basis sets (but does not always contain the latest SDD). Specify Gaussian94 in the Format field when requesting functions from this site.

Example 1: Specifying mixtures of standard basis sets:

%chk=filename.chk
%mem=3.5GB
%nproc=1
#p rb3lyp/genecp 5d 7f

6-31G(d,p) basis on main-group, Lanl2dz on gold

{molecule specification}

H F P 0
6-31G(d,p)
****
Au 0
lanl2dz
****

Au 0
lanl2dz

This file calls for the LanL2DZ basis set on gold and the 6-31G(d,p) basis set on everything else. In the Route section, the basis set keyword is replaced by genecp and the number of d and f functions to use (5d and 7f is default for almost everything except some of Pople's X-X1G basis sets).

After the molecule specification, list the atoms for which you want to use the first basis set, separated by spaces and ending with a 0 (zero) character. The next line is the name of the basis set, and after that are four (necessary) *characters. Make sure all of the atoms are associated with a basis set, and no atoms are specified that are not present in your molecule. You can include sections for individual atoms, e.g.you could specify a different basis set for H1 and then H would mean all atoms not H1.

The pseudopotential (ECP) section is the same as the basis section except that no * characters are placed after the entry.


Example 2: Custom basis set through external files:

%chk=filename.chk
%mem=3.5GB
%nproc=1
#p rb3lyp/genECP 5d 7f

6-31G basis on main-group, Stuttgart on gold

{molecule specification}

H F P 0
6-31G(d,p)
****
@/home/username/directory/gold_stuttgart.gbs/N

If you have a custom basis set that you need to use for many calculations, the most efficient option may be to specify it through a link to an external basis set file (see below for a description of this file). This circumvents the necessity of entering the complete basis set in every input file. The input is in the same format as in Example 1 except that gen must be replaced by genECP in the Route section, because we want to read both the basis set and the ECP from an external file. The file is designated as a link by the @ character, and the complete path must end with /N.
Note: you cannot build an all-purpose file for all possible jobs, because no atoms can be present in the file that are not in your calculation.


Example 3. Adding extra basis functions:

%chk=filename.chk
%mem=3.5GB
%nproc=1
#p rb3lyp/lanl2dz 5d 7f extrabasis

Extra polarization on P

{molecule specification}

P   0
 P   1  1.00
      0.298000000E-01      1.00000000
 D   1  1.00
      0.364000000          1.00000000
****

It is very often desirable to add extra functions to a standard basis set, for example the LanL2DZ basis as implemented in Gaussian lacks polarization functions on third-row elements. Here the basis set is specified in the Route section as normal, and the extrabasis keyword is added. The functions to be added are placed as in Example 1 but the exponents and coefficients are input directly (see the basis set file description below for formatting). In this example, an extra set of p and d functions has been added to phosphorus atoms. This basis set contains 53 basis functions with 102 primitives, compared with 45 basis functions and 93 primitives for Gaussian's standard LanL2DZ.

Note: if you use this option, make sure your extra functions are compatible with your basis set (e.g. were developed for that basis set).


Example 4: Direct basis set input:

%chk=filename.chk
%mem=3.5GB
%nproc=1
# rb3lyp/genecp 5d 7f

6-31G(d,p) basis on main-group, Stuttgart on gold, direct input

{molecule specification}

H F P 0
6-31G(d,p)
****
Au 0
 S   2  1.00
       30.1965370           0.473300000E-02
       9.72597300          -0.354382000  
{truncated for space}
 D   1  1.00
       0.455120000E-01      1.00000000  
****

Au 0
AU-ECP   4   60
G POTENTIAL         
 1
2          1.00000000        0.00000000
{truncated for space}
F-G POTENTIAL       
 2
2          4.78980000       30.56847500
2          2.39491000        5.18377400

Here the input format and keywords are the same as those in Example 1, except that the basis functions for gold have been entered explicitly. This is the most general, but least user-friendly, method of basis set input. Notice that the inputs can be mixed: here a standard keyword is used for everything except gold.


The basis set file:

Au 0
 S   2  1.00
       30.1965370           0.473300000E-02
       9.72597300          -0.354382000  
 S   1  1.00
       5.08040600           1.00000000  
 S   1  1.00
       1.72265700           1.00000000  
 S   1  1.00
       0.726459000          1.00000000  
 S   1  1.00
       0.903540000E-01      1.00000000  
 S   1  1.00
       0.221060000E-01      1.00000000  
 S   1  1.00
       0.641500000E-02      1.00000000  
 P   4  1.00
       13.8382190           0.361790000E-01
       5.19578700          -0.328303000  
       1.79804500           0.665388000  
       0.666105000          0.552666000  
 P   1  1.00
       0.154336000          1.00000000  
 P   1  1.00
       0.340000000E-01      1.00000000  
 D   2  1.00
       6.33700100          -0.441030000E-01
       1.48069700           0.462115000  
 D   1  1.00
       0.528382000          1.00000000  
 D   1  1.00
       0.171117000          1.00000000  
 D   1  1.00
       0.455120000E-01      1.00000000  
****

Au 0
AU-ECP   4   60
G POTENTIAL         
 1
2          1.00000000        0.00000000
S-G POTENTIAL       
 2
2         13.20510000      426.70984000
2          6.60255000       35.93882400
P-G POTENTIAL       
 2
2         10.45202000      261.16102300
2          5.22601000       26.62628400
D-G POTENTIAL       
 2
2          7.85110000      124.75683100
2          3.92555000       15.77226000
F-G POTENTIAL       
 2
2          4.78980000       30.56847500
2          2.39491000        5.18377400

Basis set files have the extension .gbs, and can also include ECPs as in the example above. The format of these files is exactly the same as if it were input directly into filename.com. Therefore, do not add anything that you do not want in the Gaussian input (atoms not present in your molecule, etc.). There is more than one basis set specification format but the above is that used by the majority of Gaussian-compatible basis sets. They can generally be cut and pasted directly from the EMSL website with a little touching up. A file can list basis functions for more than one atom, but each atom must have its own input (you wouldn't use the same basis functions for different elements).

The first line of the basis set input contains the atom name followed by a 0 (zero). Next, each shell is listed: a line containing orbital type (s, p, d, etc.), degree of contraction (number of basis functions in the shell), and the scale factor (usually 1.00); lines containing exponents and contraction coefficients, respectively, for each basis function. Some basis sets list combined shells for s and p functions (labeled sp shells), which use the same exponent but different contraction coefficients. In this case each function specification line contains three numbers: the exponent, the s contraction coefficient, and the p contraction coefficient, respectively. The ECP specification format is more complicated from a theoretical standpoint, but whatever ECP you are using will probably already be in the correct format (see above note about EMSL Format selection).