MOPAC
In this section:
Description
According to the page of MOPAC, MOPAC (Molecular Orbital PACkage) is a semi-empirical quantum chemistry program based on the NDDO approximation of Dewar and Thiel.
Available Versions
mopac/17.162 (default)
Serial Job Submission
#!/bin/bash
#SBATCH -J mopac_serial
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 24:00:00
#SBATCH --mem=8G
export INPUT="benzene.mop"
export OUTPUT="benzene.out"
module load mopac
job-nanny MOPAC2012.exe benzene.mop
OpenMP Job Submission
#!/bin/bash
#SBATCH -J mopac_omp
#SBATCH -N 1
#SBATCH -c 8
#SBATCH -t 24:00:00
#SBATCH --mem=16G
export INPUT="large.mop"
export OUTPUT="large.out"
module load mopac
# MOPAC automatically uses threads
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
job-nanny MOPAC2012.exe large.mop
Example Input File (.mop)
PM7 XYZ T=2H PRECISE
Benzene optimization
C 0.000000 1.396000 0.000000
C 1.209000 0.698000 0.000000
C 1.209000 -0.698000 0.000000
C 0.000000 -1.396000 0.000000
C -1.209000 -0.698000 0.000000
C -1.209000 0.698000 0.000000
H 0.000000 2.478000 0.000000
H 2.146000 1.239000 0.000000
H 2.146000 -1.239000 0.000000
H 0.000000 -2.478000 0.000000
H -2.146000 -1.239000 0.000000
H -2.146000 1.239000 0.000000
Main MOPAC Keywords
Keyword |
Description |
|---|---|
|
Semi-empirical method |
|
Austin Model 1 |
|
Modified Neglect of Diatomic Overlap |
|
Coordinates in XYZ format |
|
Geometry optimization |
|
Vibrational frequency calculation |
|
Thermodynamic property calculation |
|
Time limit (2 hours) |
|
Stricter convergence criteria |
|
Single SCF calculation (no optimization) |
Thermodynamic Properties Calculation
#!/bin/bash
#SBATCH -J mopac_thermo
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 12:00:00
#SBATCH --mem=8G
export INPUT="ethanol.mop"
export OUTPUT="ethanol.out"
module load mopac
job-nanny MOPAC2012.exe ethanol.mop
PM7 OPT FREQ THERMO XYZ T=1H
Ethanol thermochemistry
C 0.000000 0.000000 0.000000
C 1.528000 0.000000 0.000000
O 2.000000 1.320000 0.000000
H -0.400000 1.010000 0.000000
H -0.400000 -0.510000 0.890000
H -0.400000 -0.510000 -0.890000
H 1.928000 -0.520000 0.880000
H 1.928000 -0.520000 -0.880000
H 2.970000 1.370000 0.000000
Job Array for Conformational Scan
#!/bin/bash
#SBATCH -J mopac_array
#SBATCH --array=1-10
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 06:00:00
#SBATCH --mem=4G
ANGLES=$(seq 0 36 324)
ANGLE_ARRAY=($ANGLES)
ANGLE=${ANGLE_ARRAY[$SLURM_ARRAY_TASK_ID-1]}
export INPUT="template.mop"
export OUTPUT="angle_${ANGLE}/"
module load mopac
mkdir -p angle_${ANGLE}
cd angle_${ANGLE}
# Modify torsion angle
sed "s/DIHEDRAL_ANGLE/$ANGLE/g" ../template.mop > input.mop
job-nanny MOPAC2012.exe input.mop
PM7 XYZ OPT T=1H
Dihedral scan at DIHEDRAL_ANGLE degrees
C 0.000000 0.000000 0.000000
C 1.540000 0.000000 0.000000
C 2.080000 1.430000 0.000000
H -0.400000 1.030000 0.000000
H -0.400000 -0.510000 0.890000
H -0.400000 -0.510000 -0.890000
H 1.940000 -0.510000 0.890000
H 1.940000 -0.510000 -0.890000
H 2.080000 1.930000 0.890000
H 2.080000 1.930000 -0.890000
C 3.620000 1.430000 0.000000 DIHEDRAL_ANGLE
Molecular Orbital Calculation
#!/bin/bash
#SBATCH -J mopac_orbitals
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 04:00:00
#SBATCH --mem=4G
export INPUT="orbitals.mop"
export OUTPUT="orbitals.out"
module load mopac
job-nanny MOPAC2012.exe orbitals.mop
PM7 XYZ VECTORS ENPART
Molecular orbitals of benzene
C 0.000000 1.396000 0.000000
C 1.209000 0.698000 0.000000
C 1.209000 -0.698000 0.000000
C 0.000000 -1.396000 0.000000
C -1.209000 -0.698000 0.000000
C -1.209000 0.698000 0.000000
H 0.000000 2.478000 0.000000
H 2.146000 1.239000 0.000000
H 2.146000 -1.239000 0.000000
H 0.000000 -2.478000 0.000000
H -2.146000 -1.239000 0.000000
H -2.146000 1.239000 0.000000
Results Analysis
#!/bin/bash
#SBATCH -J analyze_mopac
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 00:30:00
#SBATCH --mem=2G
# Extract final energy
grep "FINAL HEAT OF FORMATION" *.out | awk '{print $6}' > energies.txt
# Extract optimized geometry
for out in *.out; do
echo "Optimized geometry for $out:" >> optimized_geometries.txt
awk '/CARTESIAN COORDINATES/,/CARTESIAN COORDINATES/ {
if(NF==4 && $1!="CARTESIAN") print $0
}' $out >> optimized_geometries.txt
echo "" >> optimized_geometries.txt
done
# Extract frequencies
grep "FREQUENCY:" *.out > frequencies.txt
# Extract HOMO/LUMO orbitals
grep "HOMO LUMO" *.out | awk '{print $4, $6}' > homo_lumo.txt
References
Documentation: http://openmopac.net/manual/
Tutorials: http://openmopac.net/manual/tutorials.html
Forum: http://openmopac.net/forum/
See also
GAMESS - Ab initio
Gaussian - Ab initio and DFT
ORCA - Free alternative
Running Simulations - How to submit jobs