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.

Table 3.21 List of parameters that can be set in the %ndoparas block.

Parameter

Number

Description

Core Integrals (in eV):

US

0

UP

1

UD

2

UF

3

Basis Set Parameters (double-zeta):

NSH

4

Number of shells for the element

NZS

5

Number of Slater type orbitals for the s shell

ZS1

6

First exponent

ZS2

7

Second exponent

CS1

8

First contraction coefficient

CS2

9

Second contraction coefficient

NZP

10

Number of Slater type orbitals for the p shell

ZP1

11

ZP2

12

CP1

13

CP2

14

NZD

15

Number of Slater type orbitals for the d shell

ZD1

16

ZD2

17

CD1

18

CD2

19

NZF

20

Number of Slater type orbitals for the f shell

ZF1

21

ZF2

22

CF1

23

CF2

24

Resonance integral parameters (in eV):

BS

25

s shell beta

BP

26

p shell beta

BD

27

d shell beta

BF

28

f shell beta

Number of electrons in the ground state:

NEL

29

Total number of electrons (integer)

NS

30

Fractional occupation number of the s shell

NP

31

Fractional occupation number of the p shell

ND

32

Fractional occupation number of the d shell

NF

33

Fractional occupation number of the f shell

One center repulsion (gamma) integrals (in eV):

GSS

34

GSP

35

GSD

36

GSF

37

GPP

38

GPD

39

GPF

40

GDD

41

GDF

42

GFF

43

Slater Condon parameters (in eV):

F2PP

44

F2PD

45

F2DD

46

F4DD

47

G1SP

48

G1PD

49

G2SD

50

G3PD

51

R1SPPD

52

R2SDPP

53

R2SDDD

54

The nuclear repulsion parameters for Dewar type models:

NR1

55

NR2

56

NR3

57

NR4

58

NR5

59

NR6

60

NR7

61

NR8

62

NR9

63

NR10

64

NR11

65

NR12

66

NR13

67

Nuclear attraction/repulsion parameter for MNDO/d:

RHO

68

Spin orbit coupling parameters:

SOCP

69

SOC for the p shell

SOCD

70

SOC for the d shell

SOCF

71

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

Table 3.22 Simple input keywords for the NDO-based methods.

Keyword

Description

AM1

Activates AM1

PM3

Activates PM3

MNDO

Activates MNDO

ZINDO/1

Activates ZINDO/1

ZINDO/2

Activates ZINDO/2

ZINDO/S

Activates ZINDO/S

ZNDDO/1

Activates ZNDDO/1

ZNDDO/2

Activates ZNDDO/2

Table 3.23 %method block input keywords for the NDO-based methods.

Keyword

Options

Description

METHOD

AM1

Activates AM1

PM3

Activates PM3

MNDO

Activates MNDO

CNDO_1

Activates CNDO/1

CNDO_2

Activates CNDO/2

CNDO_S

Activates CNDO/S

INDO_1

Activates INDO/1

INDO_2

Activates INDO/2

INDO_S

Activates INDO/S

ZINDO_1

Activates ZINDO/1

ZINDO_2

Activates ZINDO/2

ZINDO_S

Activates ZINDO/S

ZNDDO_1

Activates ZNDDO/1

ZNDDO_2

Activates ZNDDO/2

CNDO

Activates CNDO, requires a VERSION to be set

INDO

Activates INDO, requires a VERSION to be set

NDDO

Activates NDDO, requires a VERSION to be set

VERSION

CNDO_1

Sets the parameter set for CNDO to CNDO_1

CNDO_2

Sets the parameter set for CNDO to CNDO_2

CNDO_S

Sets the parameter set for CNDO to CNDO_S

INDO_1

Sets the parameter set for INDO to INDO_1

INDO_2

Sets the parameter set for INDO to INDO_2

INDO_S

Sets the parameter set for INDO to INDO_S

ZINDO_1

Sets the parameter set for INDO to ZINDO_1

ZINDO_2

Sets the parameter set for INDO to ZINDO_2

ZINDO_S

Sets the parameter set for INDO to ZINDO_S

ZNDDO_1

Sets the parameter set for NDDO to ZNDDO_1

ZNDDO_2

Sets the parameter set for NDDO to ZNDDO_2

MNDO

