gaussian

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

Policy

Gaussian and GaussView are available to users at HPC2N who are at UMU university. This restriction is due to the licensing agreement with Gaussian.

Citations

You are required to acknowledge Gaussian in scientific papers that have results obtained with it. Please follow the suggestion on the Gaussian citation page.

Overview

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.

Usage at HPC2N

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 16 can also utilize the GPUs on Kebnekaise, if so requested.

On HPC2N we have Gaussian available as a module.

Note

GaussView is also available. See GaussView for how to use it.

Reminder

Due to the licensing agreement, Gaussian and GaussView are ONLY available for users from UMU.

Loading

To use the Gaussian module, add it to your environment. You can find versions with

module spider gaussian

and you can then find how to load a specific version (including prerequisites), with

module spider gaussian/<version>

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

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.

Note

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>

Gaussian 09

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

%NProcShared=<nr-of-cores>

Gaussian 16

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.

Memory specification

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> can be found from the section about nodes in the batch documentation.

You will also have to add a node type constraint if you need more memory than what is on the node type with smallest amount of memory. You can find the constraints on the Requesting specific features section of the batch system documentation.

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 and also for the GPUs in order to be allowed to use them.

Submit file example

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 hpc2nXXXX-YYY
#SBATCH -J some-jobname
# Specify number of cores to use
#SBATCH -c <nr-of-cores>
# If you want to use GPUs add a line with
# "#SBATCH --gres=gpu:TYPE:x" where x is number of GPU cards to use and TYPE is the type
# See the <a href="https://docs.hpc2n.umu.se/documentation/batchsystem/resources/#requesting__specific__features__ie__setting__contraints__on__the__job" target="_blank">Requesting specific features</a> section to see which ones you can 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.

Additional info

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.

*Links