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