Gaussian: Common Topics and Useful Procedures

MGCF - College of Chemistry, University of California, Berkeley

This file is for advanced Gaussian issues and assumes you have the skills from our Intro to Gaussian and Gaussian Sn2 Transition State tutorials.


Creating and Submitting Input Files, Advanced Version

Starting Jobs from Checkpoint Files

Converting Between Gaussian Versions

Vibrational Frequencies

Transition State Searches

ONIOM Calculations

G3 Energy Calculations Using Previously-Calculated Structures

NBO (Natural Bond Orbital) Analysis

Generating Cube Files

Obtaining Graphics Files

High-Quality MO (or NBO) Pictures

NBOview and .47 files

Mapping Electrostatic Potential on Density in Gaussview

Non-Standard Basis Sets in Gaussian09

Setting up Redundant Coordinates

NMR Calculations

Technical Support

Creating and Submitting Input Files, Advanced Version:

You can manually edit input files without Gaussview but it helps to use Gaussview to make the basic file.

Saving files: To save an input file in Gaussview without submitting the calculation, click Retain in the Gaussian Calculations Setup menu instead of Submit. You can then save the file through File > Save. Then you can use gedit to make any needed changes. At that point, it is easiest to submit the calculation from the command line.

Submitting from the command line: From the directory in which your input file is located, submit Gaussian 09 revision D01 calculations by typing:

run_g09 filename 

(with or without the .com extension) in the command line. The job will now be running in the same fashion as if submitted via Gaussview.

To submit Gaussian 16 revision A03 calculations, type: run_g16 test001

Gaussian 03: run_g03 jobname [num_cpu]
Jobname should be your Gaussian input com file name, with or without the .com extension.

Memory: For a 1-core (cpu) job you can (and should) specify up to 3800MB in the %mem= section of your input file.

Parallel: You can submit parallel jobs on up to 12 cpus on 1 node using shared memory. You must specify the number of cpus (the %nprocshared= 12) and amount of memory (the %mem= 46GB) in your input file. The amount of memory should be 3800MB x num_cpus, or the number in GB minus 1GB (for example 15GB for 4 cpus). Calculations do not scale linearly with increasing numbers of cpus.

Large scratch files: MP2, CCSD and other keywords can generate very large scratch files. Some server nodes have 3TB of temporary disk space. To run a job on one of these nodes, put "maxdisk=3000GB" in the route section of your input file and use the command:

run_gaussian jobname bigscr

You should specify %nprocshared=12 cpus to use this option.

Other Options: Type "run_g16" without arguments to see time limits and other options.

Revision D01 is the current default from run_g09 and Gaussview (version 5). You can request other revisions:

To use Gaussian 09 revision B01, use run_g09b01

To use Gaussian 09 revision C01, use run_g09c01

To use Gaussian 09 revision D01, use run_g09d01 (same as run_g09)

Input file format:

