Name

NumericalAccuracyParameters — Class for representing the parameters for setting the numerical accuracy of a calculation.

Synopsis

Namespace: NanoLanguage
NumericalAccuracyParameters(
grid_mesh_cutoff,
k_point_sampling,
radial_step_size,
density_cutoff,
interaction_max_range,
number_of_reciprocal_points,
reciprocal_energy_cutoff,
electron_temperature
)

Description

Constructor for the NumericalAccuracyParameters object.

NumericalAccuracyParameters Arguments

grid_mesh_cutoff

The mesh cutoff to be used to determine the grid sampling. The grid_mesh_cutoff must be an energy quantity.

Type: PhysicalQuantity of type energy > 0.0*Hartree

Default: HuckelCalculator=10*Hartree, LCAOCalculator=75*Hartree, SocorroCalculator=80*Rydberg
k_point_sampling

The k-point sampling in reciprocal space given by the Monkhorst-Park indices.

Type: list(int > 0, int > 0, int > 0) | tuple(int > 0, int > 0, int > 0)

Default: (1,1,1)
radial_step_size

The maximum sampling step size in all the radial grids.

Type: PhysicalQuantity of type length > 0.0*Angstrom

Default: 0.01*Angstrom
density_cutoff

The density cutoff determines the limit where a density is considered to to be zero. Smaller values therefore leads to longer ranges and less sparsity of the models.

Type: float > 0.0

Default: 1.0e-6
interaction_max_range

The maximum allowed interaction distance between two orbitals.

Type: PhysicalQuantity of type length > 0.0*Angstrom

Default: 10*Angstrom
number_of_reciprocal_points

The number of reciprocal points used for evaluating two-center integrals.

Type: int > 1

Default: 1024
reciprocal_energy_cutoff

The energy cutoff in reciprocal space used for evaluating of the two-center integrals.

Type: PhysicalQuantity of type energy > 0.0*Hartree

Default: 1250*Hartree
electron_temperature

The electron temperature used in determining the shape of the Fermi function.

Type: PhysicalQuantity of type temperature >= 0*Kelvin

Default: 300*Kelvin

NumericalAccuracyParameters Methods

A NumericalAccuracyParameters object provides the following methods:

  • This object supports cloning. See the section called “Cloning of ATK Python objects”.

  • densityCutoff(): Return the density cutoff.

  • electronTemperature(): Return the electron temperature.

  • gridMeshCutoff(): Return the grid mesh cutoff distance.

  • interactionMaxRange(): Return the interaction max range.

  • kPointSampling(): Return the k-point sampling.

  • numberOfReciprocalPoints(): Return the number of reciprocal points used in two-center integration.

  • radialStepSize(): Return the radial grid sampling.

  • reciprocalEnergyCutoff(): Return the reciprocal cutoff energy.

Usage Examples

Define the k-point sampling and real space grid mesh-cutoff.

numerical_accuracy_parameters = NumericalAccuracyParameters(
    grid_mesh_cutoff=12.0*Hartree,
    k_point_sampling=(2, 1, 1),
    electron_temperature = 200*Kelvin
    )

calculator = HuckelCalculator(
    iteration_control_parameters=iteration_control_parameters,
    )

Specify the electron temperature in units of eV instead of Kelvin

numerical_accuracy_parameters = NumericalAccuracyParameters(
    electron_temperature = 0.02 * electronVolt/Boltzmann_constant
    )

Notes

  • The distance between the points in the real space grid, \Delta x, is related to the grid_mesh_cutoff, E^\mathrm{grid}, through

    \displaystyle

        \Delta x = \frac{\pi \hbar}{\sqrt{2 m E^{grid}}}.

    In atomic units m = \hbar = 1, thus for energies in Hartree and distances in Bohr, \Delta x = \pi/\sqrt{2 E^\mathrm{grid}}.

  • When setting interaction_max_range some matrix elements are set to zero. For very long ranged basis sets this can make the overlap matrix ill defined at certain k-points (i.e. it is not positive definite), in such cases the matrix diagonalization routine will give a segmentation fault. The cure is to change the interaction_max_range, i.e. either make it very large to include all long range elements, or make it small so no long range elements are included.