Gaussian, an Intro

Gaussian is a software package for doing electronic structure calculations. There are many electronic structure packages out there, many of them free & open source, but we tend to use Gaussian. Whether that’s the best set up is unclear, but Gaussian has a few benefits. It’s relatively fast, maybe faster than other stuff like Psi4 probably not faster than NWChem (we’ll never know because Gaussian bans people who do timing tests). It’s widely used, and so there’s a lot of experience in the community on how to use it. Most importantly for us, though, we’ve already got it installed and the group has been using it for years.

Using Gaussian

What does actually using it look like? Maybe you are familiar with GaussView or know the name Gaussian from previous theoreticcal experience. In the group, we most often interact with the Gaussian software using the command line. This means we create our own input files (with the file extension .gjf) and parse through the data outputted in files with either the extension log (referred to as log file) or chk (which get formatted to an fchk file). More on outputs later, let’s focus on the gjf file now.

First thing we need to do is make a Gaussian job file (.gjf). This is a file with a structure like where ! indicates a comment in a .gjf

! Memory / Storage Settings
%Chk=... ! This specifies the location for checkpointing data. You should always include this so you can use the data later.
%Mem=... ! This specified how much memory Gaussian can use. Give it the maximum you can, since that'll speed things up.
...
! Job Settings
#P
#Opt=(Z-Matrix)
#Density=Current
#MP2/aug-cc-pVTZ
...

! Brief job description
This is my optimization calculation for something (it's good to include this so your future self knows what went on)

! Molecule specification (http://gaussian.com/molspec/) we suggest using the Z-matrix format
...

The full list of memory/storage settings is here, the different job types are here & settings approrpriate for those are listed (e.g. here are the ones for Opt jobs). Gaussian explains its Z-matrix layout here.

Gaussian also has some info on running jobs, which goes into this in more detail.

Note: Whenever you set up a Gaussian job, make sure to both include the command #P, which makes it so all relevant info (crucially dipoles) are printed & use the setting #Density=Current, which causes Gaussian to do things like dipole calculations with the same level of accuracy as it does the energy calculations

Running Gaussian

Running Gaussian on the group computers and hyak is something that we’ve discussed briefly on the group StackOverflow, so give that a look and let us know if you’ve got lingering questions.

Next: Getting Data out of Gaussian
Previous: NumPy Data Files

Got questions? Ask them on the McCoy Group Stack Overflow


Edit on GitHub