xtb

Method

GFN1-xTB

For large systems (> 1000 atoms), DFT or other high-level wave functional theory methods are not feasible, while the widely used force fields are not accurate enough.

GFN2-xTB

Test case

Python install

python install .

xtb-python has been separated from xtb since version 6.3.0. The installation of xtb-python relies on a shared python library (i.e. libpython3.6m.so). It causes some troubles for platforms where a shared python library is not available like Grendel-S (only having libpython3.6m.a). There are two options to solve this problem:

  1. install a shared python library or compile a static library with the flag -fPIC.
    • it might be not a easy job to compile python from its source code
  2. use the python in anaconda
    • easier to install

PBC

xtb v6.2.3 has a built-in python module which has PBC support for GFN0. This is simple script to try the PBC features of xtb.

from ase.build import fcc111
from ase.optimize import BFGS
from xtb.calculators import GFN0

slab = fcc111('Pt', (2, 2, 4), vacuum=10, orthogonal=True)

slab.set_calculator(GFN0())

opt = BFGS(slab, logfile='log.txt', trajectory='opt.traj')
opt.run(fmax=0.1)

If you set slab.set_pbc([0, 0, 0]), the system will be treated as an isolated system. If one of the three dimensions is periodic, the xtb python will regard the system as periodic. The periodic GFN0 seems unstable when the size of the system is large. For example, slab = fcc111('Pt', (2, 2, 4), vacuum=10, orthogonal=True) will lead to Segmentation fault

          ...................................................
          :                      SETUP                      :
          :.................................................:
          :  # basis functions                1440          :
          :  # atomic orbitals                1296          :
          :  # shells                          432          :
          :  # electrons                      1440          :
          :  PBC by CCM                       true          :
          :  electronic temp.          300.0000000     K    :
          :  accuracy                    1.0000000          :
          :  -> integral cutoff          0.2500000E+02      :
          :  -> integral neglect         0.1000000E-07      :
          ...................................................
/var/spool/slurmd/job5343886/slurm_script: line 36: 34902 Segmentation fault      (core dumped) $command