GrimmeDFTD3

class GrimmeDFTD3(global_scale_factor_6=None, damping_factor_6=None, global_scale_factor_8=None, damping_factor_8=None, maximum_neighbour_distance=None, include_three_body_term=None, exchange_correlation=None)

Class for determining the Grimme DFT-D3 dispersion correction of the energy, forces, and stress.

Parameters:
  • global_scale_factor_6 (float) – The global scale factor for the 6th order pole.
    Default: Selected based on the exchange-correlation functional.
  • damping_factor_6 (float) – The damping factor for the 6th order pole.
    Default: Selected based on the exchange-correlation functional.
  • global_scale_factor_8 (float) – The global scale factor for the 8th order pole.
    Default: Selected based on the exchange-correlation functional.
  • damping_factor_8 (float) – The damping factor for the 8th order pole.
    Default: Selected based on the exchange-correlation functional.
  • maximum_neighbour_distance (PhysicalQuantity of type length) – The maximum interaction distance to consider.
    Default: 30.0 * Angstrom
  • include_three_body_term (bool) – If True, the three-body term is included.
    Default: False
  • exchange_correlation (ExchangeCorrelation) – The exchange-correlation functional for selecting the Grimme DFT-D3 parameters. Should be one of GGA.BLYP, SGGA.BLYP, NCGGA.BLYP, SOGGA.BLYP, GGA.PBE, SGGA.PBE, NCGGA.PBE, SOGGA.PBE, GGA.RPBE, SGGA.RPBE, NCGGA.RPBE, or SOGGA.RPBE.
    Default: GGA.PBE
dampingFactor6()
Returns:The damping factor for the 6th order pole.
Return type:float
dampingFactor8()
Returns:The damping factor for the 8th order pole.
Return type:float
exchangeCorrelation()
Returns:The exchange-correlation functional for selecting default Grimme DFT-D3 parameters.
Return type:ExchangeCorrelation
globalScaleFactor6()
Returns:The global scale factor for the 6th order pole.
Return type:float
globalScaleFactor8()
Returns:The global scale factor for the 8th order pole.
Return type:float
includeThreeBodyTerm()
Returns:If True, the three-body term is included.
Return type:bool
maximumNeighbourDistance()
Returns:The neighbour cut off distance.
Return type:PhysicalQuantity of type length
setDampingFactor6(damping_factor)

Set the damping factor for the 6th order pole.

Parameters:damping_factor (float) – The damping factor for the 6th order pole.
setDampingFactor8(damping_factor)

Set the damping factor for the 8th order pole.

Parameters:damping_factor (float) – The damping factor for the 8th order pole.
setMaximumNeighbourDistance(maximum_neighbour_distance)

Set the neighbour cut off distance.

Parameters:maximum_neighbour_distance (PhysicalQuantity of type length) – The neighbour cut off distance.

Usage Examples

Extend an LCAOCalculator with the DFT-D3 semiempirical dispersion correction by Grimme an co-workers [GAEK10]:

# Grimme DFT-D3
correction_extension = GrimmeDFTD3(exchange_correlation=GGA.RPBE)

# Apply correction to calculator
calculator = LCAOCalculator(
    exchange_correlation=GGA.RPBE,
    correction_extension=correction_extension,
    )

# Grimme DFT-D3. Note that we disable the three-body
# term since it's computationally very expensive.
correction_extension = GrimmeDFTD3(
    include_three_body_term=False,
    exchange_correlation=GGA.RPBE,
    )

# Apply correction to calculator
calculator = LCAOCalculator(
    exchange_correlation=GGA.RPBE,
    correction_extension=correction_extension,
    )

Notes

The default scaling and damping parameters used by the GrimmeDFTD3 object are those optimized for the exchange-correlation functional given to the object, see Table 34. For PBE, BLYP, and rPBE, the appropriate parameters are automatically set. For other functionals, the scaling and damping parameters should be manually specified.

Attention

The DFT-D3 method contains both two-body and three-body terms. The three-body term can be prohibitively expensive to compute for bulk systems, although it typically contributes no more than 5–10% of the total dispersion energy. It is therefore disabled by default. Note also that the calculation of forces and stress can be computationally very expensive with the DFT-D3 method, even if the three-body term has been disabled. Therefore, for such calculations it is recommended to use the GrimmeDFTD2 method instead.

Table 34 Scaling parameters \(s_6\) and \(s_8\), and damping parameters \(d_6\) and \(d_8\), for the DFT-D3 method.
Functional scaling_parameter_6 damping_parameter_6 scaling_parameter_8 damping_parameter_8
PBE 1.0 1.217 0.7220 1.0
BLYP 1.0 1.094 1.6820 1.0
revPBE 1.0 0.923 1.0100 1.0
PBEsol 1.0 1.345 0.6120 1.0
rPBE 1.0 0.872 0.5140 1.0
B3LYP 1.0 1.261 1.7030 1.0
PBE0 1.0 1.287 0.9280 1.0

[GAEK10]S. Grimme, J. Antony, S. Ehrlich, and H. Krieg. A consistent and accurate ab initio parametrization of density functional dispersion correction (DFT-D) for the 94 elements H-Pu. J. Chem. Phys., 2010. doi:10.1063/1.3382344.