Examples:
Here we present the example jobs, which represent typical calculation types supported by MonaLisa package:
-
Rigid-body optimization of CH4 at H-CHA (Rigid-body optimizer)
-
Hybrid MP2:PBE+D2 single point calculations (Embed interface)
Many other examples are available in the tests/system_tests/ folder of the source file.
Optimization of a methane molecule (ORCA interface)
In this example we optimize a methane molecule using ORCA program (input files here). The MonaLisa input file (here CH4_Opt.inp) is following:
# definition of the PES
toplevel {
#which interface should be used
interface $orca
}
# definition of the sturct.
structure CH4_Opt.xyz
optimizer {
# convergence criteria
en_change 1.0e-6 # maximal energy change
max_grad 5.0e-3 # maximal gradient
max_step 5.0e-3 # maximal length of the step
rms_grad 1.0e-3 # rms of the gradient
rms_step 1.0e-3 # rms of the step
}
# definition of the run type
run {
optimize
}
# definition of the orca interface
define orca "orca{
program = orca #path to the binary of the program
keywords = pbe D2 def2-TZVP
nprocs = 1
charge = 0
multiplicity = 1
}"
Of course you need a file with coordinates of the molecule (here it is CH4_Opt.xyz).
To run an actual calculation you need to setup the system first with:
monalisa CH4_Opt.inp --setup
In this step you create toplevel folder in which all calculations of energy and gradients will be performed. Next you run the actual optimization using:
monalisa CH4_Opt.inp > CH4_Opt.out
In the monalisa output file (here CH4_Opt.out) you will find the history of optimization. All structures generated during optimization will be saved in monalisa.cif file, which may be visualized using for example Jmol package. The final structure of optimized molecule is written into CH4_Opt_dbg.car file. If you will restart monalisa job, it will read first CH4_Opt_dbg.car file and continue the calculations.
Optimization of H-CHA zeolite (VASP interface)
In this example we will optimize a periodic H-CHA zeolite model using VASP program (input files here). The MonaLisa input file (here HCHA_Opt.inp) looks as follows:
# definition of the PES
toplevel {
#which interface should be used
interface $vasp
}
# definition of the sturct.
structure POSCAR
optimizer {
# convergence criteria
en_change 1.0e-6 # maximal energy change
max_grad 5.0e-2 # maximal gradient
max_step 5.0e-3 # maximal length of the step
rms_grad 1.0e-2 # rms of the gradient
rms_step 1.0e-3 # rms of the step
}
# definition of the run type
run {
optimize
}
# definition of the VASP interface
define vasp "vasp{
program = aprun -B /sw/chem/vasp/5.3.5/mpp1/INTEL/vasp_gamma_cd # command that executes VASP binary (here parallel calculations)
}"
In this example we perform calculations with periodic boundary conditions, therefore the file which defines the structure of molecule has to provide unit cell parameters. In our case it is POSCAR file, however one may also use also car files.
First you need to setup the system with:
monalisa HCHA_Opt.inp --setup
After this you put all VASP files needed to run single point calculations (INCAR, KPOINTS, POTCAR) to the toplevel file. Finally you can run actual optimization with:
monalisa HCHA_Opt.inp > HCHA_Opt.out
Rigid-body optimization of CH4 at H-CHA (Rigid-body optimizer)
In this example we will optimize a methane molecule adsorbed on the Bronsted site of H-CHA zeolite using Rigid-body optimizer (input files here). The MonaLisa input file (here CH4_HCHA_RBOpt.inp) looks as follows:
# definition of the PES
toplevel {
#which interface should be used
interface $vasp
}
# definition of the sturct.
structure POSCAR
optimizer {
# turning on the Rigid-body optimizer
rb = true
# definition of rigid bodies (numbers with respect to the structure file), to define few rigid bodies, separate them by ";"
rigidbodies = 75-79
# optimization options
max_cycles 200
# convergence criteria
en_change 1.0e-5 # maximal energy change
max_grad 5.0e-3 # maximal gradient
max_step 5.0e-3 # maximal length of the step
rms_grad 1.0e-3 # rms of the gradient
rms_step 1.0e-3 # rms of the step
}
# definition of the run type
run {
optimize
}
# definition of the VASP interface
define vasp "vasp{
program = aprun -B /sw/chem/vasp/5.3.5/mpp1/INTEL/vasp_gamma_cd # command which executes VASP
}"
We do the setup step (see optimization of H-CHA zeolite for more details), and after this we may run actual optimization.
To get a real minimum we need to perform a full optimization after rigid-body one, but now it should take much less step than in the full optimization without rigid body step.
Hybrid MP2:PBE+D2 single point calculations (Embed interface)
In this example we calculate the energy of the propane adsorbed at the Bronsted site of the H-FER zeolite. We use here the Embed interface which is described in details here. As a high-level level method we use MP2 implemented in Orca, whereas low-level is calculated using PBE+D2 method using Orca (cluster) and VASP (periodic system - host).
The monalisa.inp file is following:
toplevel{
interface = $embed_big
export energyonly
}
structure monalisa.car # Default structure file format in MonaLisa (see
run {
single
}
define embed_big " embed{
# linker information
input_format = merged
# atom -- hostatom -- clusteratom -- distance to cluster
linker {
H 145 33 0.953
H 147 34 0.953
H 149 35 0.953
H 150 36 0.953
H 148 105 0.953
H 146 106 0.953
H 152 107 0.953
H 151 108 0.953
H 190 113 0.953
H 189 114 0.953
H 192 115 0.953
H 191 116 0.953
H 194 117 0.953
H 193 118 0.953
H 196 119 0.953
H 195 120 0.953
H 214 125 0.953
H 215 127 0.953
H 214 128 0.953
H 212 133 0.953
H 178 134 0.953
H 213 135 0.953
H 177 136 0.953
H 209 138 0.953
H 210 139 0.953
H 127 215 1.455
}
cluster_atoms = $cluster_big
hi_cluster{
interface $orca
export keywords = $keywords_mp2
#interface $orca
}
lo_cluster{
interface $orca
export keywords = $keywords_pbe
}
lo_host{
interface $vasp
}
}
"
#orca interface
define orca " orca{
program = module load ORCA.401;/apps/ORCA/4.0.1/orca energy.inp >energy.out; module unload ORCA.401
fullcommand = true
charge = 0 # default charge
multiplicity = 1 # default multiplicity
nprocs = 1 # default number of processors
maxcore = 14000 # maximal memory (in MB)
}
"
#vasp interface
define vasp "vasp{
program = mpirun /apps/VASP/5.2.12/vasp_gamma_cd #mpirun /apps/VASP/5.2.12/vasp+D #mpirun /apps/VASP/5.2.12/vasp_gamma_cd
read_energy = ./OUTCAR
}"
define cluster_big "33,34,35,36,73,74,75,76,77,78,79,80,89,90,91,92,93,94,95,96,105,106,107, 108,113,114,115,116,117,118,119,120,125,126,127,128,131,132,133,134,135,136 ,138,139,141,142,181,182,183,184,185,186,187,188,201,202,203,204,205,206,207, 215,216,217,218,219,220,221,222,223,224,225,226,227,228,"
define keywords_pbe "pbe D2 def2-TZVP def2/J"
define keywords_mp2 "DLPNO-MP2 cc-pVTZ cc-pVTZ/C TightPNO TightSCF"
In this example we used extensively define option which introduce aliases, which replace parts of the input text started with respective $ keyword (e.g.. $vasp is effectively replaced by the whole block "vasp{.... "). This makes the input file more readable.