Gaussian

Software name: 
Gaussian
Policy 

Gaussian is available to users at HPC2N under the condition that published work include citation of the program. See Official Gaussian Citation for instructions.

Note: Please, check which revision you are running in the program output.

General 

Gaussian is a connected system of programs for performing a variety of semi-empirical and ab initio molecular orbital calculations.

Description 

Gaussian uses electronic structure theory in computing many properties of molecules and reactions, including the following:

  • Molecular energies and structures
  • Energies and structures of transition states
  • Bond and reaction energies
  • Molecular orbitals
  • Multipole moments
  • Atomic charges and electrostatic potential
  • Vibrational frequencies
  • NMR properties
  • Combined QM/MM simulations (ONIOM)
  • Reaction pathways

Calculations can be carried out on systems in the gas phase or in solutions, and in their ground state or in an excited state.

Availability 

Only shared memory parallelism is available at HPC2N, i.e it is only possible to run Gaussian on a single node. Distributed memory parallelism (i.e Linda) is NOT available at HPC2N.

Gaussian is available as a module on Kebnekaise.

Gaussian 16 can also utilize the GPUs on Kebnekaise, if so requested.

Usage at HPC2N 

To access Gaussian you first need to load the corresponding module. Use:

module spider gaussian

to see which versions are available, as well as how to load the module and any needed prerequisites.

Note that while the case does not matter when you use "ml spider", it is necessary to match the case when loading the modules.

You can read more about loading modules on our Accessing software with Lmod page and our Using modules (Lmod) page.

Setup and submit files

Gaussian needs an input file which contains information about the aproximation, molecular properties and a list of atoms and their coordinates.

To run efficiently the input file needs to specify at least the number of cores to run on and the amount of memory to use. These settings should match the settings in the submit file.

In the submit file one should use:

#SBATCH -c <nr-of-cores>

When using Gaussian 09, use the following to specify number of cores in the input file:

%NProcShared=<nr-of-cores>

When using Gaussian 16 it is recommended to change the input file (as per the "Gaussian 16 Rev. A.03 Release Notes") from using NProcShared to:

%Cpu=<list-of-cores-to-run-on>

For Gaussian 16 when run with GPU support (only on Kebnekaise) one must also specify:

%GpuCpu=<gpu-list>=<controlling-core-list>

Specifying the %Cpu and the %GpuCpu parameters is not trivial unless using a complete node for the run. We have therefore made a helper script that can update the input file automatically.

The script is available with the Gaussian 16 module and is called g16.set-cpu+gpu-list, see example below for usage.

Note: The script does not add a %Cpu entry if it is missing, it only changes an existing entry to match the allocated resources.

Note: A %GpuCpu entry is added automatically if, and only if, there is a %Cpu entry in the original file and the job allocation contains GPU resources.

To specify amount of memory use:

%mem=<amount-of-memory>

The amount-of-memory should be calculated as nr-of-cores * memory-per-core * 0.8, where memory-per-core are

  • Kebnekaise batch partition: 4500MB
  • Kebnekaise largemem partition: 41500MB

Note: You have to set the %mem entry by hand. Not setting it at all will likely slow down your job significantly since the defaults are fairly small.

Note: On Kebnekaise you need a specific allocation on the Large Memory nodes to be allowed to use them.

An example for running Gaussian for 1 hour can be seen in the submit files below. The input file is assumed to be located in the submit directory.
Select number of processors to use on the node in the submit file (and by changing NProcShared as per above, if using Gaussian 09). 

#!/bin/bash
# Change to a valid project account
#SBATCH -A SNICXXXX-YY-ZZZ
#SBATCH -J some-jobname
# Specify number of cores to use
#SBATCH -c <nr-of-cores>
# If you want to use GPUs (only on Kebnekaise) add a line with
# "#SBATCH --gres=gpu:k80:x" where x is number of K80 cards to use
#SBATCH --time=01:00:00

# Load the Gaussian module, preferably specifying a version
# This is for Gaussian 16 on Kebnekaise
module add gaussian/16.A.03-AVX2

# For Gaussian 16 set the %Cpu parameter (and %GpuCpu if GPUs have been requested)
# Comment out the following line if running Gaussian 09
g16.set-cpu+gpu-list inputfile.com

# Start Gaussian, example here is assuming Gaussian 16. Replace g16 with g09 for Gaussian 09.
g16 inputfile.com

For jobs requiring more memory consider using the largemem (Kebnekaise) partitions, see the pages under Batch System Documentation for more information on this subject.

If you want to have the same precision criterion that Gaussian 09 uses when running Gaussian 16, you can add the following line in your Gaussian input script:

Integral=(FineGrid,Acc2E=10) Constants=2006

this will instruct Gaussian 16 to use the default values of the previous version. 

 

In case of problems don't hesitate to send a mail to support@hpc2n.umu.se.

Updated: 2024-04-17, 14:47