Gaussian
Description
Gaussian 03 is generally referred to as an ab initio electronic structure program. It predicts the energies, molecular structures, and vibrational frequencies of molecular systems, along with molecular properties derived from these basic computation types.
This document provides basic instructions on running Gaussian and configuring your account on Strauss. It is not a Gaussian tutorial. For more complete information, please consult the online Gaussian documentation.
Getting started with Gaussian: Setting up your UNIX account
Gaussian is installed in the directory /opt/Gaussian/current on Strauss. Throughout this document, the installation directory is referred to as g03root.
You must configure your UNIX account to use Gaussian on Strauss. You will source a file that will define a set of environment variables and source another file provided by Gaussian to configure your account properly.
For tcsh or csh shell users, use
% source /opt/Gaussian/bin/setup-gaussian.csh
For bash or sh shell users, use
$ source /opt/Gaussian/bin/setup-gaussian.sh
You must have a large scratch directory for storing Gaussian's temporary files. If you do not already have a /scratch/UDelNetID directory on Strauss, then you will get the following error
ERROR: Please request a /scratch directory on strauss before using Gaussian.and you must request one from IT. Note that it takes at least 24 hours to process the request.
To submit a request to create your scratch directory, /scratch/UDelNetID, follow these steps.
- Log into the IT network page. Type your UDelNet ID in the UDelNetID:(username) box. Type your password in the Password box, and click the Log in button.
- Select Request a disk quota change to load the Quota Requests page.
- On the Quota Requests page, select scratch (advanced users) from the Filesystem pull-down menu. Type "500" in the Requested Increase box and "Gaussian user" in the Reason for Request box. Then click the Submit button.
- Your request will take at least 24 hours to process. If your directory /scratch/UDelNetID has not been created after 24 hours have passed, contact the IT Help Center.
Running Gaussian
Before running Gaussian, you must properly configure your UNIX account on Strauss. The configuration instructions are in the previous section, Getting started with Gaussian.
- Starting a Gaussian job
Many Gaussian jobs may take weeks to complete. Since Strauss is a shared system, we request that you start your Gaussian job using the nice command. For example,
nice g03 input_data_file &
starts a job having a Gaussian input data file named input_data_file.com. The filename must end with a .com extension, although the ".com" is not typed as part of the command.
Output files are created in the directory containing the input data file. Therefore, it is good practice to create a separate directory for each input data file and to cd to that directory before running Gaussian. If any output file (including a checkpoint file) already exists when Gaussian tries to create it, Gaussian will overwrite it.
A sample input data file for Gaussian might be named test000.com and contain the following lines.
# SP, RHF/STO-3G punch=archive trakio scf=conventional Gaussian Test Job 00 Water with archiving 0 1 O H 1 0.96 H 1 0.96 2 109.471221
When you run Gaussian, the system displays your job's main process ID. You can use the process ID to track your job and the work files that Gaussian generates. For example,
% nice g03 test000 & [1] 2418
shows the main process ID associated with this Gaussian job is 2418.
Use the mpstat command to determine how many of Strauss' CPUs are at least 40% idle at that moment. (The "idl" column shows a CPU's current "idle %.") For example, the example below from mpstat shows that five processors, CPUs 12-15 and 20, are "sufficiently idle" for consideration.
% mpstat CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 70 1 111 698 854 1052 184 120 327 0 771 89 6 1 4 1 40 1 488 836 639 401 197 322 266 0 57 54 17 1 27 2 38 1 377 824 660 271 163 305 258 0 606 55 16 1 28 3 35 1 494 782 640 42 140 255 257 0 212 62 18 1 19 12 24 0 92 454 333 416 116 115 19 0 118 40 16 0 44 13 16 0 531 370 290 378 74 105 18 0 138 35 14 0 52 14 11 0 539 357 291 340 62 93 16 0 40 35 16 0 49 15 9 0 540 351 291 304 54 81 15 0 489 36 17 0 46 20 389 0 174 521 409 472 103 126 27 0 426 41 6 0 53 21 484 1 202 809 624 1011 164 268 69 0 689 74 11 0 15 22 435 1 951 847 696 898 135 234 62 0 97 71 9 0 20 23 609 0 428 765 624 741 122 186 55 0 209 86 11 0 2
Since Strauss is a system shared by others, we request that you do not specify more than half of the "sufficiently idle" CPUs in Gaussian's %NProcShared command. For this example, you could specify up to two CPUs at the beginning of your Gaussian input data file.
%NProcShared=2
Gaussian's temporary work files are stored in the directory specified by the value of the $GAUSS_SCRDIR environment variable, for example, /scratch/jdoe. The extension on each filename correspond to the file's purpose. Each name starts with the same stem, Gau-ProcessID, based on the process ID of the controlling job. The initial Gaussian process may also spawn other processes with their own related process IDs.
In this example, the actual processes running for process ID 2418 are 2418, 2421 and 2422.
jdoe 2418 2417 g03 test000 jdoe 2421 2418 sh -c /opt/Gaussian/g03-d02/g03/l1.exe /scratch/jdoe/Gau-2418.in jdoe 2422 2421 /opt/Gaussian/g03-d02/g03/l1.exe /scratch/jdoe/Gau-2418.inp -scr
The temporary files are stored in the scratch directory /scratch/jdoe. Note the process IDs used in their names.
% ls /scratch/jdoe Gau-2418.inp Gau-2422.d2e Gau-2422.rwf Gau-2422.chk Gau-2422.int Gau-2422.scr
The purpose of these temporary Gaussian files is noted below.
- Checkpoint file: Gau-processID.chk
- Read-Write file: Gau-processID.rwf
- Two-Electron Integral file: Gau-processID.int
- Two-Electron Integral Derivation file: Gau-processID.d2e
- Internal input file: Gau-ProcessID.inp
- Internal scratch file: Gau-ProcessID.scr
Gaussian deletes temporary files automatically when the job is successful. However, you may want to save the checkpoint file (.chk) to use later for another Gaussian job, to collaborate with another researcher, for use by a visualization program, or to restart a failed job. To accomplish this, specify a file or directory name for the checkpoint file by putting a %Chk command at the beginning of your Gaussian input data file. For example, if $GAUSS_SCRDIR is defined as /scratch/jdoe, then setting
%Chk=/scratch/jdoe/test000
will create the checkpoint file /scratch/jdoe/test000.chk. It will not be removed even if the Gaussian job is successful.
You can check on the status of your job by viewing the contents of the input_data_file>.log file.
If the Gaussian job is completed successfully, then the .log file will contain a random quotation and indicate normal termination. For example, the log file test000.log, resulting from a successful run, might look like the following.
The archive entry for this job was punched. The best way to pay for a lovely moment is to enjoy it. -- Richard Bach Job cpu time: 0 days 0 hours 0 minutes 4.4 seconds. File lengths (MBytes): RWF= 13 Int= 2 D2E= 0 Chk= 9 Scr= 1 Normal termination of Gaussian 03 at Thu Jun 7 15:45:38 2007.
Gaussian documentation
Gaussian documentation can be viewed online at the Gaussian Inc. website.
After configuring your UNIX account for Gaussian use, you can also get general information and a list of help topics by typing the following command on Strauss
% ghelp
Sample input data files may be found in $g03root/g03/tests/com/ on Strauss.
Gaussian utility programs
The following table lists the function and names of Gaussian's utility programs.
c8603 | Converts checkpoint files from previous program versions to Gaussian 03 format. |
chkchk | Displays the route and title sections from a checkpoint file. |
cubegen | Standalone cube generation utility. |
cubman | Manipulates Gaussian-produced cubes of electron density and electrostatic potential (allowing them to be added, subtracted, etc.). |
formchk | Converts a binary checkpoint file into an ASCII form suitable for use with visualization programs and for moving checkpoint files between different types of computer systems. |
freqchk | Prints frequency and thermochemistry data from a checkpoint file. Alternate isotopes, temperature, pressure and scale factor can be specified for the thermochemistry analysis. |
freqmem | Determines memory requirements for frequency calculations. |
gauopt | Performs optimizations of variables other than molecular coordinates. |
ghelp | On-line help for Gaussian. |
mm | Standalone molecular mechanics program. |
newzmat | Converts between various molecular geometry specification formats. |
testrt | Route section syntax checker and non-standard route generation. |
unfchk | Converts a formatted checkpoint file back to its binary form (e.g., after moving it from a different type of computer system). |
Where to find Gaussian
Gaussian is available on Strauss. If you are interested in installing Gaussian on a departmental server or any UD-owned computer that meets the platform specifications, please contact Patrick McMahon for more information.