|
|



























 |
 |
 |
 |
 |
Gaussian FAQ
|
 |
 |
This is a quick introduction to the usage of the
electronic-structure code "Gaussian 03" on the HPCVL
SunFire systems. It is meant as an initial pointer to more
detailed information, and to get started. It does
not replace study of the manual and the Gaussian web
page.
Questions:
What does Gaussian do?
Where is the program located?
How do I set up my environment for Gaussian?
How do I run Gaussian?
How do I handle a parallel Gaussian job?
Where can I get detailed help?
How is Gaussian licensed?
Answers:
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 (Amber force field and others),
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. It does not do molecular
dynamics, elaborate calculations on excited states (only
single-excitation CI is available), time-dependent
calculations and full CI.
For a more complete list see this
Overview
Back to Top...
Where is the program located?
The program resides in /opt/g03 and is called (you
guessed it) g03. We also maintain a copy of the previous
release of Gaussian, '98. This is located in /opt/g98.
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 6. 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
03 (and another one for Gaussian 98). All you need to do is
type use g03 and the proper changes will be
made. You can also put this command into your setup (.login
or .profile) files.
The hard way: You can also do things
manually. Include the following lines in your setup files
(.login for csh, .profile for ksh or bash):
For csh:
setenv g03root /opt
source $g03root/g03/bsd/g03.login
setenv GAUSS_SCRDIR /scratch/hpcxxxx
For ksh, bash, etc:
g03root=/opt; export g03root
. $g03root/g03/bsd/g03.profile
GAUSS_SCRDIR='/scratch/hpcxxxx'; export GAUSS_SCRDIR
Note that the setting of the environment variable
GAUSS_SCRDIR is necessary to redirect the temporary
files that Gaussian creates to portion of the disk where
they do not interfer with other people's disk space. For
the SUN systems, this directory should be
/scratch/hpcxxxx
(replace the xxxx by your username's
numbers). This is done automatically if you use the
use. 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
on the Sun Fire cluster 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, since he does not know which files are still
in use and which are spurious. If scratch space does not
get cleaned up regularly, it can cause jobs to terminate,
and much work to be lost. Please do it. If you want to
run Gaussian on several processors (which is encouraged,
since this is a multi-processor machine) on the SUN, 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).Back to Top...
How do I run Gaussian?
To run Gaussian on the SunFire systems of HPCVL, you
have to belong to a user group "g98" . You will be
entered into the group list when you have read and our
license agreement and signed a
statement that you have done so (see last question ). You will also
have to use the load balancing software that HPCVL is
using. For the SunFire systems, this is the GridEngine
software ( to learn more, check out our
GridEngine FAQ)
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 g03, and catching the standard output in
a log-file. We suggest you use the "extension" .g03 for
input files and .log for the results.
Interactively, the command line to invoke Gaussian is
thus:
g03 < test.g03 >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. If you
use
GridEngine (as you are required to do for production
jobs), you submit Gaussian jobs under a C-shell via a
script. A template for such a script is
available here . This script will setup the environment
for you, and will also only work if 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. Make the script
executable ( chmod 700
g03.sh). Note that you have to
replace entries that are enclosed in {} in
the script. The script is submitted by the qsub
command:
qsub g03.sh
This sample script assumes that you run Gaussian with
multiple processors. Please refer to the following section of this FAQ about
details.
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 under
$g03root/g03/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.
In the future, HPCVL will be assign a
specific queue for Gaussian users on our load-balancing
software. This means that if you use Gaussian, you will be
doing so on a specific subset of processors to maximize the
performance of the program, and minimize the interference
with other applications. At this point, contact Hartmut Schmider
if you have problems with the submission or execution
of Gaussian jobs. Back to Top...
How do I submit
parallel Gaussian jobs?
Gaussian offers the opportunity to execute major portions
of the code on multiple processors. For the SUN computers,
this feature is invoked by including a directive
%Nprocs=number_of_processors in the
first line of the input file. This line will cause 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 with the above line in the input file, you
must use a special parallel submit script to do
so. A
sample script for this can be downloaded. In
this script, there is 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. Entries in the
sample script enclosed in {} must be substituted by
specific values. Using this script will assure that the
GridEngine knows how many processors are used, and will
allocate resources accordingly. You might experience
extended waiting times using this method (since the
resources must be available first before they can be
allocated), but the excution times of your parallel job
will scale reasonably well (since you are likely to work on
dedicated processors without
oversubscription).
There is an easier way to do this: We are
supplying a small perl script called
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" .g03
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 03 User's
Reference". For templates, and to get many
examples, check out /opt/g03/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 03 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.
Download it, print it out and sign it after reading
the license agreement , to be included in the Gaussian
user group. 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.
|
|
|
|
|
|