Sets the parameter set for NDDO to MNDO

AM1

Sets the parameter set for NDDO to AM1

PM3

Sets the parameter set for NDDO to PM3

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:

  1. the analytical linearized Poisson-Boltzmann (ALPB)[320] solvation model

  2. the domain decomposition COSMO (ddCOSMO)[321]

  3. 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
Table 3.24 List of available solvents for the different implicit solvation methods that can be used with xtb.

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

Table 3.25 Simple input keywords for the extended tight-binding methods.

Keyword

Description

XTB

Activates GFN2-xTB

XTB0

Activates GFN0-xTB

GFN0-XTB

Activates GFN0-xTB

XTB1

Activates GFN1-xTB

GFN1-XTB

Activates GFN1-xTB

XTB2

Activates GFN2-xTB

GFN2-XTB

Activates GFN2-xTB

XTBFF

Activates GFN-FF

GFN-FF

Activates GFN-FF

ALPB(<solvent>)

Activates ALPB solvation for a <solvent>, e.g. ALPB(Water)

DDCOSMO(<solvent>)

Activates DDCOSMO solvation for a <solvent>, e.g. DDCOSMO(Water)

CPCMX(<solvent>)

Activates CPCMX solvation for a <solvent>, e.g. CPCMX(Water)

Table 3.26 %xtb block input keywords for the extended tight-binding methods.

Keyword

Options

Description

XTBINPUTSTRING

"<string>"

Parses string to the otool_xtb call

XTBINPUTSTRING2

"<string>"

Parses string to the otool_xtb call

NPROCS

<integer>

Controls number of processors for the otool_xtb run, default is ORCA’s PAL setting

MAXCORE

<integer>

Memory in MB reserved for the xtb run, default is ORCA’s maxcore setting

ACCURACY

<real>

Accuracy setting for --acc in otool_xtb, default is ORCA’s accuracy x 1.e6

DOALPB

true/false

Activates ALPB solvation in xtb run

ALPBSOLVENT

"<solvent>"

Controls the <solvent> used for ALPB

DODDCOSMO

true/false

Activates DDCOSMO solvation in xtb run

DDCOSMOSOLVENT

"<solvent>"

Controls the <solvent> used for DDCOSMO

EPSILON

<real>

Controls the dielectric constant, only for ddCOSMO

DOCPCMX

true/false

Activates CPCMX solvation in xtb run

CPCMXSOLVENT

"<solvent>"

Controls the <solvent> used in CPCMX

ETEMP

<real>

Controls electronic temperature --etemp in otool_xtb

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

Table 3.27 Simple input keywords for the native extended tight-binding methods.

Keyword

Description

NATIVE-XTB

Activates native GFN2-xTB

NATIVE-spXTB

Activates native spGFN2-xTB

NATIVE-XTB1

Activates native GFN1-xTB

NATIVE-spXTB1

Activates native spGFN1-xTB

NATIVE-GFN-XTB

Activates native GFN1-xTB

NATIVE-spGFN-XTB

Activates native spGFN1-xTB

NATIVE-GFN1-XTB

Activates native GFN1-xTB

NATIVE-spGFN1-XTB

Activates native spGFN1-xTB

NATIVE-XTB2

Activates native GFN2-xTB

NATIVE-spXTB2

Activates native spGFN2-xTB

NATIVE-GFN2-XTB

Activates native GFN2-xTB

NATIVE-spGFN2-XTB

Activates native spGFN2-xTB

ALPB(<solvent>)

Activates ALPB solvation for a <solvent>, e.g. ALPB(Water)

Table 3.28 %method block input keywords for the native extended tight-binding methods.

Keyword

Options

Description

WRITEXTBPARAM

true/false

Write semi-empirical parameters to xtb.json file

WRITEXTBPARAMDRY

true/false

Write semi-empirical parameters to xtb.json file and abort

READXTBPARAM

true/false

Read semi-empirical parameters from xtb.json file

XTBPARAMFILE

"filename.xtb.json"

Specifies xtb.json filename to “filename.xtb.json”

Table 3.29 %scf block input keywords for the native extended tight-binding methods.

Keyword

Options

Description

XTBFOD

true/false

Enable FOD printout

UseXTBMixer

true/false

Use special SCF settings similar to the ones in xtb