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 ofGGA.BLYP
,SGGA.BLYP
,NCGGA.BLYP
,SOGGA.BLYP
,GGA.PBE
,SGGA.PBE
,NCGGA.PBE
,SOGGA.PBE
,GGA.RPBE
,SGGA.RPBE
,NCGGA.RPBE
,SOGGA.RPBE
,HybridGGA.HSE06
,HybridSGGA.HSE06
,HybridNCGGA.HSE06
,HybridSOGGA.HSE06
,HybridGGA.PBE0
,HybridSGGA.PBE0
,HybridNCGGA.PBE0
,HybridSOGGA.PBE0
,HybridGGA.B3LYP
,HybridSGGA.B3LYP
,HybridNCGGA.B3LYP
orHybridSOGGA.B3LYP
. 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:
- 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.
- uniqueString()¶
Return a unique string representing the state of the object.
Usage Examples¶
Extend an LCAOCalculator with the DFT-D3 semiempirical dispersion correction by Grimme an co-workers [1]:
# 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 29. 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.
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 |