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 | unicode | 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 | unicode | None) – The metatext string that should be set. A value of “None” can be given to remove the current metatext.

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.