The Gaussian input file is a text file and easy to edit manually. A basic file is composed of four parts, the Link0 section (lines starting with %), the Route section (line starting with #), the job title, and the Molecule section. The placement of blank lines is important, so follow the example below if you construct an input file from scratch.

This is a sample input file for a DFT (B3LYP) geometry optimization on water, also requesting a vibrational frequency calculation, using the 6-31G(d) basis set:


{blank line}
#T opt freq rb3lyp/6-31g(d)
{blank line}
water optimization
{blank line}
0 1
H                  1              B1
H                  1              B2  2              A1
{blank line}
B1             1.37000000
B2             0.96000000
A1           109.50000006
{blank line}

The Link0 section gives processor (%nproc) and memory (%mem) settings. You can ask for up to %nproc=12 (on the server named dino). In the MGCF, the %mem will automatically be adjusted by the run_g09 or run_g16 script but make sure the %mem and %nproc lines are present. The checkpoint file (%chk) will contain MO and related calculation data when the calculation runs. Normally the file prefix matches the input file prefix.

The Route section is a list of Keywords to specify non-default computational details. They can be written in any order and more than one line can be used, but the section must terminate with a blank line. The T after the # character is optional and specifies terse output (or P for verbose output). This does not affect what is calculated. Many keywords have arguments associated with them; for example, if we wanted to make the convergence criteria for the optimization more stringent we could use opt=tight or opt(tight). For multiple arguments, use the syntax opt(tight,maxcycle=200) which would also tell the program to run a maximum of 200 optimization iterations. The list of possible keywords and arguments is large, so refer to the Gaussian manual for more information.

The first line of the Molecule section specifies the charge and multiplicity (2S+1) of the molecule. Here we have 0 1 for neutral singlet water. In this example the coordinates of the molecule are listed as a Z-matrix, which is very useful if you want to constrain specific coordinates (follow the coordinate with a space and then the F character). You could also use Cartesian (x y z) coordinates.

Starting Jobs from Checkpoint Files:

It is often desirable to restart a failed calculation or start a new calculation using the structure, wavefunction, and/or the force constant matrix from a previous calculation. For example, if SCF convergence was a problem, you might run a single point calculation using keywords helping SCF convergence, that would hurt efficiency in a geometry optimization. You would then start a geometry optimization specifying that the previously-determined wavefunction should be read from the checkpoint file as an initial guess.

Note: if you change the geometry of the structure or add/delete any atoms, you cannot use previously-calculated wavefunctions or force constant matrices from a checkpoint file! However, you can add/subtract electrons, just remember to correspondingly change the multiplicity.

Start by making a copy of the checkpoint file (cp original.chk restart.chk) of the failed/failing/previous calculation. The copied checkpoint filename should reflect the name of the new calculation you are about to start from the failed/failing/previous calculation state. This prevents overwriting the old checkpoint file (which you may need later on) while allowing the restart to get needed information from the previous calculation. Read the copied checkpoint file into Gaussview and start where you left off by saving a new input file ( matching the new checkpoint file name.

Some options for each keyword that specify reading from the checkpoint file are: Opt=ReadFC (reads force constant matrix if it existed in the checkpoint file, also works with Freq, see below); Guess=Read (reads the wavefunction from the checkpoint file, uses it as an initial guess for SCF); Geom=Checkpoint (reads the structure from the checkpoint file, you still need to specify charge and multiplicity); Geom=AllCheck (reads the structure, charge and multiplicity from the checkpoint file); Geom(Step=N) (reads the Nth structure from a previous geometry optimization checkpoint file). The last three arguments are useful if you are constructing the new input file in a text editor, as it eliminates the need to copy/paste atomic coordinates.

Converting Between Gaussian Versions:

Old chk files: To use checkpoint files generated by G03 on 32 bit machines, you MUST first convert them to a format that G09 (64-bit) can read. To do this, go to the directory containing the .chk file you want to convert and type:

gausschk0309 jobname (no .chk or .out etc.)

This script uses G03's 32-bit formchk utility to make a formatted checkpoint file (.fchk) then converts it back using G09's 64-bit unfchk utility.

If you want to make a formatted checkpoint file from a 32-bit G03 checkpoint file, type:

formchk03 jobname (no .chk or .out etc.)

Note that this is G03 revE and is a 64-bit version. If you have checkpoint files from a 32bit G03 version, you must convert them before using a 64bit version of Gaussian. To do this, type:

gausschk03_64bit jobname (no .chk or .out etc.)

G09 check files can be opened in Gaussview6.

Vibrational Frequencies:

After an optimization (to ground state or transition state) you can request a vibrational frequencies calculation (keyword Freq). Even if you do not need the vibrational frequency values or thermodynamic data, frequency calculations are necessary to verify that the structure is a stationary point (dE/dr = 0 where r is the collection of all coordinates) and is of the correct type. A minimum is characterized by no imaginary frequencies (listed as negative frequencies in the output). A transition state is characterized by EXACTLY one imaginary frequency, which should correspond to the reaction coordinate. More than one imaginary frequency indicates a higher-order saddle point and normally has no physical meaning. Note: imaginary frequencies of small magnitude (less than 10 wavenumbers, or larger according to some) can usually be ignored.

You can request a frequency calculation with an optimization, as in the example above. The frequency calculation starts when (or if) the optimization completes. Alternatively, you can start a frequency calculation using the checkpoint file from a previous optimization. In this case it is a good idea to use the keyword Guess=Read, so the wavefunction does not need to be recomputed. You can specify Freq=ReadFC so the calculation uses the approximate force constant matrix constructed during the optimization, however the analysis (especially the zero-point energy) will be of poor quality. It can be used as a first-glance check because it is a very fast calculation, but you should go back and recalculate the frequencies analytically (the default for HF and DFT methods) before placing any confidence in the results. You can view and animate the vibrational frequencies in Gaussview by reading in the output (.out) file from the frequency calculation and selecting Vibrations from the Results menu.

In addition to the vibrational frequencies, this calculation will also calculate IR intensities, and molecular thermodynamic properties (at whatever temperature/pressure you specify, default is STP). The output lists corrections to the electronic energy including zero-point energy, thermal energy, enthalpy, entropy, and Gibbs free energy, all in hartree (1 hartree = 627.5095 kcal/mol).

The choice of which of these corrections to include is currently still a matter of debate. Obviously the Gibbs free energy should most closely reflect experimental findings, yet errors associated with calculating the vibrational frequencies can make these figures somewhat unreliable. A common compromise is to use electronic energies corrected only for zero-point energy, which can be viewed as 0 K enthalpies.

Transition State Searches:

A transition state search is similar to a geometry optimization except that one coordinate is maximized instead of minimized. Here the term coordinate actually refers to an eigenvector of the Hessian (force constant matrix), which can be a combination of bond lengths, angles and torsions. This eigenvector corresponds to the reaction coordinate and has a negative eigenvalue in the Hessian. It is this negative eigenvalue that gives rise to the one imaginary frequency obtained in a frequency calculation on a transition state.

There are three methods of setting up a transition state search: TS(Berny) (keyword Opt=TS), TS(QST2) (keyword Opt=QST2), and TS(QST3) (keyword Opt=QST3). The TS(Berny) search requires that you input a guess of the TS structure. Obviously, your initial guess structure must be a very good guess.

In Gaussview, select Job Type > Optimization > Optimize to a: TS(Berny). You should also set Calculate Force Constants: Once (Opt=CalcFC). This calculates a good Hessian in the beginning so the reaction coordinate can be located. It can be helpful to include Opt=noeigentest to allow the calculation to proceed even if your structure is not close to a TS geometry.

The QST2 method (similar to LST in other programs) is generally the most useful of the three ways to start a TS search. You must input two structures, one of the reactant and one of the product. The program interpolates between the structures to get an initial TS guess help identify the Hessian eigenvector as the reaction coordinate. In practice, it is usually best to help the program by inputting reactant and product structures that are close to the expected transition state, even if these are not true minimum energy reactant and products. The order in which you specify reactant and product is irrelevant due to the principle of microscopic reversibility.

The two input structures for QST2 must have identical atom numbering schemes. The easiest way of obtaining both structures with identical atom numbering schemes is: 1) draw or import the reactant (or product); 2) select Copy from the Edit menu; 3) select Paste -- Add to Molecule Group (you now have two identical structures which you can toggle between using the top left of the molecule view window); 4) edit the second structure using bond length and angle adjustments (you may need to make and/or break some bonds) so it corresponds with the product (or reactant) structure; 5) select Job Type -- Optimization -- Optimize to a: TS(QST2). If the TS search fails by falling to one of the minima, say the product, you need to go back and edit the product structure so that it is closer to the expected TS structure. This effectively shifts the interpolated TS guess closer to the reactant. (The noeigentest keyword can be useful here).

