The function calculateTransmissionEigenvalues() calculates the transmission eigenvalues
for a given energy
and a given set of quantum numbers
, where
is a
point in the 2D Brillouin zone perpendicular to the transport direction and
denotes the spin.
indicates the number of eigenchannels which corresponds to non-vanishing
eigenvalues.
The transmission eigenvalues
are
calculated as the eigenvalues of the Hermitian matrix
,
where
is the transmission matrix.
List of arguments
An object returned from a previously performed self-consistent calculation for a TwoProbeConfiguration.
Default:
None
The energy
for which the transmission eigenvalues
are to be calculated.
Default:
None
Sequence of quantum numbers
for which
the transmission eigenvalues are to be calculated (see below).
Default:
None
Criteria to choose the moving mode in the calculation.
Default: 1.0E-13
Criteria to choose the propagating mode in the calculation.
Default: 0.90
Scattering states infinitesimal used as the imaginary part of energy.
Default: 1.0E-5 * Units.eV
from ATK.TwoProbe import * ... k_point_list = [ (0.0,0.0), (0.0,0.3), (0.5,0.5)] self_consistent_calculation = executeSelfConsistentCalculation( atomic_configuration, twoprobe_method ) transmission_eigenvalues = calculateTransmissionEigenvalues( self_consistent_calculation, energy = 0*electronVolt, quantum_numbers = (k_point_list, Spin.Up) )
The energy is measured relative to the average Fermi level of the two electrodes. These Fermi levels are, in turn, aligned with the applied bias on each electrode. Observe that, if the same bias is applied to both electrodes, the energy zero-level (and of course the entire transmission spectrum) is unchanged.
The quantum numbers depend on whether the system is spin-polarized or not and should be specified according to the rules:
([list_of_k_points], spin) for spin-polarized systems.
[list_of_k_points] for unpolarized systems.
where:
list_of_k_points is a list of two-dimensional,
dimensionless coordinates representing k-points in the 2D Brillouin zone
of the unit cell transverse to the transport direction.
The coordinates must be given in units of the reciprocal lattice vectors.
spin is the spin
. The parameter spin could
also be a list of spins.
The dimensionality of the returned array corresponds to the number of elements
in the quantum_numbers list.
The returned eigenvalues are ordered decreasingly according to their value (i.e.
).
We finally emphasize that the transmission eigenchannels module depends on a new method for calculating the scattering states of the two-probe system. The method can sometimes be sensitive to parameters such as the energy infinitesimal. For this reason, to check correct performance of the algorithm at a particular quantum number, you can verify that the total sum of the transmission eigenvalues is equal to the total sum of the transmission coefficients calculated using the default method in the ATK.TwoProbe module.