***** DFTB+ ***** .. py:class:: DFTBplus This interface supports energy and gradient evaluations with the `DFTB+ `_ semi-empirical electronic structure package (v20 or later). A DFTB+ :ref:`Theory ` object can be specified as follows:: my_frag = Fragment(...) my_theory = DFTBplus(frag=my_frag, ...) which would then be called as ``theory=my_theory`` in subsequent tasks (see :ref:`Tasks `). Note that as it is a semi-empirical code, the DFTB+ interface will ignore some keyword options that are common to other QM interfaces, such as ``basis``, ``ecp``, ``functional``, etc. General options =============== .. py:attribute:: method High-level method flag that will be used to set default parameters for the calculation. The value of ``skf_path`` should be set consistently. Allowed values: * ``'mio'``: (default) Slater-Koster parameters for "bio or organic molecules". Older than the newer 3ob set. * ``'3ob'``: Slater-Koster parameters for third-order "bio and organic molecules". Intended to replace mio. * ``'matsci'`` : Slater-Koster parameters for "various problems in materials science". * ``'ob2'`` : Slater-Koster parameters for a "Long range corrected parameterization for bio and organic molecules" * ``'pbc'`` : Slater-Koster parameters for "solids and surfaces". If it is unambiguous, the method option will be used to set default values for ``max_angular_momentum``, ``hubbard_derivs``, ``spin_constants``, ``third_order`` and ``dispersion_param`` (although a dispersion correction will not be applied unless requested). Additional parameters may also be set on a case by case basis if the Slater-Koster parameter set instructions require them. Any options that have been set explicitly will over-write these defaults if they conflict. .. py:attribute:: scc (default: ``True``) Use the Self-Consistent-Charge (SCC-DFTB) method. .. py:attribute:: skf_path (default: ``''``) Path to directory containing Slater-Koster files (``*.skf``). These files can be downloaded from `https://dftb.org/parameters/download/ `_. SCF options =========== .. py:attribute:: hubbard_derivs (default: ``{}``) Hubbard derivatives for calculation of the 3rd order correction (if requested). These should be given as a dictionary, where a number is given for each elemental symbol in the calculation. The appropriate values depend on the Slater-Koster files employed, and default values will be set by the ``method`` option. For example, {'C':-0.1492}. .. py:attribute:: hydrogen_correction Hydrogen correction to apply (if any). Allowed values: * ``''``: (default) No Hydrogen correction. * ``'damping'``: Damping method is applied to short-range interactions between Hydrogen-like atoms and other atoms. .. py:attribute:: hydrogen_damping (default: 0.0) Damping factor applied when a damping Hydrogen correction is employed. .. py:attribute:: max_angular_momentum (default: ``{}``) Dictionary containing the maximum angular momentum for each element in the calculation. Default values will be set by the ``method`` option. For example, {'H':'s', 'C':'p'}. .. py:attribute:: maxiter (default: ``100``) Maximum SCC iterations allowed if using SCC-DFTB. .. py:attribute:: smear (default: ``True``) Whether to apply smearing to the SCC occupation. DFTB+ refers to smearing as 'filling'. .. py:attribute:: smear_method Smearing method to be applied when smearing is used. Allowed values: * ``'Fermi'``: (default) Apply a Fermi-Dirac distribution to the single electron states. * ``'MethfesselPaxton'``: Apply a Methfessel-Paxton distribution to the single electron states, which can be an improvement for systems that require a high electronic temperature. .. py:attribute:: smear_mp_order (default: ``2``) Order of the Methessel-Paxton smearing, if it is being employed. .. py:attribute:: smear_temperature (default: ``'0.0'``) Electronic temperature for smearing, given in Kelvin. .. py:attribite:: spin_constants (default: ``{}``) Additional parameters required for spin-polarised calculations. These should be given as a dictionary, where a string of shell resolved numbers is given for each elemental symbol in the calculation. The appropriate values depend on the Slater-Koster files employed, and default values will be set by the ``method`` option. For example, {'C':'-0.028 -0.024 -0.024 -0.022'}. .. py:attribute:: third_order (defualt: ``None``) Whether to perform 3rd order DFTB. Default value depends on the ``method`` option. Corresponds to the ThirdOrderFull option in DFTB+. Dispersion options ================== .. py:attribute:: dispersion Dispersion correction to apply (if any). Allowed values: * ``''`` : (default) No dispersion correction applied. * ``'LennardJones'`` : Dispersion is included via a Lennard-Jones potential between each pair of atoms. Parmeters are automatically taken from the Universal Force Field (UFF). * ``'D3'`` : The Grimme D3 correction. Parameters are defaulted from the ``method`` keyword, and can be modified using ``dispersion_param``. * ``'MBD'`` : Applies the Tkatchenko many-body-dispersion model. .. py:attribute:: dispersion_param (default: ``{}``) A dictonary used to set parameters for dispersion corrections. Allowed keys: * ``'a1'``, ``'a2'``, ``'s6'``, ``'s8'`` : Parameters for the D3 dispersion correction.