The third method, QST3, is a combination of the previous two, wherein you specify reactant, product, and a TS guess. This can be helpful when the QST2 method fails to give an adequate guess. The QST3 method is set up the same as the QST2 except that you specify a TS guess which must be molecule #3 in the Molecule Group. Most of the time this TS guess will be from a previous QST2 or Berny attempt that is not quite fully optimized. there. If you are adding a TS guess to a QST2 job: 1) read in the .com file for the QST2 job; 2) make sure structure 2 is the structure selected and displayed on-screen; 3) import the TS guess-containing file, after setting the Target field in the Open Files dialog to "Add all files to active molecule group."

ONIOM Calculations:

The ONIOM method allows the use of more than one model chemistry within a molecule or system of molecules. It is useful in large systems where a high level of theory is needed for one or more regions and the remaining portion can be treated at a lower level. This is often a better alternative than using a simplified system, as the latter often involves sacrificing important steric features. The levels of theory can be any mixture of QM and/or MM models. See Dapprich, J. Mol. Struct. (Theochem) 1999, 461, 1 DOI: 10.1016/S0166-1280(98)00475-8 for an introduction to ONIOM. The following discussion uses terms defined therein.

Setting up the layers:

Build or import your molecule in Gaussview. Open the menu Edit > Select Layer, which brings up the Layer Selection Tool. With Low in the Set Layer field, click on the Select All button and then Apply. The molecular representation will switch to wireframe. Select Set Layer -- High. While holding the Shift key, click on each atom you want included in the High layer (higher level of theory), then Apply. The High level atoms should switch back to ball and stick.

