3.6. Semiempirical Methods¶
Semi-empirical quantum mechanical methods (SQM) are very useful to deal with many of very large systems. They use tailored approximations to reduce the computational cost drastically while keeping a reasonable level of accuracy for large parts of the chemical space. They are specifically useful to simulate raction paths with NEB-TS or to define a SQM region in multi-scale approaches like ONIOM.
3.6.1. Neglect of Differential Overlap: CNDO, INDO, NDDO¶
A number of methods based on the “neglect of differential overlap” [289, 290] are currently implemented for energies and analytic gradients inluding AM1[291], PM3[292], MNDO[293, 294, 295] and other variants of CNDO, INDO, and NDDO.The methods MNDO , AM1, and PM3 are available for main group elements only and arise from the work of the Dewar group. They have been optimized to reproduce molecular structure and energetics. The older CNDO/1,2 and INDO/1,2 were developed by the Pople group [296, 297, 298, 299, 300, 301, 302, 303, 304] and were designed to roughly mimic minimal basis ab initio calculations. The methods of the Zerner group (ZINDO/1,2 and ZINDO/S) are closely related to the older methods but have been well parameterized for transition metals too [305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315]. ZINDO/1 (and less so ZINDO/2) are suitable for geometry optimization. ZINDO/S gives good results for electronically excited states at moderate configuration interaction levels and is also successful for the calculation of electron and spin distributions in large transition metal complexes [310, 311, 312, 313, 314, 315]. The ZNDDO/1,2 methods have been implemented into ORCA as straightforward extensions of the corresponding INDO methods without changing any parameter. However, the methods benefit from the somewhat more accurate representation of the Coulomb interaction within the NDDO approximation [316, 317]. The preliminary experience with these methods is that they are better than the corresponding INDO methods for calculation of transition metal complex structures but on the whole have also similar deficiencies. The analytic gradients are available for all of these methods and can be used to produce reasonable molecular structures at low computational cost or to get preliminary insight in the behavior of the system under investigation. However, do not try to use ZINDO/S (or CNDO/S) for structure optimizations - it does not make sense and will lead to disastrous results because there is no accurate representation of nuclear repulsion in these methods.
Tip
Even though ORCA has no implementation of newer MNDO methods like PM6 or RM1, they can be used via ORCA’s External Optimizer feature and MOPAC. This way, MOPAC can be interfaced to provide ORCA with energies and gradients via the respective wrapper script that can be downloaded from the ORCA external tools GitHub repository.
3.6.1.1. Basic Usage¶
The NDDO-based MNDO, AM1, and PM3 methods can be invoked via the simple input keywords !MNDO
, !AM1
and !PM3
.
!MNDO
!AM1
!PM3
These and other methods can be further defined via the %method
block, e.g. INDO with the INDO/1 parameter set as:
%method
METHOD INDO
VERSION INDO_1
end
Or by directly invoking the respective parameterization as METHOD
%method
METHOD INDO_1
end
Note
If you want you can also combine semiempirical methods with MP2
(energies only). For example use Method AM1
and DoMP2 true
. It is questionable if this makes the results of
semiempirical calculations any better but at least it is possible in ORCA.
3.6.1.2. Custom Parameters¶
You can change the built-in semiempirical parameters in a
straightforward fashion via the %ndoparas
block. To do so, any element sepcific parameters
can be defined via an array “P”:
%ndoparas
P[<atomic number>,<parameter number>] <real>
end
For example, we can set the resonance integral parameter BS (s shell beta) with the number 25 for Carbon (Z = 6) to 20 eV:
%ndoparas
P[6,25] 20
end
A full list of parameters that can be modified can be found below. Most of them will only be interesting for expert users. The most commonly modified parameters are the Beta’s (number 25 through 28). Note that most programs require a negative number here. In ORCA the resonance integrals are defined in a way that makes the Beta’s positive.
Parameter |
Number |
Description |
---|---|---|
Core Integrals (in eV): |
||
|
|
|
|
|
|
|
|
|
|
|
|
Basis Set Parameters (double-zeta): |
||
|
|
Number of shells for the element |
|
|
Number of Slater type orbitals for the s shell |
|
|
First exponent |
|
|
Second exponent |
|
|
First contraction coefficient |
|
|
Second contraction coefficient |
|
|
Number of Slater type orbitals for the p shell |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Number of Slater type orbitals for the d shell |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Number of Slater type orbitals for the f shell |
|
|
|
|
|
|
|
|
|
|
|
|
Resonance integral parameters (in eV): |
||
|
|
s shell beta |
|
|
p shell beta |
|
|
d shell beta |
|
|
f shell beta |
Number of electrons in the ground state: |
||
|
|
Total number of electrons (integer) |
|
|
Fractional occupation number of the s shell |
|
|
Fractional occupation number of the p shell |
|
|
Fractional occupation number of the d shell |
|
|
Fractional occupation number of the f shell |
One center repulsion (gamma) integrals (in eV): |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Slater Condon parameters (in eV): |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The nuclear repulsion parameters for Dewar type models: |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nuclear attraction/repulsion parameter for MNDO/d: |
||
|
|
|
Spin orbit coupling parameters: |
||
|
|
SOC for the p shell |
|
|
SOC for the d shell |
|
|
SOC for the f shell |
The “molecular” parameters are also set in the %ndoparas
block using “INTFA
”
(“interaction factors”);
%ndoparas
INTFA[PP_PI] 0.585
# The interaction factors exist for
# ss_sigma
# sp_sigma
# sd_sigma
# pp_sigma
# pd_sigma
# dd_sigma
# pp_pi
# pd_pi
# dd_pi
# dd_delta
# the parameter entering the Coulomb integrals
# in INDO/S
FGAMMA 1.2
end
3.6.1.3. Keywords¶
Keyword |
Description |
---|---|
|
Activates AM1 |
|
Activates PM3 |
|
Activates MNDO |
|
Activates ZINDO/1 |
|
Activates ZINDO/2 |
|
Activates ZINDO/S |
|
Activates ZNDDO/1 |
|
Activates ZNDDO/2 |
Keyword |
Options |
Description |
---|---|---|
|
|
Activates AM1 |
|
Activates PM3 |
|
|
Activates MNDO |
|
|
Activates CNDO/1 |
|
|
Activates CNDO/2 |
|
|
Activates CNDO/S |
|
|
Activates INDO/1 |
|
|
Activates INDO/2 |
|
|
Activates INDO/S |
|
|
Activates ZINDO/1 |
|
|
Activates ZINDO/2 |
|
|
Activates ZINDO/S |
|
|
Activates ZNDDO/1 |
|
|
Activates ZNDDO/2 |
|
|
Activates CNDO, requires a |
|
|
Activates INDO, requires a |
|
|
Activates NDDO, requires a |
|
|
|
Sets the parameter set for CNDO to |
|
Sets the parameter set for CNDO to |
|
|
Sets the parameter set for CNDO to |
|
|
Sets the parameter set for INDO to |
|
|
Sets the parameter set for INDO to |
|
|
Sets the parameter set for INDO to |
|
|
Sets the parameter set for INDO to |
|
|
Sets the parameter set for INDO to |
|
|
Sets the parameter set for INDO to |
|
|
Sets the parameter set for NDDO to |
|
|
Sets the parameter set for NDDO to |
|
|
Sets the parameter set for NDDO to |
|
|
Sets the parameter set for NDDO to |
|
|
Sets the parameter set for NDDO to |
3.6.2. Extended Tight-Binding: GFN0-xTB, GFN-xTB, GFN2-xTB¶
ORCA is interfaced to the xtb program by Grimme and coworkers, allowing the
user to request all kinds of calculations using the popular GFN0-xTB, GFN-xTB and
GFN2-xTB Hamiltonians.[161, 318, 319] From the technical
side, the user has to provide the executable provided by the Grimme
group. The xtb program package can be obtained free of charge from
https://github.com/grimme-lab/xtb/releases and detailed information on
the usage of the xtb
standalone program and its utilities can be found
at https://xtb-docs.readthedocs.io/en/latest/contents.html. Only the
file bin/xtb
is used by ORCA . The user should copy this file into the
directory where the other ORCA executables are located, and rename it as
otool_xtb
.
Warning
Please use the 6.7.1 version (or any later version) of xtb; older
versions are not fully compatible with ORCA anymore or are missing features, for example it may
not be possible to invoke the solvation model! Additionally, Windows users
should copy libiomp5md.dll
from the XTB directory to the ORCA directory.
The xTB method can be invoked via the GFN0-xTB
, GFN-xTB
, and GFN2-xTB
keywords. The GFN-FF generic force-field can be invoked via GFN-FF
:
! GFN0-xTB # Synonym: XTB0
! GFN-xTB # Synonym: XTB1
! GFN2-xTB # Synonym: XTB2
! GFN-FF # Synonym: XTBFF
The following methods can be used in conjunction with XTB:
Single Point Energy
Energy and Gradient
Optimization, using all kinds of constraints, relaxed surface scans, etc.
Nudged-Elastic Band calculations
Numerical Frequency Calculations
Intrinsic Reaction Coordinate
Molecular Dynamics Calculations
QM/MM calculations
Note
XTB0 is a non-self-consistent tight-binding method, and as such, its accuracy is generally inferior to XTB1 and XTB2 (and sometimes even XTBFF), despite that it is a few times faster than XTB1 and XTB2. From our experience, we only recommend XTB0 when both XTB1 and XTB2 exhibit qualitative failures for the system of interest.
Please note that XTB0, XTB1 and XTB2 can also be used for the initial path generation or for the calculation of an initial TS structure on XTB level, both as input for the subsequent NEB calculation on a higher level of theory. For more details, please consult section Nudged Elastic Band Method.
3.6.2.1. Solvation in xTB¶
Three implicit solvation models can be requested in xTB calculations:
the analytical linearized Poisson-Boltzmann (ALPB)[320] solvation model
the domain decomposition COSMO (ddCOSMO)[321]
the extended conductor-like polarizable continuum model (CPCM-X).[149]
These models can be requested via the simple keyword input:
! ALPB(solvent) # use ALPB
! DDCOSMO(solvent) # use ddCOSMO
! CPCMX(solvent) # use CPCMX
where solvent
is any of the solvents in Table 3.24.
They can further be envoked via the %xtb
block, here exemplarily shown for ALPB:
%xtb
DOALPB true
ALPBSOLVENT "water"
end
Solvent |
ALPB |
ddCOSMO |
CPCM-X |
---|---|---|---|
1,2,4-trimethylbenzene |
X |
||
1,2-dichloroethane |
X |
||
1,4-dioxane / dioxane |
X |
X |
|
1-butanol / butanol |
X |
||
1-chlorohexane / chlorohexane |
X |
||
1-decanol / decanol |
X |
||
1-fluorooctane |
X |
||
1-heptanol / heptanol |
X |
||
1-hexanol / hexanol |
X |
||
1-iodohexadecane / hexadecyliodide |
X |
||
1-nonanol / nonanol |
X |
||
1-octanol / octanol |
X |
X |
X |
1-pentanol / pentanol |
X |
||
1-propanol / propanol |
X |
||
2,2,4-trimethylpentane / isooctane |
X |
||
2,6-dimethylpyridine |
X |
||
2-butanol / secbutanol |
X |
||
2-methoxyethanol / methoxyethanol |
X |
||
2-methyl-1-propanol / isobutanol |
X |
||
2-methylpyridine / 2methylpyridine |
X |
||
2-propanol / isopropanol |
X |
||
4-methyl-2-pentanone / 4methyl2pentanone |
X |
||
acetic acid / aceticacid |
X |
||
acetone |
X |
X |
|
acetonitrile / mecn / ch3cn |
X |
X |
X |
acetophenone |
X |
||
aniline |
X |
X |
X |
anisole |
X |
||
benzaldehyde |
X |
X |
|
benzene |
X |
X |
X |
benzonitrile |
X |
||
benzyl alcohol / benzylalcohol |
X |
||
bromobenzene |
X |
||
bromoethane |
X |
||
bromoform |
X |
||
butanone |
X |
||
butyl ethanoate / butyl acetate / butylacetate |
X |
||
n-butylbenzene / butylbenzene |
X |
||
sec-butylbenzene / secbutylbenzene |
X |
||
tert-butylbenzene / tbutylbenzene |
X |
||
carbon disulfide / carbondisulfide / cs2 |
X |
X |
X |
carbon tetrachloride / ccl4 |
X |
||
chlorobenzene |
X |
||
chloroform / chcl3 |
X |
X |
X |
conductor |
X |
||
m-cresol / mcresol |
X |
||
cyclohexane |
X |
||
cyclohexanone |
X |
||
decalin |
X |
||
n-decane / decane |
X |
||
dibromomethane |
X |
||
dibutylether |
X |
||
o-dichlorobenzene / odichlorobenzene |
X |
||
dichloromethane / ch2cl2 / dcm |
X |
X |
X |
diethyl ether / diethylether |
X |
X |
X |
diisopropyl ether / diisopropylether |
X |
||
n,n-dimethylacetamide / dimethylacetamide |
X |
||
n,n-dimethylformamide / dimethylformamide / dmf |
X |
X |
X |
dimethylsulfoxide / dmso |
X |
X |
X |
diphenylether |
X |
||
n-dodecane / dodecane |
X |
||
ethanol |
X |
X |
X |
ethyl acetate / ethylacetate / ethanoate |
X |
X |
X |
ethyl phenyl ether / ethoxybenzene |
X |
||
ethylbenzene |
X |
||
fluorobenzene |
X |
||
furan / furane |
X |
X |
|
n-heptane / heptane |
X |
||
n-hexadecane / hexadecane |
X |
X |
X |
n-hexane / hexane |
X |
X |
X |
iodobenzene |
X |
||
isopropylbenzene |
X |
||
p-isopropyltoluene / isopropyltoluene |
X |
||
mesitylene |
X |
||
methanol |
X |
X |
X |
n-methylformamide / methylformamide |
X |
||
nitrobenzene / phno2 |
X |
||
nitroethane |
X |
||
nitromethane / meno2 |
X |
X |
X |
o-nitrotoluene / onitrotoluene |
X |
||
n-nonane / nonane |
X |
||
n-octane / octane |
X |
||
n-pentadecane / pentadecane |
X |
||
octanol(wet) / wetoctanol / woctanol |
X |
X |
|
n-pentane / pentane |
X |
||
perfluorobenzene / hexafluorobenzene |
X |
||
phenol |
X |
X |
|
pyridine |
X |
||
tetrachloroethene / c2cl4 |
X |
||
tetrahydrofuran / thf |
X |
X |
X |
tetrahydrothiophene-s,s-dioxide / tetrahydrothiophenedioxide / sulfolane |
X |
||
tetralin |
X |
||
toluene |
X |
X |
X |
tributylphosphate |
X |
||
triethylamine |
X |
||
n-undecane / undecane |
X |
||
water / h2o |
X |
X |
X |
xylene |
X |
Note
If jobs are run over several nodes, the number of cores used by the XTB tool might be lower than requested via the pal keyword.
3.6.2.2. Keywords¶
Keyword |
Description |
---|---|
|
Activates GFN2-xTB |
|
Activates GFN0-xTB |
|
Activates GFN0-xTB |
|
Activates GFN1-xTB |
|
Activates GFN1-xTB |
|
Activates GFN2-xTB |
|
Activates GFN2-xTB |
|
Activates GFN-FF |
|
Activates GFN-FF |
|
Activates ALPB solvation for a |
|
Activates DDCOSMO solvation for a |
|
Activates CPCMX solvation for a |
Keyword |
Options |
Description |
---|---|---|
|
|
Parses string to the |
|
|
Parses string to the |
|
|
Controls number of processors for the |
|
|
Memory in MB reserved for the |
|
|
Accuracy setting for |
|
|
Activates ALPB solvation in |
|
|
Controls the |
|
|
Activates DDCOSMO solvation in |
|
|
Controls the |
|
|
Controls the dielectric constant, only for ddCOSMO |
|
|
Activates CPCMX solvation in |
|
|
Controls the |
|
|
Controls electronic temperature |
3.6.3. Native GFN-xTB and GFN2-xTB¶
Added in version 6.1.0: Native implementation of GFN1-xTB and GFN2-xTB
ORCA features its own native implementation of GFN-xTB and GFN2-xTB. Unlike the interface to the xtb
program, the native xTB implementation can use the SCF and plotting infrastructure.
The native xTB methods can be invoked via the !Native-GFN-xTB
, !Native-GFN2-xTB
simple keywords:
! Native-GFN-xTB # Synonym: Native-GFN1-xTB, Native-XTB1
! Native-GFN2-xTB # Synonym: Native-XTB2
Warning
For a faster SCF restart based on atomic charges and multipole moments, the native xTB methods write a basename.xtbw
file. If such an .xtbw
file is present, it will be used for the restart instead of the .gbw
file.
3.6.3.1. Custom parameterization¶
The native implementations feature the use of custom semi-empirical parameters by reading a JSON parameter file with the name basename.xtb.json
. This file has the same format as the JSON file in the dxtb program (dxtb documentation), and can be generated by writing the internal parameters. Reading and writing of semi-empirical parameters can be turned on and off via the %method
block:
%method
XTBParamFile "orca.xtb.json" # set parameter filename to orca.xtb.json
WriteXTBParam true # if true: write parameters to orca.xtb.json file
WriteXTBParamDry false # if true: write parameters to orca.xtb.json file and exit
ReadXTBParam false # if true: read parameters from orca.xtb.json file
end
By default the parameter file will be named according to the basename of your calculation (basename.xtb.json
), but other names can be chosen ẁith the XTBParamFile
option in the method block. For a dry run that just generates the parameter file from default parameters set WriteXTBParamDry true
.
Warning
Please note that the native xTB implementation does not allow changes in the basis.
3.6.3.2. Spin-polarized native xTB¶
The energy expressions of the original GFNn-xTB methods are spin-independent. Therefore, calculations are typically performed using RHF/RKS-type wavefunctions, even for open-shell systems. Since spin does not enter the energy expression, electronic states with higher spin multiplicity will always be higher in energy compared to the respective low-spin states. This shortcoming is addressed by the spin-polarized xTB methods. The spin-polarized variants [322], termed spGFN1-xTB and spGFN2-xTB, employ a simple on-site spin-dependent term, which can stabilize high-spin states and allows for screening of potential high-spin configurations using xTB methods.
The native spin-polarized xTB methods can be invoked via the !Native-spGFN1-xTB
, !Native-spGFN2-xTB
simple keywords:
! Native-spGFN1-xTB # Synonym: Native-spGFN-xTB, Native-spXTB1
! Native-spGFN2-xTB # Synonym: Native-spXTB2
Note that the spin-polarization term will only affect high-spin states. The computational cost increases compared to RHF/RKS-type calculations, as the underlying UHF/UKS-type wavefunctions require two Fock matrix diagonalizations instead of one—approximately doubling the cost.
3.6.3.3. SCF with native xTB¶
The native xTB methods, by default, employ special SCF settings that mimic the SCF procedure of the xtb
program and override all other ORCA SCF settings. These special settings take advantage of xTB-specific features, most notably, that the Fock matrix can be constructed from atomic charges and multipole moments alone.
Due to these shortcuts, the special SCF settings are typically faster for xTB methods than the default ORCA SCF. However, the default SCF is more robust and may succeed in converging problematic cases where the xtb
SCF fails.
To use the standard ORCA SCF infrastructure instead, set UseXTBMixer
to false in the %scf
block:
%scf
UseXTBMixer false # if true (default): special xTB SCF is used
end
With the ORCA default SCF infrastructure, challenging electronic structures can often be converged, but the results should be used with caution. In cases where SCF convergence has to be forced, the GFNn-xTB Hamiltonians are often not adequate to describe the system at hand. In such cases, Mulliken charges should be checked for sanity, and it might be helpful to slightly adjust the element-wise pair parameters via the parameter file described above.
Warning
Note that all SCF iterations are direct with xTB methods.
3.6.3.4. FOD with native xTB¶
To better account for static correlation, the xTB methods use finite temperature SCF by default, with an electronic temperature of 300 K. The corresponding fractional occupation number weighted density (FOD) is not printed by default, since 300 K is a too low temperature to use it as a diagnostic tool. The FOD printout can be enabled by setting XTBFOD
to true in the %scf
input block. The electronic temperature can be controlled–just as for other methods–via the SmearTemp
keyword:
%scf
XTBFOD true # if true: Enable FOD printout and add FOD to density container
SmearTemp 5000 # 5000 K is typically used for FOD plots with xTB methods
end
3.6.3.5. Solvation in native xTB¶
The native implementation of xTB includes the ALPB solvation model with the same solvents available as in the xtb
program (see above). It is controlled with the same keywords as the external ALPB via the simple keyword input:
! ALPB(solvent) # use ALPB
In addition, the native implementations can be used with other solvation models available in ORCA, but one should consider that the CPCM and SMD models are quite expensive compared to an xTB calculation, and therefore the faster ALPB solvation model is recommended.
3.6.3.6. Keywords¶
Keyword |
Description |
---|---|
|
Activates native GFN2-xTB |
|
Activates native spGFN2-xTB |
|
Activates native GFN1-xTB |
|
Activates native spGFN1-xTB |
|
Activates native GFN1-xTB |
|
Activates native spGFN1-xTB |
|
Activates native GFN1-xTB |
|
Activates native spGFN1-xTB |
|
Activates native GFN2-xTB |
|
Activates native spGFN2-xTB |
|
Activates native GFN2-xTB |
|
Activates native spGFN2-xTB |
|
Activates ALPB solvation for a |
Keyword |
Options |
Description |
---|---|---|
|
|
Write semi-empirical parameters to xtb.json file |
|
|
Write semi-empirical parameters to xtb.json file and abort |
|
|
Read semi-empirical parameters from xtb.json file |
|
|
Specifies xtb.json filename to “filename.xtb.json” |
Keyword |
Options |
Description |
---|---|---|
|
|
Enable FOD printout |
|
|
Use special SCF settings similar to the ones in |