Name

TransmissionEigenvalues — Class for representing the transmission eigenvalues for a given configuration and calculator.

Synopsis

Namespace: NanoLanguage
TransmissionEigenvalues(
configuration,
energy,
k_point,
energy_zero_parameter
)

Description

Constructor for the TransmissionEigenvalues object.

TransmissionEigenvalues Arguments

configuration

The two-probe configuration with attached calculator for which the transmission eigenvalues should be calculated.

Type: A DeviceConfiguration.

Default: None
energy

The energy for which the transmission eigenvalues should be calculated.

Type: A value of the type PhysicalQuantity of with energy unit.

Default: 0.0*eV
k_point

The 2-dimensional k-point for which the transmission eigenvalues should be calculated (x,y).

Type: A single list of floats with shape (1,2), i.e. [0.8, 0.2], in fractional coordinates.

Default: [0.0, 0.0]
energy_zero_parameter

Specifies the choice for the energy zero.

Type: AverageFermiLevel | AbsoluteEnergy | FermiLevel

Default: AverageFermiLevel

TransmissionEigenvalues Methods

A TransmissionEigenvalues object provides the following methods:

  • electrodeFermiLevels(): Return the electrodes Fermi levels in absolute energies.

  • energy(): Return the energy used in this transmission eigenvalue calculation.

  • energyZero(): Return the energy zero used for the energy scale in this transmission eigenvalue calculation.

  • energyZeroParameter(): Return the energy zero parameter used for setting the energy scale in this transmission eigenvalue calculation.

  • evaluate(spin): Obtain the calculated transmission eigenvalues.

    spin

    The spin component to evaluate.

    Type: Spin.Up | Spin.Down

    Default: Spin.Up
  • kPoint(): Return the k-point used in this transmission eigenvalue calculation.

  • nlprint(stream): Print a string containing an ASCII table of transmission eigenvalues.

    stream

    The stream the transmission eigenvalues should be written to.

    Type: A stream that supports strings being written to using 'write'.

    Default: sys.stdout

Usage Examples

Calculate the transmission eigenvalues for a device configuration and print out the result

eigenvalues = TransmissionEigenvalues(device_configuration,0.0*eV )
nlprint(eigenvalues)

Notes

The TransmissionEigenvalues is an analysis option which finds the eigenvalues of the transmission matrix. The transmission matrix, for a given energy E and k-point \mathbf{k}, is given by

\displaystyle

  T_{nm}(E,\mathbf{k}) = \sum_\ell t_{n\ell}(E,\mathbf{k})  t^\dagger_{\ell m}(E,\mathbf{k}),

where t_{n\ell}(\mathbf{k}) is the transmission amplitude from Bloch state \psi_n(\mathbf{k}) in the left electrode to Bloch state \psi_\ell(\mathbf{k}) in the right electrode.

The transmission coefficient is given by the trace of the transmission matrix

\displaystyle

  T(E,\mathbf{k}) = \sum_n T_{nn}(E,\mathbf{k}).

Below we will suppress the indices E and \mathbf{k} in most cases, but keep in mind that all quantities depend on these quantum numbers parametrically.

The transmission eigenvalues \lambda_\alpha are the eigenvalues of the transmission matrix T_{nm}.

It follows from the invariance of the trace of a matrix that the transmission eigenvalues sum up to the transmission coefficient,

\displaystyle

  T = \sum_\alpha \lambda_\alpha .

The transmission eigenvalues are in ATK in the range [0,1] for each spin channel.

See also, TransmissionEigenstate.