Skip to content

Mixing Basis Sets

In some cases, it is desirable to use different basis sets for different parts of a molecule. For example, one might want to use a dense basis set for atoms involved in a reaction and a smaller basis set for the rest of the molecule. This could be thought of as a QM/QM method in analogy to QM/MM, i.e. multiple regions of the molecule being treated at a different level of detail. In the QM/MM case, part of the system is treated with QM and part with an MM force field. In the mixed basis QM/QM case, part is treated with a small basis set and part with a large basis set. There are two ways to do this in TeraChem.

Custom Basis File Method

In this method for mixed basis computations, one creates a custom basis file which will contain all required basis functions. Here is an example calculation of a hydrogen molecule with STO-3G and 3-21G basis set used for the first and the second hydrogen atom, respectively:

mixedbasis
ATOM    Hx
S 3
             3.4252509    0.154328967295
             0.6239137    0.535328142282
             0.1688554    0.444634542185


ATOM    Hy
S 2
             5.4471780    0.156284978695
             0.8245472    0.904690876670
S 1
             0.1831916    1.000000000000

and likewise a concatenated .ao file must be created. In this case:

mixedbasis.ao
Hx 0 1
1 1
1.000000e+00

Hy 0 1
2 2
-3.734069e-01
-7.173244e-01
1.255539e+00
-1.096019e+00

Note that the atomic number and mass is inferred from the first letter(s) of the element (H in this case). With the following files, we will get a mixed basis set calculation for \(H_2\):

h2mix.xyz
2

Hx     0.0000000047    0.0000000098   -0.3735490915
Hy    -0.0000017747   -0.0000051727    0.3650468754
h2mix.in
basis           mixedbasis
coordinates     h2mix.xyz
method          b3lyp
run             energy
end

File locations

There are two ways to ensure that TeraChem can find the needed files.

  • Use a local copy of the basis directory by setting the TeraChem environment variable appropriately. In that case, one should also ensure that a copy of the license.dat or license.key file exists in $TeraChem.

  • Specify the basis with an explicit path (in this example, the mixedbasis file is located in the same directory as the input file):

    h2mix.in
    basis           ./mixedbasis
    coordinates     h2mix.xyz
    method          b3lyp
    run             energy
    end
    

Multibasis Method

A second way to use multiple basis sets is possible when one desires to use the same basis set for all atoms corresponding to the same element. For example, if one wishes to use the LANL2DZ basis set for Fe and to use the 3-21G basis set for C and O in \(FE(CO)_5\). In this case, one can use the $multibasis input as exemplified below:

feco5-mix.in
basis 6-31g
$multibasis
Fe lanl2dz_ecp
C 3-21g
O 3-21g
$end
method b3lyp
coordinates feco5.xyz
run energy
end

In this case, any atoms other than Fe, C, O will be treated with a 6-31G basis set, as specified on line 1. The $multibasis keyword signals the beginning of the list of atoms and basis sets that will override the default 6-31g basis specified in line 1. The $multibasis section must be terminated with $end (line 6 above). Within the $multibasis section, simply list the elements and the basis to be used for that element, as is done in lines 3-5 above. When the Multibasis method is used, TeraChem will create two files in the scratch directory: JobName.multibasis and JobName.multibasis.ao. These are concatenated basis set and guess files, respectively (similar to what one would create using the Custom Basis File Method described above). Note that JobName is replaced by the jobname of the current job.