Name

TransmissionEigenstate — Class for representing the transmission eigenstate for a given configuration and calculator.

Synopsis

Namespace: NanoLanguage
TransmissionEigenstate(
configuration,
energy,
k_point,
quantum_number,
spin,
contributions,
energy_zero_parameter
)

Description

Constructor for the TransmissionEigenstate object.

TransmissionEigenstate Arguments

configuration

The two-probe configuration with attached calculator for which the transmission eigenstate should be calculated.

Type: A DeviceConfiguration.

Default: None
energy

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
k_point

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]
quantum_number

The quantum number of the desired eigenstate.

Type: integer

Default: 0
spin

The spin to be used for the transmission eigenstate calculation.

Type: Spin.Up | Spin.Down

Default: Spin.Up
contributions

The initial state electrode of the transmission eigenstate

Type: Left | Right

Default: Left
energy_zero_parameter

Specifies the choice for the energy zero.

Type: AverageFermiLevel | AbsoluteEnergy .

Default: AverageFermiLevel.

TransmissionEigenstate Methods

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.

    x

    The cartesian x coordinate.

    Type: physical quantity with type length.

    y

    The cartesian y coordinate.

    Type: physical quantity with type length.

    z

    The cartesian z coordinate.

    Type: physical quantity with type length.

  • 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

    x

    The cartesian x coordinate.

    Type: physical quantity with type length.

    y

    The cartesian y coordinate.

    Type: physical quantity with type length.

    z

    The cartesian z coordinate.

    Type: physical quantity with type length.

  • gridCoordinate(i, j, k): Return the coordinate for a given grid index.

    i

    The grid index in the A direction.

    Type: integer

    j

    The grid index in the B direction.

    Type: integer

    k

    The grid index in the C direction.

    Type: integer

  • 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.

    stream

    The stream the transmission eigenstate should be written to.

    Type: A stream that supports strings being written to using 'write'.

    Default: sys.stdout
  • quantumNumber(): Return the quantum number - the requested transmission state.

  • scale(scale): Scale the field with a double.

    scale

    The parameter to scale with.

    Type: float

  • 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.

Usage Examples

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)
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.

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.

Notes

The TransmissionEigenstate is an analysis option which finds the eigenstates of the transmission matrix. The transmission matrix is given by

\displaystyle

  T_{nm} = \sum_k t_{nk}  t^\dagger_{km},

where t_{nk} is the transmission amplitude from Bloch state \psi_n in the left electrode to Bloch state \psi_k in the right electrode. The transmission coefficient is given by the trace of the transmission matrix

\displaystyle

  T = \sum_n T_{nn}.

The transmission eigenstates are obtained by propagating the linear combination of the Bloch states,\sum_n e_{\alpha,n} \psi_n , where e_{\alpha,n} diagonalize the transmission matrix

\displaystyle

 \sum_m T_{nm}e_{\alpha,m}= \lambda_\alpha e_{\alpha,n},

with transmission eigenvalue \lambda_\alpha.

See also, TransmissionEigenvalues and LocalDeviceDensityOfStates