# Parameters for calculating bandStructure

Parameters here are for band structure calculations. (It is for calculator calcBandStructure3)

## calculation.bandStructure.primitiveCellVectors

keyword: calculation.bandStructure.primitiveCellVectors

possible values: 3 x 3 or 1 x 6 or 1 x 3 double matrix

default value: central cell vectors

description: The matrix format of the calculated Hamiltonian depends on the central cell chosen in the calculation. Normally the central cell is a supercell, and one needs primitiveCellVectors to convert the Hamiltonian matrix in the format of the super cell to that of the primitive cell.

If this parameter is given, a band unfolding will be performed. If this parameter is not given, the central cell used in the SCF calculation will be considered as the primitive cell of the system.

When the parameter is a 3 x 3 double matrix, its each column forms one of the three basis vectors. When the parameter is a 1 x 6 double matrix, it defines the three basis vectors by giving their lengths, a, b, and c, and the angles between them, alpha, beta, and gamma, with the convention that the a-axis is collinear with the x-axis, and the b-axis lies in the xy-plane. When the parameter is a 1 x 3 double matrix, the alpha, beta, and gamma are all assumed to be pi/2.

an example:

```calculation.bandStructure.primitiveCellVectors = ...
[0 1 1; 1 0 1; 1 1 0]/2*10.2612164268616
```

## calculation.bandStructure.symmetryKPoints

keyword: calculation.bandStructure.symmetryKPoints

possible values: cell array of a combination of the following commonly used symbols: ‘G’ for bandStructure.crystalStructure = ‘0D’; ‘G’, ‘X’, for ‘1D’; ‘G’, ‘M’, ‘K’, for 2D ‘HEXAGON’; ‘G’, ‘M’, ‘X’, for 2D ‘SQUARE’; ‘G’, ‘X’, ‘M’, ‘R’, for ‘SC’; ‘G’, ‘X’, ‘W’, ‘L’, ‘K’, for ‘FCC’; ‘G’, ‘H’, ‘N’, ‘P’, for ‘BCC’; ‘G’, ‘M’, ‘K’, ‘A’, ‘L’ for ‘HCP’; or user defined symbols.

default value: {‘G’} for bandStructure.crystalStructure = ‘0D’; {‘G’, ‘X’} for ‘1D’; {‘G’, ‘M’, ‘K’, ‘G’} for 2D ‘HEXAGON’; {‘G’, ‘X’, ‘M’, ‘G’} for 2D ‘SQUARE’; {‘G’, ‘X’, ‘M’, ‘G’, ‘R’, ‘X’} for ‘SC’; {‘G’, ‘X’, ‘W’, ‘L’, ‘G’, ‘K’, ‘X’} for ‘FCC’; {‘G’, ‘H’, ‘N’, ‘P’, ‘G’, ‘N’} for ‘BCC’; {‘G’, ‘M’, ‘K’, ‘G’, ‘A’, ‘L’} for ‘HCP’; {‘A’, ‘B’, ‘C’, ‘D’, …} for other structures or coordinatesOfTheSymmetryKPoints is given.

description: Each symbol in the cell array corresponds to a high symmetry k-point for the given crystal structure. The band structure will be calculated along the line segments which connect those high symmetry points one by one, from the first all the way to the last.

Please note that for other symbols not listed above, the parameter coordinatesOfTheSymmetryKPoints must be given explicitly.

an example:

```calculation.bandStructure.symmetryKPoints = ...
{'G' 'X' 'W' 'L' 'G' 'K' 'X'}
calculation.bandStructure.symmetryKPoints = ...
{'A' 'B' 'C' 'D'}
```

## calculation.bandStructure.coordinatesOfTheSymmetryKPoints

keyword: calculation.bandStructure.coordinatesOfTheSymmetryKPoints

possible values: 3 x n double array where n is the number of symmetry k-points defined in bandStructure.symmetryKPoints.

default value: calculated by nanodcal for those listed structures and listed symmetry points. No default value for other structures or high symmetry points.

description: The k-space fractional coordinates of those high symmetry k-points listed in symmetryKPoints, each column corresponds to one of them.

For a k-point with coordinates k1, k2, and k3, the corresponding k-vector is k-vector = k1 x b1 + k2 x b2 + k3 x b3, where b1, b2, and b3 are defined through dot(b_i, a_j) = 2pi x delta_{i,j}, and a1, a2, a3 are the primitive cell vectors defined in primitiveCellVectors.

Please note that this parameter must be given explicitly if any of the high symmetry k-points is not among those listed above.

an example:

```calculation ...
.bandStructure.coordinatesOfTheSymmetryKPoints ...
= [0 0 0; 1 0 0; 0 1 0; 0 0 1]'/2
```

## calculation.bandStructure.numberOfKPoints

keyword: calculation.bandStructure.numberOfKPoints

possible values: an integer or an integer array

default value: determined using the value of bandStructure.kInterval

description: If an integer, it is the total number of k points (including the two end points) used to represent the entire band structure. If an integer array, the number of k points (including the two end points) used to represent each section of the band structure between those high symmetry points.

an example:

```calculation.bandStructure.numberOfKPoints = 100
```

## calculation.bandStructure.isProjected

keyword: calculation.bandStructure.isProjected

possible values: true or false

default value: false

description: If true, the contributions of the orbitals to the band states will be calculated.

an example:

```calculation.bandStructure.isProjected = true
```

## calculation.bandStructure.spinPolarization

keyword: calculation.bandStructure.spinPolarization

possible values: true or false

default value: false

description: If true, the spin polarization of every band state will be calculated.

an example:

```calculation.bandStructure.spinPolarization = true
```

## calculation.bandStructure.plot

keyword: calculation.bandStructure.plot

possible values: true or false

default value: false

description: If true, a plot will be given after the calculation.

an example:

```calculation.bandStructure.plot = true
```