This free version of Molcas is primarily used to perform excited state electronic structure computations with multiconfigurational CASSCF/RASSCF and CASPT2/RASPT2 methods, but it also features a number of DFT functionals and other correlation methods, continuum solvation approaches, geometry optimizations optimization and molecular dynamics. It contains a large part of the original Molcas codebase that has been released as free and open-source software. Further documentation can be found at https://molcas.gitlab.io/OpenMolcas/sphinx/
The version installed on hilbert can be run in parallel mode, the RASPT2 routines are, however, not heavily parallelized. . While this works efficient for SCF and RASSCF routines, RASPT2 is not heavily parallelized, so do not expect too much gain in performance here. Optimized versions are provided for arch=ivybridge and arch=skylake/icelake/zen2. The module is invoked with:
Codeblock | ||||
---|---|---|---|---|
| ||||
module load openmolcas/22.6 |
OpenMolcas uses a number of internal variables to define computational ressources such as memory, diskspace and location of input and output files. An example submit script for parallel runs is shown below.
Codeblock | ||
---|---|---|
| ||
#!/bin/bash
#PBS -S /bin/bash
#PBS -A "YOURPROJECT"
#PBS -l select=1:ncpus=4:mem=12500mb:arch=skylake
#PBS -l walltime=10:00:00
cd $PBS_O_WORKDIR
module load openmolcas/22.6
#Adapat to your needs
export INPUT=your_input_file
export MOLCAS_MEM=2000
#Molcas internal variables (leave unchanged)
export MOLCAS_NPROCS=$NCPUS
export PROG=pymolcas
export Project=$INPUT
export WORKDIR=/gpfs/scratch/$USER/$PBS_JOBID
export WorkDir=$WORKDIR
export MOLCAS_OUTPUT=$WORKDIR
export INPUTDIR=$PBS_O_WORKDIR
export OUTPUT=$INPUT.out
mkdir -p $WORKDIR
cp -r $INPUTDIR/* $WORKDIR
cd $WORKDIR
ln -s $MOLCAS/pymolcas pymolcas
# execute openmolcas
python3 $PROG -np $MOLCAS_NPROCS $WORKDIR/$INPUT 1> $WORKDIR/$OUTPUT 2>$WORKDIR/$INPUT.err
# copy back and clean up
cp -r $WORKDIR/* $INPUTDIR
rm -r $WORKDIR |
MOLCAS_MEM is specified in megabytes and per cpu, but OpenMolcas does not always perfectly stick to this number. It is thus wise to add another ~30% of memory for allocation in PBS to prevent the job from being cancelled. For serial runs set MOLCAS_NPROCS=1.