The function calculateTransmissionSpectrum()
calculates and returns the total transmission coefficient
,
where
is the spin as a function of the energy
based on a self-consistent two-probe calculation. The total transmission coefficient
is defined as an integral of the k-point dependent transmission coefficients
over the k-points
in the
2D Brillouin zone perpendicular to the transport direction.
List of arguments
An object returned from a previously performed self-consistent calculation for a TwoProbeConfiguration.
Default:
None
A list of the energies for which the transmission spectrum should be
calculated, e.g. [0.0*eV,0.5*eV,1.0*eV].
Default:
None
The k-point sampling used for integrating over the 2D Brillouin zone transverse to the transport direction.
The imaginary infinitesimal added to the energy of the retarded Green's function.
Default: 1.0e-5*eV
The return object has the following two query methods:
Array energies(): Returns
the energies for each of the calculated transmission coefficients.
Array coefficients():
Returns the calculated transmission coefficients.
The ordering of the array returned by coefficients()
follows the ordering of the array returned by energies().
Calculate and print the transmission spectrum (cf. the similar script for the density of states):
from ATK.TwoProbe import * import numpy ... electron_transmission = calculateTransmissionSpectrum( self_consistent_calculation = scf_calc, energies = numpy.arange(-5,5,0.1)*electronVolt ) energies = electron_transmission.energies() coefficients = electron_transmission.coefficients() if len(coefficients.shape)==2: # spin-polarized print ' Transmission' print 'Energy (eV) Spin-up Spin-down' print '------------------------------------------' for i in range(len(energies)): print "%g\t%g\t%g" % ( energies[i].inUnitsOf(eV), coefficients[0,i],coefficients[1,i] ) else: print 'Energy (eV) Transmission' print '-----------------------------------' for i in range(len(energies)): print "%g\t%g" % ( energies[i].inUnitsOf(eV),coefficients[i] )
The energy is measured relative to the average Fermi level of the two electrodes. These Fermi levels are, in turn, aligned with the applied bias on each electrode. Note that this means that if the same bias is applied to both electrodes, the energy zero-level (and of course the entire transmission spectrum) is unchanged.
The quantum numbers depend on whether the system is spin-polarized or not, and should be specified according to the rules:
([list_of_k_points], spin) for spin-polarized systems.
[list_of_k_points] for unpolarized systems.
where:
list_of_k_points is a list of two-dimensional,
dimensionless coordinates representing k-points in the 2D Brillouin zone of
the unit cell transverse to the transport direction. The coordinates must be
given in units of the reciprocal lattice vectors.
spin is the spin
The dimensionality of the returned array corresponds to the number of elements in the quantum_numbers list.