Setting up the calculation:

This is done the same way as normal except that you must check the box next to Multilayer ONIOM Model in the Method tab of the Gaussian Calculation Setup dialog. There should now be three sub-tabs, one for each layer (layers that were not specified are greyed out). Specify the method details for each layer.

Note: for a two-layer job, there will be three entries for charge/multiplicity. The first set is for the complete system (Reallow), the second is for the model system at the high level of theory (Modelhigh) and the third is for the model system at the low level of theory (Modellow). Modelhigh and Modellow values will usually be the same, but you may need to set Reallow as something else.

Link atoms:

If the two layers are not connected through covalent bonds, this issue does not apply. If they are, then link atoms must be generated to fill out the valencies in Modelhigh (otherwise that level would have dangling bonds). If the calculation is set up in Gaussview, these link atoms are automatically generated as H atoms at an automatically-calculated distance from the Modelhigh atom to which it is bound. These distances can be changed by adding scale factors to the input (see above ref. and/or the manual). Therefore, if you treated a tert-butyl group as a MM low layer, it would be treated in the high layer as a group with the sterics of tert-butyl but the electronics of H (so pick your boundary lines carefully).

ONIOM input file:

Inspect the .com file. You will notice that ONIOM inputs automatically get put in Cartesian coordinates (this is set up to work with MM fragments since they must be in Cartesian coordinates). In each atom specification line, the first non-blank character is a 0. If you would like to freeze that coordinate, replace the 0 with -1.

Note: If you freeze atoms in MM low layer and you are not using electronic embedding, it is crucial to specify Opt=Quadmacro. This makes the redundant internal coordinates in the high layer communicate properly with the low-layer Cartesian coordinates.

Following the atom coordinates, each line has the character L or H (or M) which designates it as belonging to the low or high (or middle) layers. If link atoms were added, they are listed on the line of the atoms which they replace in the high layer, followed by the atom numbers to which they are bound (H atoms attached to atom 1 and 10 in the example below). A custom scale can be added after that.

Below is the relevant section of an input file for an ONIOM geometry optimization of dimethylperoxide, with the oxygens treated with the B3LYP/cc-pVQZ model chemistry and the methyl groups treated with the HF/3-21G model chemistry:

# opt oniom(b3lyp/cc-pvqz:hf/3-21g)


0 1 0 1 0 1
O               0   -0.987457    2.258703   -0.004221 H
C               0   -1.716673    3.483521    0.109640 L      H      1
H               0   -1.607312    4.048882   -0.792196 L
H               0   -2.752107    3.268347    0.272360 L
H               0   -1.336238    4.049806    0.933952 L
C               0    1.513799    1.033520   -0.000000 L      H     10
H               0    1.870465    1.537970    0.873624 L
H               0    1.870465    0.024714    0.000054 L
H               0    1.870466    1.537875   -0.873679 L
O               0    0.307454    2.513737    0.019488 H

Note: if MM were used for the low level, the following Gaussview-generated bond order information would be necessary (along with Geom=connectivity in the Route section):

1 2 1.0 10 1.0
2 3 1.0 4 1.0 5 1.0
6 7 1.0 8 1.0 9 1.0 10 1.0

G3 Energy Calculations Using Previously-Calculated Structures:

