TransmissionEigenvalues

class TransmissionEigenvalues(configuration=None, energy=None, k_point=None, energy_zero_parameter=None)

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

Parameters:
  • configuration (DeviceConfiguration) – The device configuration with attached calculator for which the transmission eigenvalues should be calculated.

  • energy (PhysicalQuantity of type energy) – The energy for which the transmission eigenvalues should be calculated.
    Default: 0.0*eV

  • k_point (list of two floats.) – The 2-dimensional k-point in fractional coordinates for which the transmission eigenvalues should be calculated (x,y), e.g. [0.8, 0.2].
    Default: [0.0, 0.0]

  • energy_zero_parameter (AverageFermiLevel | AbsoluteEnergy.) – Specifies the choice for the energy zero.
    Default: AverageFermiLevel

electrodeFermiLevels()
Returns:

The left and right electrodes Fermi levels in absolute energies.

Return type:

PhysicalQuantity

energy()
Returns:

The energy used in this transmission eigenvalue calculation.

Return type:

PhysicalQuantity of type energy

energyZero()
Returns:

The energy zero value.

Return type:

PhysicalQuantity of type energy

energyZeroParameter()
Returns:

The specified choice for the energy zero.

Return type:

AverageFermiLevel | AbsoluteEnergy

evaluate(spin=None)

Obtain the calculated transmission eigenvalues.

Parameters:

spin (Spin.Up | Spin.Down) – The spin component to evaluate.
Default: Spin.Up

Returns:

The requested transmission eigenvalues.

Return type:

numpy.array

kPoint()
Returns:

The two-dimensional fractional k-point used in this transmission eigenvalue calculation.

Return type:

list of two floats

metatext()
Returns:

The metatext of the object or None if no metatext is present.

Return type:

str | None

nlprint(stream=None)

Print a string containing an ASCII table useful for plotting the AnalysisSpin object.

Parameters:

stream (python stream) – The stream the table should be written to.
Default: NLPrintLogger()

setMetatext(metatext)

Set a given metatext string on the object.

Parameters:

metatext (str | None) – The metatext string that should be set. A value of “None” can be given to remove the current metatext.

uniqueString()

Return a unique string representing the state of the object.

Usage Examples

Calculate the TransmissionEigenvalues for a DeviceConfiguration 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

\[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,

\[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,

\[T = \sum_\alpha \lambda_\alpha .\]

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

See also, TransmissionEigenstate.