Parameters for calculating transChannel
A transChannel is an incoming Bloch state in the lead of the device. For a given energy, there may be a number of transChannels that may travel across the device scattering region. Parameters here are for calculating the transChannels.
calculation.transChannel.whatDirection
keyword: calculation.transChannel.whatDirection
possible values: 1, 2, or 3
default value: 3
description: used for bulk system, to define the transmission direction. To perform transmission calculation on a perfect bulk system, or to analyze transmission channels inside a lead, it is necessary to choose one and only one of the three central cell vectors as the lead direction (i.e. transmission direction); the transverse plane is spanned by the other two directions.
an example:
calculation.transChannel.whatDirection = 3
calculation.transChannel.isAveraged
keyword: calculation.transChannel.isAveraged
possible values: 0, 1, 2
default value: 1
description: If 0, the calculated transmission coefficient is expressed as a function of both energy and transverse k-vector (i.e. obtain transmission hot spot). If 1, in addition, a k-space average is performed on the transmission coefficient, and the averaged coefficient is a function of energy only. If 2, only the averaged transmission coefficient are kept, just for saving disk storage.
an example:
calculation.transChannel.isAveraged = 2
calculation.transChannel.kSpaceGridNumber
keyword: calculation.transChannel.kSpaceGridNumber
possible values: 3 x 1 integer array
default value: the value of calculation.k_spacegrids.number which was used in the Hamiltonian calculation, or [1 1 1] if an user provided Hamiltonian is used.
description: number of small k-space grids in each direction which, together with kSpaceGridShift, are used to produce the parameter kSpacePoints.
an example:
calculation.transChannel.kSpaceGridNumber = [10 10 10]'
calculation.transChannel.kSpacePoints
keyword: calculation.transChannel.kSpacePoints
possible values: 3 x n double array
default value: defined in the k-point file if the file is given by the parameter transChannel.kPointFile, or produced by the parameters transChannel.kSpaceGridNumber and transChannel.kSpaceGridShift
description: the fractional coordinates of n transverse wavevectors at which the number of transmission channels will be calculated.
an example:
calculation.transChannel.kSpacePoints = [0 0 0]'
calculation.transChannel.kPointWeights
keyword: calculation.transChannel.kPointWeights
possible values: 1 x n double array
default value: defined in the k-point file if the corresponding parameter transChannel.kSpacePoints is using the k-values in the same file. Otherwise, equally weighted.
description: the weights of the k-space points in the k-space integration.
an example:
calculation.transChannel.kPointWeights = [1/2 1/3 1/6]
calculation.transChannel.kPointFile
keyword: calculation.transChannel.kPointFile
possible values: a file name
default value: no default value
description: the name of a file which contains the coordinates of k-space points and their corresponding weights.
A k-point file with n k-points has (n+1) lines: one line of headers and n lines of values of the n k-points. The headers are:
number : sequential number of the k-point k1, k2, k3 : fractional coordinates of the k-point divisor : used to modify k1, k2, and k3 so that the real fractional coordinates are k1/divisor, k2/divisor, k3/divisor weight : relative weights of the k-points for the k-space integration. Normalized so that sum(weight) = 1.
where the headers number, divisor, and weight are optional. The following is an example of the file.
number k1 k2 k3 divisor weight 1 0 0 0 7 1.0 2 0 1 0 7 2.0 3 0 2 0 7 2.0 4 0 3 0 7 2.0 5 1 0 0 7 2.0 6 1 1 0 7 4.0 7 1 2 0 7 4.0 8 1 3 0 7 4.0 9 2 0 0 7 2.0 10 2 1 0 7 4.0 11 2 2 0 7 4.0 12 2 3 0 7 4.0 13 3 0 0 7 2.0 14 3 1 0 7 4.0 15 3 2 0 7 4.0 16 3 3 0 7 4.0
an example:
calculation.transChannel.kPointFile = 'k-points.dat'
calculation.transChannel.energyPoints
keyword: calculation.transChannel.energyPoints
possible values: double array with proper energy unit such as ‘eV’, ‘meV’, ‘Ryd’, ‘Ryd.’, ‘Rydberg’, ‘au’, ‘a.u.’, ‘atomic unit’, ‘Hartree’, where ‘au’ ‘a.u.’, and ‘atomic unit’ are for Hartree, ‘Ryd’, ‘Ryd.’ for Rydberg.
default value: 0
description: the energy points at which the number of transmission channels is to be calculated. Note that the energy values are measured from the fermi energy.
an example:
calculation.transChannel.energyPoints = 0
calculation.transChannel.epsilon
keyword: calculation.transChannel.epsilon
possible values: a small double number
default value: 1e-9
description: used as a criterion of Bloch wave. For a wave with wave-vector k, if ||exp(ika)|-1| < epsilon, where a is unit cell length, it is considered as a Bloch wave; otherwise, it is considered as an evanescent wave.
an example:
calculation.transChannel.epsilon = 1e-4
calculation.transChannel.plot
keyword: calculation.transChannel.plot
possible values: true or false
default value: false
description: If true, a plot will be given after the calculation.
an example:
calculation.transChannel.plot = true