Name

TwoProbeMethod The TwoProbeMethod class is used to represent parameters that control the combined density-functional electronic structure calculation and the non-equilibrium Green's function calculation of two-probe systems.

Synopsis

Namespace: ATK.TwoProbe
Object TwoProbeMethod(
electrode_parameters,
basis_set_parameters,
exchange_correlation_type,
electron_density_parameters,
two_center_integral_parameters,
iteration_mixing_parameters,
iteration_control_parameters,
energy_contour_integral_parameters,
electrode_voltages,
algorithm_parameters
)

Description

The TwoProbeMethod class is used to represent parameters that control the combined density-functional electronic structure calculation and the non-equilibrium Green's function calculation of two-probe systems. As such, it serves as the the two-probe equivalent of the KohnShamMethod class. The returned object is used as an input parameter to executeSelfConsistentCalculation() which performs the actual self-consistent calculation. Alternatively, the apply() of the TwoProbeMethod itself (see below) can be used.

The method is in principle independent of the atomic geometry, which is defined by a TwoProbeConfiguration class. There is however some connection via the electrode parameters (see below).

List of arguments

electrode_parameters

A tuple containing two objects of type ElectrodeParameters.

Default: This parameter has no default due to the requirement of specifying the k-point sampling in the electrodes.

basis_set_parameters

A dictionary with basis set parameters.

Default: Parameters corresponding to basisSetParameters() supplied with no arguments.

exchange_correlation_type

The type of exchange correlation functionals to be used.

Default: LDA.PZ

electron_density_parameters

A dictionary with electron density parameters, such as mesh cut-off and initial spin.

Default: Parameters corresponding to electronDensityParameters() supplied with no arguments.

two_center_integral_parameters

Parameters for the two-center integrals.

Default: Parameters corresponding to twoCenterIntegralParameters() supplied with no arguments.

iteration_mixing_parameters

Parameters used to control the mixing in the self-consistent field calculation.

Default: Parameters corresponding to iterationMixingParameters() supplied with no arguments.

iteration_control_parameters

Parameters used to determine the convergence criteria of the self-consistent field calculation.

Default: Parameters corresponding to iterationControlParameters() supplied with no arguments.

energy_contour_integral_parameters

Parameters that control the contour integration in the complex energy plane.

Default: Parameters corresponding to energyContourIntegralParameters() supplied with no arguments.

electrode_voltages

The voltages applies to the two electrodes. Should be given as a list, e.g. (0.0,1.0)*Volt.

Default: (0.0,0.0)*Volt

algorithm_parameters

Parameters that control the setting of electrode constraint in the two-probe calculation.

Default: Parameters corresponding to twoProbeAlgorithmParameters() supplied with no arguments.

Usage examples

from ATK.TwoProbe import *

electrode_params = ...
basis_set = ...
initial_density = ...
twoprobe_method = TwoProbeMethod(
    electrode_parameters=(electrode_parms, electrode_parms),
    basis_set_parameters=basis_set,
    electron_density_parameters=initial_density,
    electrode_voltages=(0.0,0.8)*Volt
    )
configuration = TwoProbeConfiguration(...)    
scf = executeSelfConsistentCalculation(configuration,twoprobe_method)

Notes

The order in which the electrode voltages are specified should correspond to the order in which the electrodes are listed in the corresponding TwoProbeConfiguration, when it is combined with the TwoProbeMethod in the function executeSelfConsistentCalculation().

The basis_set_parameters may be specified in two different ways:

  • A single dictionary, as returned by basisSetParameters().

  • A list of such dictionaries, in order to define individual basis set parameters for different elements.

For more information, see basisSetParameters().

As for the KohnShamMethod (see this page for more details), it is possible to perform a two-probe self-consistent field calculation by using the apply() method:

from ATK.TwoProbe import *
...
dft_method = TwoProbeMethod(...)
scf = dft_method.apply(atomic_configuration)

To apply a gate voltage to the two-probe system, use GatedTwoProbeMethod.