GrimmeDFTD2¶
- class GrimmeDFTD2(global_scale_factor=None, damping_factor=None, maximum_neighbour_distance=None, element_parameters=None)¶
Class for determining the Grimme DFT-D2 dispersion correction of the energy, forces, and stress.
- Parameters:
global_scale_factor (float) – The global scale factor of the DFT functional. Default:
0.75
damping_factor (float) – The damping factor. Default:
20.0
maximum_neighbour_distance (PhysicalQuantity of type length.) – The max interaction distance to consider. Default:
30.0 * Angstrom
element_parameters (dict) – Parameter for updating R0 and C6 values for specific elements. This should be given as a dictionary mapping
PeriodicTableElement
objects to tuples of R0 and C6 parameters. Default: No elements are updated.
- dampingFactor()¶
- Returns:
The damping factor.
- Return type:
float
- elementParameters()¶
This method gets the element parameters as a dictionary mapping
PeriodicTableElement
objects to tuples of R0 and C6 parameters.- Returns:
The element parameters.
- Return type:
dict
- globalScaleFactor()¶
- Returns:
The global scale factor.
- Return type:
float
- maximumNeighbourDistance()¶
- Returns:
The maximum neighbour distance.
- Return type:
PhysicalQuantity of type length
- nlinfo()¶
- Returns:
The nlinfo.
- Return type:
dict
- setDampingFactor(damping_factor)¶
Set the damping factor.
- Parameters:
damping_factor (float) – Set the damping factor.
- setElementParameters(element_parameters)¶
Set parameters R0 and C6 values for specific elements. This should be given as a dictionary mapping
PeriodicTableElement
objects to tuples of R0 and C6 parameters.- Parameters:
element_parameters (dict) – Set the element parameters.
- setGlobalScaleFactor(global_scale_factor)¶
Set the global scale factor.
- Parameters:
global_scale_factor (float) – Set the global scale factor.
- setMaximumNeighbourDistance(maximum_neighbour_distance)¶
Set maximum neighbour distance.
- Parameters:
maximum_neighbour_distance (PhysicalQuantity of type length) – Set maximum neighbour distance.
- uniqueString()¶
Return a unique string representing the state of the object.
Usage Examples¶
Extend an LCAOCalculator with the DFT-D2 semiempirical dispersion correction by Grimme [1]:
# Grimme DFTD2
# Change/update R0 and C6 for Silicon
correction_extension = GrimmeDFTD2(
global_scale_factor=0.75,
damping_factor=20.0,
maximum_neighbour_distance=30.0*Ang,
element_parameters={
Silicon: [1.716*Ang, 9.23*J*nm**6/mol],
},
)
# Apply correction to calculator
calculator = LCAOCalculator(correction_extension=correction_extension)
Notes¶
Recommended values of the global_scale_factor
(\(s_6\)) for standard GGA functionals available in the ATK-DFT package: 0.75 (PBE), 1.2 (BLYP), 1.05 (BP86). More can be found in the original publication [1].