There are four types of G3 calculations available in Gaussian: G3, G3(MP2), G3B3 and G3(MP2)B3. Those jobs containing MP2 in the name use MP2 for the parts of the calculation normally employing MP4, which saves a lot of time at the expense of some of accuracy. By default, all of these jobs do a geometry optimization and frequency calculation before the compound energy calculations begin. Those jobs containing B3 in the name use B3LYP for these parts. If you want to obtain a G3 energy of a transition state, or a minimum calculated using any basis set other than 6-31G(d), you will need to start the G3 job from a checkpoint file from a frequency calculation containing a geometry and force constant matrix (Hessian) computed previously at your preferred level of theory.

Run your optimization (or TS search) and frequency calculation (opt and freq keywords). When it finishes, make a copy of the checkpoint file, naming it what you will name your G3 calculation. For example, if you name your new checkpoint file g3test.chk, you would then name the new input file

To make the input file, you could either read the new checkpoint file into Gaussview and set up the file there, or create a file using a text editor containing the following:

# g3(startmp2) geom=allcheck
{blank line}

The order of lines is important here. There are only two necessary keywords in the Route section. The keyword g3(startmp2) specifies a G3 calculation with NO geometry optimization (you could use g3mp2, g3b3 or g3mp2b3 here instead of g3).

Note: if you used DFT for your optimization, you still need to specify g3b3 or g3mp2b3 for the G3 single point calculation, or it will still do an MP2 geometry optimization.

No basis set is specified because the compound energy calculation uses a variety of pre-defined basis sets. The other command is geom=allcheck, which calls for all molecule information to be read from the checkpoint file. No molecule information (charge, atomic coordinates, etc) is necessary in the input file. There should be a blank line after the route section.

NBO (Natural Bond Orbital) Analysis:

NBO converts a QM wavefunction into localized orbitals analogous to valence bond theory. Many features are available but this section only shows the generation of basic output and visualization of the NBOs. Gaussian09 and Gaussian16 both have built in NBO3 but Gaussian16 is also setup to use a separately installed version of NBO6. Text-based output from an NBO analysis is printed to filename.out. Open it with gedit to review. For more information see the NBO3 manual (for Gaussian 09) or the NBO6 manual (for Gaussian 16) at

Note: For basic NBO calculations, input keywords can be set up in Gaussview6. You must have already done a Gaussian calculation on your molecule. It is a good idea to do the NBO analysis in a separate step because the NBOs will replace any MOs present in the checkpoint file (you probably also want MOs).

Copy the checkpoint file from a previous Gaussian calculation (must include an SCF calculation) into a new checkpoint file name. Read the new checkpoint file into Gaussview6, and in the Gaussian Setup window select Job Type: Energy, NBO Type: Full NBO, Checkpoint Save: Save NBOs. In the Additional Keywords field, type guess(read,only). If you are setting up the calculation in a text editor, your Route section should now look like this:

# Hamiltonian/Basis pop=(nbo,savenbo) guess=(read,only)

where Hamiltonian and Basis are whatever model chemistry you are using. The guess options make the program read the wavefunction from the checkpoint file and skip the SCF step in the new calculation, making the NBO calculation run very quickly. The savenbo argument replaces the MOs in the checkpoint file with NBOs, so if you are just interested in the text output you do not need that.

There are numerous keyword variations on NBO and NBO6 so review the Options Tab on the Population keyword page for Gaussian16. Once you set the keywords, then submit and run like an ordinary Gaussian calculation.

When the job completes, read the checkpoint file into Gaussview and visualize the NBOs in the Molecular Orbital Editor. Note: the orbital numbers in the NBO analysis report (in filename.out) do not correspond to those in Gaussview. Gaussview orders them by energy, whereas NBO organizes them by something relating to atom number.

Generating Cube Files:

run_cubegen: This is a script to generate MO cube files from a completed Gaussian job. This can be useful if you are generating a lot of cube files and the lag time in Gaussview is too long. Just type run_cubegen to see the syntax. The cube files are generated on the server and you can view them later in Gaussview at your convenience.

cubegen has more features and can be run on the command line on any workstation too. The general idea is to generate a formatted checkpoint file (fchk file) and then request cube files. Below are the steps for generating cube files:

