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].