Difference between revisions of "Gaussian Guide"
(→Loading the Gaussian module) |
(→Permission) |
||
Line 15: | Line 15: | ||
== Permission == | == Permission == | ||
− | University has a license for gaussian which is available for all Uconn students and faculty. Please send email to us if you need to use gaussian/ | + | University has a license for gaussian which is available for all Uconn students and faculty. Please send email to us if you need to use gaussian/g16. We have a special group for gaussian users. With your request, we can add you to the group. |
== Loading the Gaussian module == | == Loading the Gaussian module == |
Revision as of 15:02, 8 May 2018
Gaussian electronic structure modeling | |
---|---|
Author | Gaussian Inc |
Website | gaussian.com |
Source | Proprietary Closed Source |
Category | Quantum Chemistry |
Help | User guide Workshops |
From Wikipedia:
Gaussian is a computer program for computational chemistry initially released in 1970 by John Pople and his research group at Carnegie-Mellon University. Originally available through the Quantum Chemistry Program Exchange, it was later licensed out of Carnegie Mellon University, and since 1987 has been developed and licensed by Gaussian, Inc.
Permission
University has a license for gaussian which is available for all Uconn students and faculty. Please send email to us if you need to use gaussian/g16. We have a special group for gaussian users. With your request, we can add you to the group.
Loading the Gaussian module
Best practice is to specify the module with the version number for programs to run consistently.
To see the versions of modules on the cluster, use the module avail
command:
module avail gaussian
Now we can load the latest available Gaussian module, which at the time of writing is Gaussian16:
module load gaussian/g16
Users should add the following lines to either their .bashrc, .login, or .profile startup files:
#Commands which provide smooth access to Gaussian. export GAUSS_SCRDIR=/scratch/gaussian export g16root=/apps2/gaussian/g16 source $g16root/bsd/g16.profile
One can avoid loading the module at each log in, by using module initadd
:
module initadd gaussian/g16
Running Gaussian
Our site license for Gaussian does not include TCP-Linda software to run on multiple nodes.
Below is a SLURM example script:
#!/bin/bash #SBATCH --nodes=1 #SBATCH --ntasks=24 #SBATCH --exclusive # Make sure the value of --ntasks above matches %nproc in your # Gaussian input ".com" file! # Run gaussian, using output file of gaussian.out g09 < your_file.com > gaussian.out
In your Gaussian input .com file, always specify the number of processors using %proc and the amount of memory using %mem (the default memory is just 256MB!). Conservatively one can use about 80% of the node memory, so for Haswell 128GB RAM nodes we can set 100GB, and use all 24 cores if we use the node exclusively.
%proc=24 %mem=100GB
There are a range of tests on can try with Gaussian as listed in /apps2/gaussian/09.D.01/g09/tests/tests.idx
For example one can try running test 296:
#!/bin/bash #SBATCH --nodes=1 #SBATCH --ntasks=24 #SBATCH --exclusive # Make sure the value of --ntasks above matches %nproc in your # Gaussian input ".com" file! # None of the test files that Gaussian provides make use of %proc. # For the sake of testing we will add the line %proc to the beginning # of a Gaussian test input file. test_file=test0296.com cp /apps2/gaussian/09.D.01/g09/tests/com/${test_file} . sed -i -e "1 s#^#%nproc=8\n%mem=100GB\n#" ${test_file} # Run gaussian, using output file of gaussian.out g09 < ${test_file} > gaussian.out
Maryam contributed this nice script that runs Gaussian on a directory with many input files, but only runs Gaussian on incomplete simulations by checking the output file for the presence of the "Normal termination of Gaussian ..." line:
#SBATCH --partition=debug #SBATCH --ntasks=24 #SBATCH --nodes=1 #SBATCH --output=out.slurm echo > out.slurm module purge module load gaussian # Don't rerun completed simulations outputs=$(comm -2 -3 <( ls *.com | sed 's/com$/out/' ) <( grep -l "Normal termination of " *.out )) for output in $outputs do input=${output%.out}.com echo g09 $input $output g09 $input $output done