# 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
```