# 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. PhysicalQuantity
energy()
Returns: The energy used in this transmission eigenvalue calculation. PhysicalQuantity of type energy
energyZero()
Returns: The energy zero value. PhysicalQuantity of type energy
energyZeroParameter()
Returns: The specified choice for the energy zero. AverageFermiLevel | AbsoluteEnergy
evaluate(spin=None)

Obtain the calculated transmission eigenvalues.

Parameters: spin (Spin.Up | Spin.Down) – The spin component to evaluate. Default: Spin.Up The requested transmission eigenvalues. numpy.array
kPoint()
Returns: The two-dimensional fractional k-point used in this transmission eigenvalue calculation. list of two floats
metatext()
Returns: The metatext of the object or None if no metatext is present. 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.