Interface dftb

Interface to the DFTB+ program implementing self consistenct charges density functional tight binding (SCC-DFTB) methods.[1] The program requires also parameters available separately at www.dftb.org. Open source software.

Changelog

Feb 2, 2016: two important changes were made in the input. Firstly, the built-in DFTB-D dispersion is now switched off by default. Warning is printed when the keyword is not set for a transition period. Secondly, the dftb_hubbard_derivs behaves differently and the default setup was changed to the values used in DFTB3.

Corrections for non-covalent interactions

DFTB-D

Empirical dispersion coorrection was developed for SCC-DFTB with the MIO parameters set.[2] It is available in DFTB+ and it can be activated by the dftb_dispersion keyword.

DFTB-D3

Since DFTB+ version 17.1, the D3 correction is available in the program. It is activated using the keyword dftb_d3. The damping is controlled by several keywords borrowed from the dispersion3 interface.

DFTB3 and DFTB3-D3

The acronym DFTB3 is used for a third-order SCC-DFTB with the 3OB parameter set and gamma function damping exponent of 4.0.[3] The folowing input reproduces the DFTB3 setup in cuby:

method: scc-dftb3
dftb_slko_set: 3ob
dftb_xh_damping: yes
dftb_xh_damping_exp: 4.0

The D3 dispersion was parameterized for DFTB3 by Grimme[4], in Cuby it can be applied using the following setup:

modifiers: dispersion3
modifier_dispersion3:
  d3_damping: bj
  d3_a1: 0.746
  d3_a2: 4.191
  d3_s8: 3.209

In the latest release of DFTB+, the built-in D3 dispersion correction can be used; the results should be identical. The input is slightly different, the dispersion setup is passed directly to the dftb interface. The example abowe would change into:

method: scc-dftb3
dftb_slko_set: 3ob
dftb_xh_damping: yes
dftb_xh_damping_exp: 4.0
dftb_d3: yes
d3_damping: bj
d3_a1: 0.746
d3_a2: 4.191
d3_s8: 3.209

DFTB3-D3H4

The most accurate description of non-covalent interactions in DFTB can be obtained with empirical corrections for both dispersion and hydrogen bonding. The latest version of the corrections[5] was recently reparameterized for DFTB3, making the DFTB3-D3H4 method.[6] Here, a different parameterization of the D3 dispersion is used which contains also a repulsive correction between hydrogens. The DFTB3-D3H4 calculation can be called using the following input:

method: scc-dftb3
dftb_slko_set: 3ob-3-1
modifiers: dispersion3, h_bonds4
# Dispersion3 setup
modifier_dispersion3:
  d3_damping: :zero
  d3_sr6: 1.25
  d3_alpha6: 29.61
  d3_s8: 0.49
  # Hydrogen-hydrogen repulsion:
  d3_hh_fix: yes
  d3_hh_para:
     :k: 0.30
     :e: 14.31
     :r0: 2.35
# H4 correction setup, including the additional
# scaling for charged systems
modifier_h_bonds4:
  h_bonds4_parameters:
    oh_o: 1.28
    oh_n: 3.84
    nh_o: 0.88
    nh_n: 2.83
    multiplier_wh_o: 1.00
    multiplier_coo: 1.75
    multiplier_nh4: 4.01
  h_bonds4_extra_scaling:
    "@N&:hip": 3.44
    "@N&:gua": 2.68

References

  1. Elstner, M.; Porezag, D.; Jungnickel, G.; Elsner, J.; Haugk, M.; Frauenheim, T.; Suhai, S.; Seifert, G. Phys. Rev. B 1998, 58 (11), 7260–7268.
  2. Elstner, M.; Hobza, P.; Frauenheim, T.; Suhai, S.; Kaxiras, E. J. Chem. Phys. 2001, 114 (12), 5149.
  3. Gaus, M.; Cui, Q.; Elstner, M. J. Chem. Theory Comput. 2011, 7 (4), 931–948.
  4. Grimme, S. Angew. Chem. Int. Ed. 2013, 52 (24), 6306–6312. (Parameters provided in Supplementary information)
  5. Řezáč, J.; Hobza, P. J. Chem. Theory Comput. 2012, 8, 141–151.
  6. Miriyala, V. M.; Řezáč, J. J. Comput. Chem. 2017, 38 (10), 688–697.

Methods and capabilities

The interface implements following methods (specified by keyword 'method'):

The interface implements following atomic charge types (keyword 'atomic_charges'):

Keywords used

Keywords specific for this interface:

Other keywords used by this interface:

Examples

The following examples, along with all other files needed to run them, can be found in the directory cuby4/interfaces/dftb/examples

#===============================================================================
# DFTB example 1: energy calculation, configuration
#===============================================================================

# SCC-DFTB calculation
job: energy
interface: dftb
method: scc-dftb

# Water molecule, geometry taken from Cuby's internal database
geometry: A24:water
charge: 0

#-------------------------------------------------------------------------------
# Interface configuration
#-------------------------------------------------------------------------------
# DFTB+ executable
dftbplus_exe: /home/rezac/bin/DFTB+/dftb+1.2.1/dftb+
# Path to directory containing directories with sets of Slater-Koster files
dftb_slko_basepath: /home/rezac/bin/DFTB+/slko
# Default set of Slater-Koster files (directory name)
dftb_slko_set: mio-0-1

# In the following examples, it is assumed that this interface configuration
# is performed in the config file
#===============================================================================
# DFTB example 2: Third-order SCC-DFTB
#===============================================================================

# Third-order SCC-DFTB (also called DFTB3) calculation
job: energy
interface: dftb
method: scc-dftb3

# Parameter set for DFTB3 - the 3OB set. The following keyword selects the
# parameter set, the slater-koster files should be located in a directory
# "3ob" under the path specified by the keyword dftb_slko_basepath (assumed)
# to be set in the config file.
dftb_slko_set: 3ob

# Water molecule, geometry taken from Cuby's internal database
geometry: A24:water
charge: 0
#===============================================================================
# DFTB example 3: Use of external point charges
#===============================================================================

# Geometry optimization of a water molecule in external electric field created
# by two point charges along the x axis. In the optimization, the molecule
# aligns with the field.

job: optimize
opt_quality: 0.1

interface: dftb
method: scc-dftb

geometry: |
  O    0.247000000   0.390000000   0.000000000
  H   -0.075000000   1.292000000   0.000000000
  H    1.207000000   0.490000000   0.000000000

remove_translation: no
remove_rotation: no
# Allow rotation, by default both translational and rotational components of
# the gradient are removed.

point_charges: |
  10.0  0.0 0.0   1.0
  -10.0 0.0 0.0  -1.0
# A list of point charges, four numbers (x, y, z, charge) per line.