To use cubegen on the command line, you must setup the environment. Open a teminal and type:

g16_setup (or g09_setup for Gaussian09 data)

Then create a formatted checkpoint file by typing:

formchk checkfile.chk checkfile.fchk

Run the cubegen utility using this syntax:

cubegen nprocs kind fchkfile cubefile npts format

Example for generating an MO file is:

cubegen 1 MO=lumo name.fchk test.cube 80 h

Other examples of kind are


spin=spin density

potential (this will generate an electrostatic potential cube)

Default value of 80 for npts is adequate or you can also set the quality to Coarse, Medium and Fine as -2, -3, -4 respectively.

You can also just type cubegen and follow the prompts.

Information on using cubegen can be found at the Gaussian website

Obtaining Average Quality Graphics Files:

You have two options for obtaining pictures from Gaussview.

1) You can export the molecular model in the current window by saving the file in mol2 or pdb format. This file can be imported for viewing in various visualization programs such as Mercury, Molden, Molekel (see below), VMD, Maestro or even ORTEP.

2) To obtain a picture directly from Gaussview, click File > Save Image File, select the file format and white or gray background. Include the extension when saving the image, for example:

Image.tif or image.jpg. You can also set your desired background color by selecting Preferences from the File menu in Gaussview, and then selecting Colors from the left of the menu.

To view the picture, type display filename.extension and the file will open in ImageMagick. Clicking anywhere in the window will bring up the control panel which can be used to edit and resave the image.

High-Quality MO (or NBO) Pictures:

If photo-like MO or NBO pictures are desired, it is best to generate cube files in Gaussview and import them into a different program. We used to recommend Molekel (see below) but now we recommend VMD.

Here are our instructions for making MO pictures with VMD.

For Molekel users, under the Results menu in Gaussview, select Surfaces. This brings up the Surfaces and Cubes panel. Select Cube Actions: New Cube and select what surfaces you want to generate (use Grid = Fine for smooth surfaces). Click Ok, and wait for text to appear in the Cubes Available field. When the surface you want is in the field, select Cube Actions: Save Cube (explicitly type the .cube extension in the filename).

Open Molekel (type molekel on a command line) and open filename.cube. In the white space to the left of the screen, click on filename.cube (a white box appears around the molecule). Under the Surfaces menu, select Grid Data. You must now enter the Value (isovalue), Color, and Rendering Style for your surface. The optimum value for Value varies greatly, so start with the default and experiment from there.

Currently, only one phase of an MO can be generated. A workaround is to import the same structure twice and calculate the same surface for each but with opposite signs for Value. When doing this, make sure you are in Interact with Camera mode (default). If you use Interact with Molecule, you will no longer have superimposed entries.

Under the Display menu, select Molecule to change the molecular representation, then save the picture in your preferred format.

NBOview and .47 files:

Gaussian09 and Gaussian16 both have built in NBO3 but Gaussian16 is also setup to use a separately installed version of NBO6.

To generate plot files compatible with NBOView:

1. Run a Gaussian SCF calculation with the keyword pop=nbo6read, and with the line:

$NBO archive file=yourjobname $END

at the end of the input com file. See a sample com file.

This calculation will generate an archive file called yourjobname.47.

For NBO3 results, the file name will be uppercase YOURJOBNAME.47. Rename this filename to lowercase yourjobname.47.

2. gedit yourjobname.47. The second line reads:


and it should be changed to read:

$NBO plot file=yourjobname $END

3. Type these 2 commands in a terminal. The terminal must be in the directory containing yourjobname.47:

g16_setup (or g09_setup for Gaussian09 data)

gennbo yourjobname

This creates a file called yourjobname.nboout and files named yourjobname.## where ## are numbers from 31 to 41 and 46. These are the files NBOView asks for when you open the program.

Note: you can also visualize natural bond orbitals in Gaussview by adding the savenbo argument to the POP keyword in the Gaussian route section.

Mapping Electrostatic Potential on Density in Gaussview:

Read a checkpoint file into Gaussview.

Select the Menu: Results > Surfaces/Contours...

