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:
- 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
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,
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,
The transmission eigenvalues are, in QuantumATK, in the range [0,1] for each spin channel.
See also, TransmissionEigenstate.