ORCA

From HPC users
Revision as of 13:29, 21 September 2015 by Harfst (talk | contribs) (→‎Serial Runs)
Jump to navigationJump to search

ORCA

Introduction

The program ORCA is a modern electronic structure program package that is able to carry out geometry optimizations and to predict a large number of spectroscopic parameters at different levels of theory. Besides the use of Hartee Fock theory, density functional theory (DFT) and semiempirical methods, high level ab initio quantum chemical methods, based on the configuration interaction and coupled cluster methods, are included into ORCA to an increasing degree.

For more details please refer the offical home of ORCA where you can also find a thorough documentation on using the program. Note that ORCA is free of charge for non-commercial use and by using ORCA on the cluster you are accepting the ORCA license. In particular, any scientific work using ORCA should at least cite

F. Neese: The ORCA program system (WIREs Comput Mol Sci 2012, 2: 73-78)

as well as other related works as apropriate.

Below, a short introduction to using ORCA on the cluster is given.

Using ORCA on the Cluster

The first thing that you need to do is to load the ORCA module using the command

module load orca

This will load the latest version of ORCA installed (currently, 3.0.3). More specifically, it adds the path of the ORCA executables to your environment.

Serial Runs

Next, you will need to prepare a job script which could look as follows in case of a serial run (no line starting with %pal):

#!/bin/bash

### the following lines are used by SGE to determine your job requirements
### you may want to modify the requested resources, e.g. h_vmem or h_rt,
### if you need more memory or run time (respectively)
#$ -S /bin/bash
#$ -cwd
#$ -l h_rt=1:00:0
#$ -l h_vmem=1500M
#$ -l h_fsize=100G
#$ -N ORCA
#$ -j n

### maybe useful to receive emails when a job begins (b) and has finished (e)
### (to activate change email address and remove extra # in the next 2 lines)
##$ -m be
##$ -M your.name@uni-oldenburg.de

### here the actual job script begins
### you may want to modify this part according to your needs
### the script expect input files in the directory from where you submitted
### the job and any output will appear in that directory as well, however
### some files may not show up until the job has finished
echo Job started on `date`   # put a time stamp in log file

# load module orca
module load orca

# settings (here you need to make your own modifications)
MODEL=TiF3     # MODEL is the basename for all files

# settings (may have to adjusted but not always)
ORCAEXE=`which orca`     # no need to be touched
INPUTEXT="inp xyz"       # files with these extension will be copied

# preparing $TMPDIR for run by copying file
for ext in $INPUTEXT
do
   if [ -e $MODEL.$ext ]
   then
      echo "Copying $MODEL.$ext to TMPDIR"
      cp $MODEL.$ext $TMPDIR
   fi
done

# change to $TMPDIR for running ORCA
cd $TMPDIR

# run ORCA
$ORCAEXE $MODEL.inp > $SGE_O_WORKDIR/$MODEL.out

echo Job finished on `date`   # put a time stamp in log file

exit

You can download this job script orca_ser.sge and modify it to your needs (e.g. to change the requested resources). The job script requires additional input files for ORCA, in this case TiF3.inp and TiF3.xyz and all three files have to be placed in the same directory.

Once the job script and your input files are ready, a job can be submitted as usual with the command:

qsub orca_ser.sge

The job script works roughly in the following way

  1. the ORCA module is loaded and the name of the model is set (must be identical to the name of the .inp file)
  2. all input files (identified by the model name and given extensions) are copied to $TMPDIR, more files can be included by adding their extensions to the variable INPUTEXT
  3. the directory is changed to $TMPDIR and the run is started, a log file for the run (extension .out) is written to the directory from where the job was submitted
  4. all other files are created in $TMPDIR, which is automatically deleted after the job; if additional files need to be saved, they need to be copied (not yet implemented in the job script)