On the Surfaces and Contours window, in the Cubes Available: section, select the pulldown: Cube Actions > New Cube > Type > ESP and click Ok (change the Grid if you want a better picture).

Repeat these Cube Actions, but now select Total Density instead of ESP.

In a few minutes (longer for large molecules and basis sets), two entries will appear in the Cubes Available section.

Select (highlight) Electron density from Total SCF Density.

Then, in the Surfaces Available: section, select the pulldown: Surface Actions - New Mapped Surface.

This opens the Surface Mapping window.

On that window, choose Electrostatic potential from Total SCF Density in the Cubes Available field, and check the box to Use an existing cube. Then click Ok. It may take a few minutes before the display appears.

Adjust the surface size by adjusting the Isovalue.

In the upper left and right corners of the window displaying the surface, there are fields for the upper and lower bounds for charges. You can set these so they are the same for different molecules, so that the color regions can be compared between molecules.

Non-Standard Basis Sets in Gaussian09:

For metal containing systems, you often want to specify different basis sets for different atoms. For example, youcan 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. Text in red are comments and should be removed in your input file.

{one blank line after geometry section}           

O  0          {O as in Oxygen; zero means all Oxygen atoms.} 
{All-electron 6-31G basis set with polarization functions.}
****          {4 asterisks mark the end of O basis set input.}
C  0          {C as in Carbon; zero means all Carbon atoms.} 
{All-electron 6-31G basis set with polarization and diffuse functions.}
{4 asterisks mark the end of C basis set input.}
V  0          {V is Vanadium; zero means all Vanadium atoms.}
SDD           {Stuttgart/Dresden basis set for outer shell electrons on V.}
****          {4 asterisks mark the end of V basis set input.}
one blank line between basis sets for electrons and ECP}                 

V 0           {ECP for V; zero means all Vanadium atoms.}
{ECP for V.}
{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 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: Here are examples 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 ( 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:

#p rb3lyp/genecp 5d 7f

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

{molecule specification}

H F P 0
Au 0

Au 0

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, 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:

#p rb3lyp/genECP 5d 7f

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

{molecule specification}

H F P 0

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:

#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:

# rb3lyp/genecp 5d 7f

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

{molecule specification}

H F P 0
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
2          1.00000000        0.00000000
{truncated for space}
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
2          1.00000000        0.00000000
2         13.20510000      426.70984000
2          6.60255000       35.93882400
2         10.45202000      261.16102300
2          5.22601000       26.62628400
2          7.85110000      124.75683100
2          3.92555000       15.77226000
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 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).

Setting up Redundant Coordinates:


There is an undocumented input format change for the opt=modredundant calculation in Gaussian 09 revision C.01. For earlier versions, you could specify a value for a structure parameter (bond length, bond angle or dihedral angle) different from the value in the geometry specification. For example, the following input:

#p opt=ModRedundant B3LYP/6-31G

{molecule specification}

B 1 2 1.5000 F

would perform a geometry optimization calculation with a fixed bond length as 1.5 angstrom between atom 1 and 2 no matter what is distance between atom 1 and 2 in geometry specification.

However, this style input does not work in revision C.01. The modredundant optimization input format in Gaussian 09 revision C.01 is "B 1 2 F". The program will perform an optimization and fix the bond length between atom 1 and 2 to the value it has in the geometry specification. So if you want to optimize the structure with a fixed bond length of 1.5 angstrom, you have to modify the atomic coordinates to a structure with a 1.5 angstrom distance between atom 1 and 2. The format for the same calculation as above is:

#p opt=ModRedundant B3LYP/6-31G

{molecule specification, use GaussView to set bond length between atom 1 and 1 as 1.5 angstrom.}

B 1 2 F

NMR Calculations:


For NMR calculations that use the CSGT method, the following keyword needs to be added to avoid getting an error message (In Gaussian 09):

NMR=CSGT IOp(10/93=1)

This method might also require using a larger basis set for accurate results. The GIAO method does not require the addition IOp and seems to generate the same results.

Other Technical Support:

The Gaussian tech support page has links to Gaussian documentation and various technical notes.

UV/VIS spectra can be plotted from excited states calculations.

Examples of different thermochemical data analysis