TransmissionEigenstate — Class for representing the transmission eigenstate for a given configuration and calculator.
Constructor for the TransmissionEigenstate object.
The two-probe configuration with attached calculator for which the transmission eigenstate should be calculated.
Type: A DeviceConfiguration.
Default:
None
The energy for which the transmission eigenstate should be calculated.
Type: A value of the type PhysicalQuantity of with energy unit.
Default:
0.0*eV
The 2-d k-point for which the transmission eigenstate 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]
The quantum number of the desired eigenstate.
Type: integer
Default:
0
The spin to be used for the transmission eigenstate calculation.
Type: Spin.Up | Spin.Down
Default:
Spin.Up
The initial state electrode of the transmission eigenstate
Type: Left | Right
Default:
Left
Specifies the choice for the energy zero.
Type: AverageFermiLevel | AbsoluteEnergy .
Default:
AverageFermiLevel.
A TransmissionEigenstate object provides the following methods:
contributions(): Return the contributions used in the transmission eigenstate calculation.
derivatives(x, y, z): Calculate the derivative in the point x,y,z.
electrodeFermiLevels(): Return the electrodes Fermi levels in absolute energies.
energy(): Return the energy used in this transmission eigenstate calculation.
energyZero(): Return the energy zero used for the energy scale in this transmission eigenstate calculation.
energyZeroParameter(): Return the energy zero parameter used for the energy scale in this transmission eigenstate calculation.
evaluate(x, y, z): Evaluate in the point x,y,z
gridCoordinate(i, j, k): Return the coordinate for a given grid index.
kPoint(): Return the k-point used in this transmission eigenstate calculation.
nlprint(stream): Print a string containing an ASCII table useful for plotting the transmission eigenstate.
quantumNumber(): Return the quantum number - the requested transmission state.
scale(scale): Scale the field with a double.
shape(): Query function for getting the shape of the data.
spin(): Query for the spin.
toArray(): Return the values of the grid as a numpy array slicing off any units.
unit(): Get the unit of the data in the grid.
unitCell(): Return the unit cell for the grid.
volumeElement(): Get the volume element of the grid.
Calculate the transmission eigenstates for a device configuration and save the result in a NetCDF for visualization with VNL.
eigenstates = TransmissionEigenstate(device_configuration, 0.0*eV, quantum_number=0)
nlsave('eigenstate.nc',eigenstates)
Figure 9: Spin up component of the transmission eigenstates of a graphene ribbon with a wedge. The transmission eigenstate is a complex 3D wave function, and is illustrated by an isosurface with isovalue given by the magnitude of the eigenstate and the color maps the phase of the eigenstate.
For examples on how to average and handle 3-d grids, see the examples for ElectronDifferenceDensity and ElectrostaticDifferencePotential.
The TransmissionEigenstate is an analysis option which finds the eigenstates of the transmission matrix. The transmission matrix is given by
where
is the transmission amplitude from Bloch state
in the left
electrode to Bloch state
in the right electrode. The transmission
coefficient is given by the trace of the transmission matrix
The transmission eigenstates are obtained by propagating the
linear combination of the Bloch states,
, where
diagonalize the
transmission matrix
with transmission eigenvalue
.
See also, TransmissionEigenvalues and LocalDeviceDensityOfStates