What
does Gaussian do ?
Gaussian is arguably the most-used computational
quantum-chemistry program. It does electronic-structure
calculations and standard quantum chemical calculations. Among
the methods available are simple molecular mechanics (such as
Amber force field), semi-empirical methods (such as CNDO),
Hartree-Fock (restricted and unrestricted), MPn
(Mollar-Plesset perturbation theory of order n=2,3,4), CI
(Configuration-Interaction), CC (Coupled-Cluster),
Multi-configurational SCF (such as CAS-SCF) and various DFT
(Density-Functional Theory) methods. Specific to Gaussian are
high-accuracy energy methods (G2, CBS). It can be used to
obtain electronic properties, molecular geometries,
vibrational frequencies, orbitals, reaction profiles, and much
more.
For a more complete list see this
Overview
Back to Top...
Where
is the program located?
The program resides in /opt/gaussian/g09 and is
called (you guessed it) g09. We also maintain copies of
previous releases of Gaussian, namely '98 and '03. These are
located in /opt/gaussian/g98 and /opt/gaussian/g03,
repsectively. Their usage is completely equivalent to the one
of Gaussian'09 described in this FAQ.
In the program directory, there is a series of test jobs,
which are very useful to get an idea of how to perform
specific types of calculations. The source code of Gaussian is
not accessible to the general public, since Gaussian is a
licensed product. However, Gaussian grants the permission to
alter the code under certain conditions. If you want to do
so, contact
HPCVL to learn more. You are not allowed to copy the
executable or any part of the distribution onto your local
machine, unless you hold a proper license
yourself. See Question
7.
Back to Top...
How
do I set up my environment for Gaussian ?
There is two ways to set up your environment to enable
Gaussian.
- The easy way: The
usepackage system has an entry for Gaussian 09 (and
other ones for Gaussian '98 and '03). All you need to do is
type use g09 and the proper changes will be
made. You can also put this command into your setup files,
e.g. .bash_profile for bash.
The hard way: You can also do things
manually. Include the following lines in your setup
files (.login for csh, .bash_profile for ksh or bash):
For csh:
setenv g09root /opt/gaussian
source $g09root/g09/bsd/g09.login
setenv GAUSS_SCRDIR /scratch/hpcxxxx
For bash:
export g09root=/opt/gaussian
. $g09root/g09/bsd/g09.profile
export GAUSS_SCRDIR='/scratch/hpcxxxx'
Note that the setting of the environment
variable GAUSS_SCRDIR is necessary to redirect the
temporary files that Gaussian creates to the proper scratch
space. This directory should be /scratch/hpcxxxx
(replace the xxxx by your username's
numbers). This is done automatically if you apply the
use command.
Also note that if for some reason Gaussian
does not terminate normally (e.g. a job gets cancelled by
hand), it leaves behind large "scratch files" which you should
delete by hand. To check if such files exist, type
ls -lt /scratch/hpcxxxx
where xxxx stands for the numbers in your
username. Once you have determined that the scratch files are
no longer needed, you can delete them by typing
rm /scratch/hpcxxxx/Gau-*
where, again, xxxx needs to be replaced by the numbers in your
username.
Cleaning up the scratch space is the user's responsibility
and cannot be done by the system administrator. If scratch
space does not get cleaned up regularly, it can cause jobs to
terminate, and much work to be lost. Please do it.
Back to Top...
How
do I run Gaussian ?
To run Gaussian on HPCVL clusters, you have to
belong to a user group "g98" (it's called that for
historical reason, but it applies to all versions of
Gaussian). You will be entered into the group list when you
have read our license
agreement and signed
a statement that you
have done so (see Question 7).
Given the complexity of the underlying methods, Gaussian is
very simple to use. A given calculation is performed by
preparing an input file, piping it to the standard input of
the program g09, and catching the standard output in a
log-file. We suggest you use the "extension" .g09 for input
files and .log for the results.
Interactively, the command line to invoke Gaussian is thus:
g09 < test.g09 >test.gout &
The ampersand & submits the job into the
background, so it doesn't block your terminal. This will only
work if you are a member of the g98 group and have set the
environment correctly (see previous
question ). Note that the interactive execution of
Gaussian is only meant for test runs.
Gaussian input files have to be set up according to a
scheme that is explained in the "User's Reference". It
is impossible to give an outline here. The program uses the
concept of keywords to describe the method used, the molecule
to be described, and the conditions for the calculation (such
as basis sets). Sample files can be found in opt/gaussian/g09/bsd/logs.
Note that it is absolutely essential to have a good idea
about the size and complexity of your calculations before you
start a Gaussian job. Many of the methods mentioned above
have terrible scaling properties, i.e. the
computational cost grows very quickly with the number of
electrons, degrees of freedom, or number of basis functions
used. We suggest you start with a small basis set and a cheap
method, and then slowly increase those parameters.
Back to Top...
How
do I submit parallel Gaussian jobs?
If you want to run Gaussian on several processors (which is
encouraged, since this is a multi-processor machine) on HPCVL,
you will have to include a line
%Nproc=number_of_processors
where number_of_processors is exactly what it says, in
your input file for the job you are running (see below).
For production jobs, especially involving multiple
processes, you need to submit a Gaussian job script to our
load-balancing software Grid Engine
(see our
SGE FAQ for details). This is mandatory. A
template for
such a
script is available here . This script requires that the
environment was previously set up properly, and that you are
a g98 group member.
You supply the directory in which you work, the email to
which you want to notified, and the name of the input/output
files by editing the script. Note that you have to replace
entries that are enclosed in {} in the script.
The script (let's call it g09.sh) is submitted by
the qsub command:
qsub g09.sh
This must be done from the working directory, i.e. the
directory that contains the input file and is supposed to
contain the output.
Gaussian offers the opportunity to execute major portions
of the code on multiple processors. For SUN computers, this
feature is implemented through shared-memory programming.
The %Nprocs line in the input file causes Gaussian to
use up to number_of_processors CPU's in the
calculation. However, it is not acceptable to start a
job like this on the standard serial GridEngine queue for
production jobs. If you submit a Gaussian parallel job, your
SGE script must include a line
#$ -pe shm.pe {number of processes}
where the entry enclosed in {} stands for the number of
processors requested, and has to be identical with the
number appearing in the input file. Using this will assure
that the GridEngine knows how many processors are used, and
will allocate resources accordingly, and your parallel job
will scale reasonably well since you work on dedicated
processors without oversubscription.
There is an easier way to do this: We are supplying
a small perl script called GaussSubmit that can
be called directly, and will ask a few basic questions, such
as the name for the job to be submitted and the number of
processes to be used in the job. Simply type
GaussSubmit
and answer the questions. The script expects a Gaussian input
file with "file extension" .g09 to be present and will
do everything else automatically. This is meant for simple
Gaussian job submissions. More complex job submissions are
better done manually.
Back to Top...
Where
can I get more detailed information ?
This is the most important question treated here. To learn
the basics about Gaussian input and output, refer to the
"Gaussian 09 User's Reference". For templates,
and to get many examples, check
out /opt/gaussian/g09/bsd/examples.
There is a Gaussian web page with lots of
information: http://www.gaussian.com
There is also a Gaussian user group that has many members who
really know what they are talking about (and some who
don't). Gaussian also operates a help line for licensed
users. Send email to
help@gaussian.com
, but don't expect the answer to come too quick, they get
a lot of requests.
For hardcore computational chemists, there is the
"Gaussian 09 Programmer's Reference" and
the IOPs Reference which are useful if you want
to tinker with default settings and internal parameters, or
even want to write some subroutines of your own.
If you want to learn about the methods, check out
"Exploring Chemistry with Electronic Structure
Methods" by J. B. Foresman and Aeleen Frisch, Gaussian
Inc. Pittsburgh PA. (This book makes reference to Gaussian
98, but almost all of it applies to Gaussian 03).
You can also ask Hartmut
Schmider about specific technical problems with
Gaussian. I am a theoretical chemist by training and have some
background in the usage of the
program.
Back to Top...
How
is Gaussian licensed?
Gaussian is a licensed program. The license held by HPCVL
is limited to the HPCVL-operated computers at Queen's
University in Kingston, Ontario, and only covers
academic use. That means that any user of HPCVL
can use the program for academic research, whether they are
located at Queen's or not.
HPCVL requires users of Gaussian to
sign a statement in
which they state that they are informed about the terms
of the license to be included
in the Gaussian user group named g98.
Non-academic, particularly commercial, users
are not allowed to use Gaussian under
our license. Neither is it possible for academic users
to do contract work using the HPCVL Gaussian
installation. Any such use would violate our license
agreement. Please abide by those
rules.