# Parameters for calculating eigenStates

Parameters here are for calculating the eigen states of a molecular or bulk system.

## calculation.eigenStates.kSpaceGridNumber

keyword: calculation.eigenStates.kSpaceGridNumber

possible values: 3 x 1 integer array

default value: no default value

description: number of small k-space grids in each direction which, together with kSpaceGridShift, are used to produce the parameter kSpacePoints.

an example:

```calculation.eigenStates.kSpaceGridNumber = [10 10 10]'
```

## calculation.eigenStates.kSpaceGridShift

keyword: calculation.eigenStates.kSpaceGridShift

possible values: 3 x 1 or 1 x 3 array, [s_1, s_2, s_3], with each s_i a double number between 0 and 1.

default value: [0 0 0]

description: k-space grid point shift. While all s_i are set to be 0, the Gamma point is always among the k-space grid points being generated; otherwise, the k-space grid points will be shifted s_1, s_2, and s_3 grid length along their grid vector directions, respectively.

an example:

```calculation.eigenStates.kSpaceGridShift = [1/2 1/2 1/2]'
```

## calculation.eigenStates.kSpacePoints

keyword: calculation.eigenStates.kSpacePoints

possible values: 3 x n double array

default value: produced by parameter kSpaceGridNumber if it is given, otherwise, [0 0 0]’ (i.e. gamma point only)

description: the fractional coordinates of n k-space points at which the eigen states will be calculated.

an example:

```calculation.eigenStates.kSpacePoints = [0 0 0]
```

## calculation.eigenStates.numberOfBands

keyword: calculation.eigenStates.numberOfBands

possible values: 1 x 2 integer array [n1,n2] or an integer number n

default value: [1,1]

description: For a bulk system, the n1 eigen states bellow the fermi energy and n2 eigen states above the fermi energy will be calculated for each given k-point defined in kSpacePoints.

For a molecular system, the n1 eigen states bellow (including) the HOMO and n2 eigen states above (including) the LUMO will be calculated.

This calculation is not applied for systems with probes.

An integer number n can used instead of [n n] for this parameter.

an example:

```calculation.eigenStates.numberOfBands = [2, 0]
```

## calculation.eigenStates.realSpace

keyword: calculation.eigenStates.realSpace

possible values: true or false

default value: false

description: If true, real space wavefunctions of the eigen states will be calculated in a region defined by the parameters regionPosition and regionVectors.

an example:

```calculation.eigenStates.realSpace = true
```

## calculation.eigenStates.regionPosition

keyword: calculation.eigenStates.regionPosition

possible values: a 3 x 1 double array

default value: [0;0;0]

description: When realSpace is true, this parameter and regionVectors define a real space region in which wavefunctions of the eigen states will be calculated.

an example:

```calculation.eigenStates.regionPosition = [1,1,1]'
```

## calculation.eigenStates.regionVectors

keyword: calculation.eigenStates.regionVectors

possible values: a 3 x 3 double array

default value: the value of system.centralCellVectors which was used in the Hamiltonian calculation

description: When realSpace is true, this parameter and regionPosition define a real space region in which wavefunctions of the eigen states will be calculated.

an example:

```calculation.eigenStates.regionVectors = eye(3)*2
```

## calculation.eigenStates.regionGridNumber

keyword: calculation.eigenStates.regionGridNumber

possible values: 3 x 1 integer vector

default value: the value of calculation.realspacegrids.number which was used in the Hamiltonian calculation

description: the small grid number in each direction of regionVectors. It is used to define a set of real space point in the region defined by regionPosition and regionVectors, at which wavefunctions of the eigen states will be calculated.

an example:

```calculation.eigenStates.regionGridNumber = [4 4 4]
```

## calculation.eigenStates.plot

keyword: calculation.eigenStates.plot

possible values: true or false

default value: false

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

an example:

```calculation.eigenStates.plot = true
```