Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Quantenchemie der Festkörper/ Katalyse

Examples:

Here we present the example jobs, which represent typical calculation types supported by MonaLisa package:

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.