Skip to content

Gaussian 16

Gaussian 16 (G16) is a quantum chemistry software package for electronic structure modelling.
It provides a wide range of ab-initio, semi-empirical, and density functional methods for molecular systems.


Access and Licensing

Gaussian 16 is commercial software.
Due to licensing restrictions, only authorised users who are listed under the institutional Gaussian license agreement may access and run G16 on our systems.

  • Access to the Gaussian 16 module is limited to licensed users.
  • To request access, please contact the HPC support team and provide your project information and license confirmation.

Attempts to run Gaussian 16 without a valid license are strictly prohibited.


Module Usage

After your account has been granted access, load the Gaussian 16 module as follows:

module load gaussian/16

This will configure all necessary environment variables, paths, and aliases.

Scratch Directory (GAUSS_SCRDIR)

Gaussian 16 requires a local scratch directory to store temporary files during a calculation. One must define the environment variable GAUSS_SCRATCH in your job script.

It is strongly recommended to use your project-specific scratch area, e.g.:

export GAUSS_SCRATCH=/scratch/<project-dir>/gaussian16/$USER/$SLURM_JOBID
mkdir -p "$GAUSS_SCRATCH"

Add these lines to your job submission script before executing Gaussian 16.

The directory should be:

  • Local or high-performance storage (not NFS-mounted),
  • Unique per job (use $SLURM_JOBID),
  • Cleaned up at the end of the job to save space.

At the end of your script, you can safely remove the scratch data:

rm -rf "$GAUSS_SCRATCH"

Resource Limits (ulimit)

According to the official Gaussian 16 documentation, it is recommended to apply hard resource limits for the shell environment. This is to prevent Gaussian from consuming excessive memory or disk space and potentially destabilising compute nodes.

One can enforce the recommended hard limits in your job script:

ulimit -c 0       # Disable core dumps
ulimit -d hard
ulimit -f hard
ulimit -l hard
ulimit -m hard
ulimit -n hard
ulimit -s hard
ulimit -t hard
ulimit -u hard

These settings restrict Gaussian’s internal resource use in line with vendor guidance.

Running Gaussian Jobs

Example Slurm job script:

#!/bin/bash
#SBATCH --job-name=g16-test
#SBATCH --partition=short
#SBATCH --account=<project-account>
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8
#SBATCH --mem=16G
#SBATCH --time=02:00:00

module load gaussian/16

export GAUSS_SCRDIR=/scratch/myproject/gaussian16/$USER/$SLURM_JOBID
mkdir -p "$GAUSS_SCRDIR"

g16 my_input.com > my_output.log

rm -rf "$GAUSS_SCRDIR"
Created by: Ot(t)o Kohulák