Interfaces:
Monalisa consists of interfaces which provide the energy, gradients and hessian matrices of investigated molecules. These quantities are further passed to the runners (e.g. optimizer, md, thermo etc.), which process them.
Interfaces are divided into two main groups:
Leaf Interfaces
Leaf interfaces are objects which prepare the input files for the external QM programs, and are able to run these programs and subsequently read energy, gradient and hessian from the output of these programs. Monalisa provides the following leaf interfaces:
- Orca Interface
- Turbomole Interface
- VASP Interface
- CP2K Interface
- GULP Interface
- Molpro Interface
- Gaussian Interface
- Crystal Interface
- CFOUR Interface
Internal Interfaces
Internal interfaces are functions which are calling the other interfaces, that provide observables (energies, gradients and hessians). This observables are processed to deliver new energy, gradient and hessian. Internal interfaces may process observables from the leaf interfaces or from the other internal interfaces.
Monalisa provides the following leaf interfaces:
Leaf Interfaces
Orca Interface
ORCA is an ab initio, DFT, and semi-empirical SCF-MO package developed by Frank Neese et al. at the Max Planck Institute for Chemical Energy Conversion.
A unique feature of the Orca is DLPNO method which provides approximate MP2, CCSD and CCSD(T) energies for really big molecules. Orca interface is called by:
interface = orca {}
Orca interface doesn't need any additional keywords. In such a case it will use default settings for keywords. If you want to change the options you put keywords in the curly brackets {}.
setup:
Before running calculations one has to setup the system. After this in the appropriate subfolder of toplevel MonaLisa will prepare: energy.setup and hessian.setup file. These files are templates for energy.inp and hessian.inp files, which are created from *.setup files by replacing UPDATECOORD keyword by coordinates which are updated by actual structure of the molecule during the run of MonaLisa. Whatever is changed in *.setup files will affect Orca calculations. In this way one may use some special setting of the program, but one may also spoil the calculations, so beware.
keywords:
keywords = <string> |
Creates a keyword line which specifies orca calculations type (default: "pbe D2 def2-TZVP def2-TZVP/J") |
program = <string> |
Command to execute the orca program (when the program is in the $PATH) or the path to the binary of the program (default: "orca") |
energyprogram = <string> |
Path to the binary of the program for energy calculations. If it is not specified it is the same as the program variable (default: the same as program, so "orca") |
|
Path to the binary of the program for hessian calculations. If not specified - the same as the program variable (default: "orca") |
energyonly = <bool> |
Energy-only calculations. By default orca generates energy and gradient (EnGrad in keywords line). To force the program to run only energy (what is much cheaper in the case of e.g. MP2) set: energyonly = true (default: "false") |
nprocs = <int> |
Number of processors used in calculations. Creates the "%PAL NPROCS <int> END" keyword in the orca input file (default: "1") |
maxcore = <int> |
Maximal amount of memory per core (in MB). (default: "") |
charge = <int> |
Charge of the system (default: "0") |
multiplicity = <int> |
Multiplicity of the system (default: "1") |
extraline = <string> |
Line to add in the input file. In this way one may specify some special orca options (default: ""). Note: currently only one extraline available |
energyinput = <string> |
Name of the energy input file. Default value is "energy". The interface creates then energy.inp, and reads energy.out file. Modification will change the input and output file names |
hessianprogram = <string> |
Name of the hessian input file. Default value is "hessian". The interface creates then energy.inp, and reads energy.out file. Modification will change the input and output file names |
fullcommand = <bool> |
Only specified "program" string will be executed. Default value is (false). In the case false program runs: program energy.inp > energy.out . Some libraries may interferer and more involved commands are needed. In such cases one have to put fullcommand = true and specify the advanced command in the "program" variable. One useful example is when somebody wants to load and unload modules before and after running the program: "program = module load ORCA.401; /apps/ORCA/4.0.1/orca energy.inp > energy.out ; module unload ORCA.401 " |
expert keywords:
read_energy = <string> | Read energy from specified precalculated file (default: ""). The safest way is to define file with respect to the folder in which Orca calculations are done, i.e. relative path. If keyword is empty it reads standard output of orca . Use this option carefully. |
read_model = <string> | Specify the type of energy which has to be read from output file. Possible keywords: "hf", "mp2", "ccsd", "ccsd(t)" . |
Note:
These both keywords are very useful in the case of ExtrapolInterface
, in which we need both HF and post-HF energies. Since as prerequisite for the post-HF calculations are HF calculations, these two types of jobs are done in one Orca job, and we don't need to run them separately (which requires then twice HF calculations). In such a case one can run firs MP2 calculation in HF job (e.g. scf-X of ExtrapolInterface)
, read the HF results from the default output file, and then in the MP2 calculation just read MP2 energy from appropriate output file (the one generated by HF job). The same can be done in the case of CCSD(T) calculations, which output contain HF, MP2, CCSD and CCSD(T) results.
Turbomole Interface
TURBOMOLE is a quantum chemical program package, initially developed in the group of Prof. Dr. Reinhart Ahlrichs at the University of Karlsruhe and at the Forschungszentrum Karlsruhe. Presently TURBOMOLE is one of the fastest and most stable codes available for standard quantum chemical applications. Unlike many other programs, the main focus in the development of TURBOMOLE has not been to implement all new methods and functionals, but to provide a fast and stable code which is able to treat molecules of industrial relevance at reasonable time and memory requirements.
The interface is invoked by:
interface = turbo {}
keywords:
energyprogram = <char> | Source file of the energy program. Options: "dscf" (default), "ridft", "ricc2", "ricc2_huge" or "ccsdt" |
gradientprogram = <char> | Source file of the gradient program. Options: "grad" (default), "rdgrad" or "" (for energyprogram = ricc2) |
hessianprogram = <char> | Source file of the hessian program. Options: "aoforce" (default), "numforce -frznuclei -central" (numerical hessian) |
setupscript = <char> | Path to the setup script which define the method of calculations. Default: "" (empty). If not empty it runs the string command in the folder of turbomole calculations |
read_energy = <bool> | Read energy from specified file. E.g. "./dscf.out" or "/users/mary/results/methane.out" |
read_gradient = <bool> | Read gradient from specified file. E.g. "./rdgrad.out" or "/users/mary/results/grad.out" |
read_hessian = <bool> | Read hessian from specified file. E.g. "./aoforce.out" |
VASP Interface
VASP (Vienna Ab initio Simulation Package) is a program for modeling 3D periodic structures (crystals) using plane wave basis sets and pseudopotentials. It performs particularly good for LDA/GGA DFT, however DFT with hybrid functionals, Hartree-Fock and MP2 methods are also supported. The interface is invoked by:
interface = vasp{}
VASP interface doesn't need any additional keywords. In such a case it will use default settings for keywords. If you want to change the options you put the keywords in the curly brackets {}.
setup:
Before running calculations one has to setup the system. After this in the appropriate subfolder of the toplevel/ MonaLisa will prepare: POSCAR_UPDATE file. This file is a template for POSCAR file (structure of the molecule - see VASP internet site), which is created from POSCAR_UPDATE file by replacing UPDATECOORD keyword with coordinates of actual structure of the molecule. These coordinates are updated during the MonaLisa run. Whatever is changed in POSCAR_UPDATE file will affect VASP calculations. In this way one may use some special setting of the program, but one may also spoil the calculations, so beware.
VASP needs also specification of k-points (KPOINTS), calculation settings (INCAR) and pseudopotentials (POTCAR). These three files may be generated automatically during the setup run ($monalisa_bin --setup monalisa.inp
) by MonaLisa by invoking auto_incar = true
in the vasp interface data group. By default auto_incar = false
in such case one these three filse should be placed manually in respective file folder before run. Please remember to put appropriate settings for the single point calculation in the INCAR file.
An example of vasp interface with automatic generation of files is presented below:
vasp {
program = mpirun /apps/VASP/5.3.5/vasp
auto_incar = true
GA = PE
PREC = High
EDIFF = 1.0e-6
ENCUT = 400
ALGO = VeryFast
IVDW = 1
ISPIN = 1
KPOINTS = 1 1 1
PP_LIBRARY = /users/mary/vasp_PP_LIBRARY/potpaw_PBE.52/
NPAR = 4
ISTART = 1
}
Many of the default settings are well balanced, therefore even running setup with only auto_incar = true
and defining the place wher the POTCAR files are placed (PP_LIBRARY
) creates reasonable input.
If one would like to use special keywords of VASP, which are not supported by keywords of MonaLisa, can modify the INCAR_TEMPL_E and INCAR_TEMPL_H files (for Energy/Gradient and Hessian calculations, respectively) which are created during setup run manually before running calculations.
If you would like to use your own INCAR files, place them in the VASP running directory (in correspondig subfolder of toplevel). An example of the INCAR file which should work fine (settings for insulators with D2 dispersion):
#Electronic minimization
GGA = PE ! density functional
PREC = Accurate ! precision tag
EDIFF = 1E-6 ! criterion to end SCF loop
ENCUT = 400.0 ! energy cutoff
NELMIN = 5 ! minimum number of SCF-iterations
NSW = 1 ! Number of ionic steps
NELM = 100 ! Number of electronic iterations
#DOS related values
ISMEAR = 0 ! Gaussian smearing for big cells
#Single point energy calculation
IBRION = -1 ! job type (-1 for single point)
NSW = 1 ! number of ionic steps (1 for single point)
LVDW = .TRUE. ! grimme D2 dispersion
#Do not write huge files - restart options
LCHARG = .FALSE. ! do not write charges
LWAVE = .FALSE. ! do not write wave function
ISTART = 0 ! do not read previous SCF guess
#Performance options
NPAR = 8 ! adjust to number of node (same number)
IALGO = 48 ! RMM-DIIS algorithm for electrons
LPLANE = .TRUE. ! data distribution in real space is done plane wise
LREAL = Auto ! do projection in real or reciprocal space
For more details see VASP manual.
Beware!!! All coordinates in the VASP's POSCAR are sorted with respect to the atom type, therefore the order of the atoms may be different than in the POSCAR. The pseudopotentials in the POTCAR file have to be in the same order as atoms in the POSCAR, so always check the atom order in POSCAR_UPDATE and compere if the atom order in the POTCAR is the same. If not - you will get unphysical results.
keywords:
auto_incar = <bool> |
Automatic creation of INCAR files (default: false). If false - one has to prepare INCAR file manually and place it in the running folder by hand. If true - INCAR files (for energy and hessian calculations) are prepared automatically |
program = <string> |
Command to execute the VASP program (when the program is in the $PATH) or the path to the binary of the program (default: "vasp"). |
read_energy = <string> |
Read energy and gradient from the already existing file specified in the string (path to the OUTCAR file) (default: "", i.e. don't read the file). If the string is not empty then the program will not calculate energy, but will read the specified file instead. |
read_hessian = <string> |
Read hessian from the already existing file specified in the string (path to the OUTCAR file) (default: "", i.e. don't read the file). If the string is not empty then the program will not calculate hessian, but will read the specified file instead. |
INCAR_templ_E = <string> |
Name of the INCAR template file for creation of INCAR in energy/gradient calculations (default: INCAR_TEMPL_E). |
INCAR_templ_H = <string> |
Name of the INCAR template file for creation of INCAR in hessian calculations (default: INCAR_TEMPL_H). |
GGA = <string> |
Type of the GGA functional used (default: "PE", i.e. PBE), for more details see VASP manual. |
PREC = <string> |
Specifies the "precision"-mode (default: Accurate). Options: Low, Normal, High. |
LREAL = <string> |
Whether the projection operators are evaluated in real-space or in reciprocal space (default: Auto) |
ISPIN = <string> |
Specifies spin polarization (default: 1 - non spin polarized) 2 - spin polarized |
VDW_C6 = <string> |
C6 parameters of D2 dispersion for each kind of atoms (default: "" - default D2 parameters) |
VDW_R0 = <string> |
R0 parameters of D2 dispersion for each kind of atoms (default: "" - default D2 parameters) |
VDW_S6 = <string> |
Global scaling parameter for D2 dispersion (default: "" - corresponds to 0.75 value of PBE) |
ALGO |
Electronic minimisation algorithm (default: VeryFast). Options: Fast, Normal (default for VASP), Conjugate, and more ... |
PP_LIBRARY = <string> |
The absolute path to the VASP pseudopotentials library (default: ""). If empty, than the proper POTCAR file has to be copied by user to the vasp interface folder. If not empty than the POTCAR will be automatically generated according to the structure. Example of the usage: "PP_LIBRARY = /apps/vasp_PP_LIBRARY/potpaw_PBE.52/" |
PP_KIND = <string> |
Specify pseudopotential kind for each element separately (default: ""), it has to be specified for each element in the correct order as in the POSCAR file, and separated by semicolon (;). If variable is empty and PP_LIBRARY is specified, then always the default POTCAR is used (element name). If variable is not empty and PP_LIBRARY is specified, then it creates POTCAR using specified psedopotentials, e.g. "PP_KIND = H;C_s;O_h;S" |
KPOINTS = <string> |
Automatic generation of KPOINTS grid file (default: "1 1 1" - i.e. Gamma point). The type of automatic generation scheme is defined by KPOINTS_SCHEME keyword |
KPOINTS_SCHEME = <string> |
Scheme of generation of the KPOINTS grid (default: Monkhorst-pack) alternative: Gamma |
KPOINTS_SHIFT = <string> |
Shift of the KPOINTS mesh (default: 0. 0. 0.) |
EDIFF = <double> |
Convergence criterium for SCF loop in eV (default: 1.0e-6) |
ENCUT = <double> |
Energy cutoff of the plane-vawes in eV (default: 400.0) |
POTIM = <double> |
Step-width (in A) for Hessian calculations (default: 0.015) |
SIGMA = <double> |
Determines the width of the smearing in eV (default: 0.2). See also ISMEAR keyword |
NELECT = <double> |
Number of valence electrons (default: -1.0). If NELECT < 0.0 - don't specify number of electrons, i.e. the system is charge neutral. |
NFREE = <int> |
How to calculate the frequencies (default: 2 - symetric displacements), options: 1 - one displ., 4 - four displ. |
NELMIN = <int> |
Minimal number of SCF loops (default: 6) |
NELM = <int> |
Maximal number of SCF loops (default: 80) |
IVDW = <int> |
Dispersion (vdW) corrections (default: 1 - Grimme D2 method), Options: 0 - no disperssion, 11 - D3, and more ... |
ISMEAR = <int> |
How the partial occupancies fnk are set for each orbital (default: 0 - Gaussian smearing). For more options see VASP manual, related keyword is SIGMA |
ISTART = <int> |
Whether or not to read the WAVECAR file (default: 0 - don't read WAVECAR). Other options: 1 - read WAVECAR with constant energy cutoff, 2 - restart with constant basis set |
LVDW_EWALD = <bool> |
D2 dispersion calculated using Ewald summation technique (default: false) |
LPLANE = <bool> |
Switches on the plane-wise data distribution in real space (default: true) |
CP2K Interface
CP2K is a quantum chemistry and solid state physics software package that can perform atomistic simulations of solid state, liquid, molecular, periodic, material, crystal, and biological systems. CP2K provides a general framework for different modeling methods such as DFT using the mixed Gaussian and plane waves approaches GPW and GAPW. Supported theory levels include DFTB, LDA, GGA, MP2, RPA, semi-empirical methods (AM1, PM3, PM6, RM1, MNDO, …), and classical force fields (AMBER, CHARMM, …).
CP2K interface is invoked by:
interface = cp2k {}
The interface doesn't need any additional keywords. In such a case it will use default settings for keywords. If you want to change the options you put keywords in the curly brackets {}.
setup:
Before running calculations one has to setup the system. After this in the appropriate subfolder of toplevel MonaLisa will prepare: energy_template.inp and hessian_template.inp files. These files are templates for energy.inp and hessian.inp files, which are created from *_template.inp files by replacing UPDATECOORD keyword by coordinates which are updated by actual structure of the molecule during the run of MonaLisa. Whatever is changed in *_template.inp files will affect CP2K calculations. In this way one may use some special setting of the program, but one may also spoil the calculations, so beware.
keywords:
program = <string> |
Command to execute the CP2K program (when the program is in the $PATH) or the path to the binary of the program (default: "cp2k") |
hessianprogram = <string> |
Command to execute the CP2K hessian (when the program is in the $PATH) or the path to the binary of the program (default: the same as program ) |
precommand = <string> |
Terminal command which will be invoked before the program runs (i.e. module load ompi-165_xe2013.sp1.1.106) (default value "" , i.e. don't run the command) |
postcommand = <string> |
Terminal command which will be invoked after the program runs (i.e. module unload ompi-165_xe2013.sp1.1.106) (default value "" , i.e. don't run the command) |
read_hessian = <string> |
read specific hessian file , eg. output_hessian (useful if precalculated hessian is available) |
read_energy = <string> |
read specific energy file , eg. output_sp (useful if you have already some calculations and you want to read just energy) |
input_energy = <string> |
Energy input file name (default: energy.inp) |
output_energy = <string> |
Energy output file name (default: energy.out) |
input_hessian = <string> |
Hessian input file name (default: hessian.inp) |
output_hessian = <string> |
Hessian output file name (default: hessian.out) |
kind_basis_potential = <string> |
Definition of the kind, basis set and potential, for each atom (default: ""). If the variable is not defined or empty, than the same basis, and potentials are used for all kinds of atoms present in the system. as defined in variables basis and potential |
basis_file = <string> |
Definition of the basis set file (default: ./GTH_BASIS_SETS) |
potential_file = <string> |
Definition of the pseudopotential file (default: ./GTH_POTENTIALS) |
dispersion_file = <string> |
Definition of the dispersion file (for D3 dispersion) (default: "") |
scf_guess = <string> |
Initial guess for the wavefunction (default: "ATOMIC") options: RANDOM,CORE,... |
diag_alg = <string> |
Algorithm used for diagonalization (default: "STANDARD") options: see cp2k manual |
mix_method = <string> |
Mixing method to be applied (default: "BROYDEN_MIXING") options: see cp2k manual |
functional = <string> |
The XC functional for DFT (default: "PBE") options: see cp2k manual |
dispersion = <string> |
Potential to calculate dispersion (default: "DFTD2") options: see cp2k manual under PAIR_POTENTIAL |
basis = <string> |
Definition of the basis set of all atoms (default: "DZVP-GTH"), the same basis is used for all atoms if kind_basis_potential variable is empty |
potential = <string> |
Definition of the pseudopotential of all atoms (default: "GTH-PBE"), the same pseudopotential is used for all atoms if kind_basis_potential variable is empty |
kpoints_scheme = <string> |
K-points scheme to be used (default: "", i.e. GAMMA), optional values: GAMMA, MONKHORST-PACK, MACDONALD, this option is activated only if kpoints variable is not empty |
kpoints = <string> |
Set up the k-points (default: "", than use GAMMA point), it expects 3 integers separated by spaces (e.g. 3 3 3) |
uks = <bool> |
Unrestricted Kohn-Sham calculations (default: false = restricted KS) |
eps_default = <double> |
Threshold used for accuracy estimates within energy correction (default: 1.0E-10) |
cutoff = <double> |
The cutoff of the finest grid level in Ry (default: 280.0) |
rel_cutoff = <double> |
Determines the grid at which a Gaussian is mapped in Ry (default: 40.0), giving the cutoff used for a gaussian with alpha=1. A value 50+-10Ry, might be required for highly accurate results. |
eps_scf = <double> |
Target accuracy for the SCF convergence in Ha (default: 1.0E-05) |
alpha = <double> |
Fraction of new density to be included in mixing (default: 0.40) |
hess_dx = <double> |
the increment to be used to construct the HESSIAN in A (default: 0.015 A) |
ngrids = <int> |
The number of multigrids to use (default: 4) |
max_scf = <int> |
Maximum number of SCF iteration to be performed (default: 50) |
npulay = <int> |
Number of previous steps stored for the actual mixing scheme (default: 4) |
nproc_rep = <int> |
Number of processors to be used per replica environment (default: 1), in the big systems it might be useful to set it to the number of available processors (to diminish amount of output files). The time performance should be, however, testet against this parameter. |
charge = <int> |
Total charge of the system (default: 0) |
multiplicity = <int> |
Two times the total spin plus one (default: 1), specify 3 for a triplet, 4 for a quartet, and so on. |
GULP Interface
Internal Interfaces
Embed Interface
It is one of the most important internal interface of the MonaLisa. This interface realize mechanical embedding scheme developed by Sauer and co-workers (J. Comput. Chem. 1997, 18, 463). The total hybrid energy of the system is defined as:
$$ E_{tot} = E_{hi}(cluster) - E_{lo}(cluster) + E_{lo}(host) $$
E(total) = E(hi_cluster) - E(lo_cluster) + E(lo_host)
where $E_{hi}(cluster)$ E(hi_cluster) represents the energy of the cluster calculated using high level of theory, E(lo_cluster) is the energy of the cluster calculated using low level of theory, whereas E(lo_host) is the energy of the whole system calculated using the low level theory. Note that each of these energies may be provided by leaf interfaces or another internal interfaces. Analogically one can define gradient and hessian.
Embed calculations are only possible if one defines the cluster molecule and hi_cluster, lo_cluster and lo_host interfaces. The informative example of the embed interface is below (# indicates comments which are ignored by program):
interface = embed{
cluster_atoms =
1, 2, 9, 10, 17, 18, 27, 37, 39, 69, 72, 78, 80, 84, 97, 98, 105, 106, 113, 114, 149, 157, 165, 175, 179, 181, 183, 193, 194, 201, 202, 209, 210, 245, 249, 253, 261, 267, 275, 279, 281, 289, 290, 297, 298, 305, 306, 307, 315, 316, 321, 322, 329, 330, 349, 371, 381, 385, 386, 393, 394, 401, 402, 411, 412, 421, 422, 431, 432, 447, 457, 473, 501, 504, 515, 536, 540, 558, 560, 574, 577-581 # Numbering of the atoms w.r.t. the input structure (numbers separated by commas, ranges are indicated by "-" character)
# link atoms information
input_format = merged #Definition of the link atoms: "merged" - manual, "auto" - automatic
# Link atoms definition
# atom -- anchoratom (host) -- borderatom (cluster) -- distance to cluster -- atom type (MM)
linker {
H 435 27 0.961 H1
H 445 37 0.961 H1
H 475 39 0.961 H1
H 514 72 0.961 H1
H 534 78 0.961 H1
H 494 157 0.961 H1
H 491 175 0.961 H1
H 511 181 0.961 H1
H 568 245 0.961 H1
H 451 249 0.961 H1
H 484 261 0.961 H1
H 487 267 0.961 H1
H 525 281 0.961 H1
H 516 289 0.961 H1
H 557 298 0.961 H1
H 474 305 0.961 H1
H 403 307 0.961 H1
H 448 315 0.961 H1
H 535 322 0.961 H1
H 503 330 0.961 H1
H 524 371 0.961 H1
H 541 381 0.961 H1
}
hi_cluster{
#definition of the hi_cluster interface
interface = turbo{
# turbomole interface (details here)
energyprogram = ridft
gradientprogram = rdgrad
}
}
lo_cluster{
#definition of the lo_cluster interface
interface = gulp{
# gulp interface (details here)
program = gulp
periodic = 0D
shells = o1,o2,o3
}
}
lo_host{
interface = gulp{
# gulp interface (details here)
program = gulp
periodic = 0D
shells = o1,o2,o3
}
}
}
In this example we use turbomole as a high-level cluster calculations, whereas low-level calculations of either cluster and host are performed using force-field provide by GULP program.
setup:
Before running calculations one has to setup the system. After this in the appropriate subfolder of toplevel MonaLisa will prepare subfolders: hi_cluster, lo_cluster and lo_host (if mode = hionly, only hi_cluster will be created). Program will also prepare files: "cluster.cif" (cluster structure) and "linkers" (information about link atoms). It is always worth to check if the folders are created properly.
keywords:
mode = <char> | Type of calculations, options: "embed" (default) - embed calculations; "hionly" - calculations for cluster only, useful for testing cluster performance |
cluster_atoms = <list> | List of atoms constituting the cluster. Numbering as in the input file. Integers separated by commas, or range of numbers specified by initial index and final index separated by "-". Eg. "1,2,6,8-13,4,22-45". |
input_format = <char> | Way of the link atoms definition. Options: "merged" (default) - manual definition of the link atoms (needs linker definition); "auto" - automatic definition of the link atoms. See link atoms section for more details. |
linker {<datagroup>} | Explicit definition of link atoms. See link atoms section for more details. |
periodic_cluster = <bool> | Options: "true" (default) - hi- and lo-clusters are treated as periodic systems with unit cell size as in the parent structure; "false" - no unit cell is ascribed to the clusters. |
Link atoms:
Creation of the cluster may create dangling bonds. If this is the case these bonds should be saturated by link atoms, which typically are hydrogen atoms. These link atoms should be placed between the border cluster atom and the neighboring atom which is not included in the cluster (anchor atom). The link atoms are placed on the line between the border atom and the anchor atom at predefined border atom - link atom distance. The link atoms can be defined manually using linker keyword (input_format = merged
):
# link atom element - anchor atom index - border atom index - border-link distance - MM atom type (optional)
linker {
H 435 27 0.961 H1
F 445 37 1.400 F1
C 475 39 1.510 Csp3
}
Link atoms
can be also created automatically by MonaLisa. This option is activated by "input_format = auto". In such case the hydrogen link atoms are created between two atoms which are separated less than 1.2 * sum of covalent radii of border and anchor. The border - link distance is defined as the sum of covalent radii of both atoms. This automatic procedure is performed in the beginning of calculations and the link atoms cannot change during optimization.
To have control over this automatic procedure it is good to run first setup, and after this control the "cluster.cif" file. If the different than default border - link distance is required, one should copy the linker definition from the "linkers" file to the input file, adjust the distances and change the format to "input_format = merged
"
Extrapol Interface
This interface realize the extrapolation of the basis set according to two point fitting described detailed in the article of Tuma and Sauer (J. Chem. Phys. 143 (2015) 102810).
This approach is reasonable only for calculation based on the HF or post-HF approach.
Calculation with this interface are invoked using the following syntax:
interface = extrapol {
type = scf-corr # type of extrapolation (scf-corr or scf)
CardinalNum_X = 3 # cardinal number of the smaller basis set (X)
CardinalNum_Y = 4 # cardinal number of the bigger bsisi set (Y)
# interface to calculate HF (with orca)
scf-X{
export keywords = HF cc-pVTZ
interface = $orca # orca interface should be defined later (see section
}
scf-Y{
export keywords = HF cc-pVQZ
interface = $orca
}
# interfaces to calculate post-HF (with orca)
corr-X{
export keywords = RI-MP2 cc-pVTZ
interface = $orca
}
corr-Y{
export keywords = RI-MP2 cc-pVTZ
interface = $orca
}Extrapol Interface
}"
keywords:
type = <char> | Type of calculations, options: "scf-corr" (default) - extrapolation of HF and correlation part (blocks scf-X,Y and corr-X,Y need to be specified); "scf" - HF extrapolation only (blocks scf-X,Y need to be specified) |
CardinalNum_X = <real> CardinalNum_Y = <ral> |
Cardinal number of the basis sets. Both need to be specify. No default values. X has to be lower than Y. In the most standard case: aug-cc-pVXZ and cc-pVXZ: D=2, T=3, Q=4. |
input_format = <char> | Way of the link atoms definition. Options: "merged" (default) - manual definition of the link atoms (needs linker definition); "auto" - automatic definition of the link atoms. See link atoms section for more details. |
scf-X{<datagroup>} scf-Y{<datagroup>} |
Definition of the interface used for scf calculations. |
corr-X{<datagroup>} corr-Y{<datagroup>} |
Definition of the interface used for post-HF calculations (correlation energy). Mandatory only for: |
BSSE Interface
Interface for calculation of Basis Set Superposition Error (BSSE) according to approach of Boys and Bernardi (ref).
Calculation with this interface are invoked using the following syntax:
bsse "bsse_general{
# Definition of monomers,separated by semicolon
domains = 10-20
# Not specified atoms are treated automatically as complementary monomer (here monomer = 1-9)
complementary = true
# Interface used for calculations
interface $orca
supermol{
interface $orca
export charge = $charge_sm
}
monomer1{
interface $orca
export charge = $charge_m1
}
monomer2{
export charge = $charge_m2
interface $orca
}
ghost1{
export charge = $charge_m1
interface $orca
}
ghost2{
export charge = $charge_m2
interface $orca
}
}"
keywords:
complementary = <bool> | How to specify monomers: "false" (default) - all monomers have to be specified explicitly (see domains keyword). If "true" you need to specify only N-1 monomers. The last one is assumed to be the rest of the molecules atoms. |
domains = <string> |
Atoms which build monomers in BSSE scheme. By default you need to specify all monomers in the scheme. If the keyword complementary = true you need to specify only N-1 monomers. Monomers are defined in one string and are separated by semicolon ";". An example: (without complementary option) "domains = 1,2,5-10; 3,4,11-50" or "domains = 1,2,5-10" (with complementary option). |
interface = {<datagroup>} | Definition of the interface used for calculations. |
monomers_only = <bool> | (Default "false") If "true" then calculations are done without ghost atoms. It is no BSSE calculations, but it returns the interaction energy (without BSSE-correction) in one run (without relaxation energy). |
ghosts_only = <bool> |
(Default "false") If "true" then calculations are done without cluster atoms (ghost molecules only). It no BSSE calculations, but it returns the BSSE-corrected interaction energy in one run (without relaxation energy). |