ChemShell
Overview
ChemShell is a computational chemistry environment for standard quantum chemical or force field calculations, including hybrid QM/MM calculations. ChemShell includes interfaces to various QM and MM codes, and is designed to deal with the communication and data handling, whilst energy evaluations are undertaken by external codes.
Version 25.0.3 (Python) is the recommended version and has been compiled on the CSF using GCC and OpenMPI and includes links to ORCA and DL_POLY.
Version 3.7.1 (tcl) has been compiled on the CSF using Intel compilers v17.0.7 and OpenMPI v3.1.1 and has been left available for legacy purposes.
Restrictions on use
Python version
Version 25.0.3 and later are subject to GNU GPL v3 and are available to all CSF users to use without restriction.
Please refer to documentation for ORCA and DL_POLY for further information and license restrictions.
TCL version
Version 3.7.1 is available for all CSF users to use. Users need to be in the ‘chemshell’ group.
Whilst the software is free for academic usage there are limitations within the licence agreement which must be strictly adhered to by users. The licence covers use on the CSF only.
A full copy of the licence can be found in:
/opt/apps/apps/intel-17.0/chemshell/3.7.1/chemshell_licence.pdf.
Important points to note are:
- All parts of Clause 2.1, in particular:
- The software is only available to Staff and Students of the University of Manchester. Visiting scientists/students who are collaborating with a member of Staff and who have been given an official University of Manchester IT username may use the software.
Users are reminded that they must not share their password with anyone, or allow anyone else to utilise their account.
- The software may only be used for academic purposes as defined in clause 1.1. No commercial work or commercially funded work permitted.
- Derived Work – Users must not modify, enhance or improve the software without consultation with the University Intellectual Property Team. Any derived works must be shared with appropriately cite CCLRC.
- The software is for use on the CSF only.
- Clause 4.2: the acknowledgements for the use of the software are set out in this clause and must be used for all employee and student publications.
All users who wish to use the software must request access by contacting us.
Running ChemShell Python
The Official ChemShell documentation provides much more than the basic information below.
To load the module:
module load apps/gcc/chemshell/py-25.0.3-orca-dlpoly
Help:
chemsh -h
Example Slurm script:
#!/bin/bash --login #SBATCH -p multicore #SBATCH -n 2 ## 2 cores, change this for real use #SBATCH -t 5 ## 5 minutes max, change this for real use module purge module load apps/gcc/chemshell/py-25.0.3-orca-dlpoly ## copy a very short example from tutorial to the present working directory cp $CHEMSH_DOCS/tutorial/samples/single_point/water.xyz . cp $CHEMSH_DOCS/tutorial/samples/single_point/hf_water.orca.py . ## run example chemsh -np $NTASKS hf_water.orca.py > hf_water.orca.log
Running ChemShell 3.7.1 (TCL)
This is provided for legacy information, the Python version of ChemShell is recommended.
To load the module:
module load apps/intel-17.0/chemshell/3.7.1
ChemShell is normally invoked using the chemsh script. By convention input files are suffixed .chm, although as is typical for Unix/Linux applications, the suffix has no significance. Running chemsh without an input file will launch an interactive session. Parallel execution can be started using
chemsh -p $NTASKS input.chm
or alternatively by launching the executable with mpirun:
mpirun -np $NTASKS chemsh.x input.chm
Serial batch job submission
The following Slurm script can be used to submit a single core Chemshell job with input data file test.chm:
#!/bin/bash --login #SBATCH -p serial #SBATCH -t 4-0 module purge module load apps/intel-17.0/chemshell/3.7.1 chemsh test.chm
Parallel batch job submission
#!/bin/bash --login #SBATCH -p multicore #SBATCH -n numcores ## change this #SBATCH -t 4-0 module purge module load apps/intel-17.0/chemshell/3.7.1 chemsh -p $NTASKS prepare.chm
Serial ChemShell calling Parallel QM/MM Applications
A ChemShell script will often use other tools to complete its calculation. For example TurboMole and/or Charmm can be started from within your ChemShell script. These tools can often run in parallel.
On the CSF we have found that starting ChemShell in parallel and then trying to run other parallel tools from ChemShell can cause the ChemShell job to crash. The solution is to run ChemShell serially and let it run the other tools in parallel. There are two ways to do this as explained below.
Writing your own jobscript
To prevent Chemshell from crashing it should be run serially and then let the other tools (e.g., TurboMole or CHARMM) run in parallel. Hence we still require a PE in the jobscript to specify the number of cores that will be used by the parallel tools. ChemShell can, however, still be run without any MPI commands.
Note that you must also load the modulefile for the additional tools ChemShell will use. For example, if calling TurboMole from your ChemShell script you must ensure that you load the required TurboMole modulefile, otherwise ChemShell will not be able to find the additional tools.
The following jobscript sets up a ChemShell job which uses TurboMole to do some processing. TurboMole will run in parallel, but only a single ChemShell process will run. The jobscript is:
#!/bin/bash --login #SBATCH -p multicore #SBATCH -n 4 #SBATCH -t 4-0 module purge module load apps/intel-17.0/chemshell/3.7.1 # PARNODES is used by Turbomole - set it to the number above using $NTASKS export PARNODES=$NTASKS # Run ChemShell serially (without any mpirun) chemsh myinput.chm >& myoutput.log
Further info
Further information can be found on the ChemShell web page including the Chemshell Manual, tutorials and details of the chemsh-users email list which can be used to post queries to seek help.
