# FERMI_ENERGY¶

## introduction¶

This function is to calculate the Fermi energy of solid materials given temperature and electronic occupation number. If the system is an insulator, fermi energy is given by the valence band maximum (VBM) .

For each \(\mathbf{k}\) point, the probability of finding an electron in any energy state should obey the Fermi-Dirac distribution. The integration of occupied electrons over the entire Brillouin zone should be the occupation number. Though which, the exact Fermi energy could be attained following Newton interpolation.

## example¶

You can find an example of how to calculate the Fermi energy of Copper in the `examples/Cu`

folder.

The `Input`

file is:

```
INPUT_PARAMETERS
{
nspin 1
package ABACUS
fermi_energy Auto
fermi_energy_unit eV
HR_route data-HR-sparse_SPIN0.csr
SR_route data-SR-sparse_SPIN0.csr
HR_unit Ry
rR_unit Bohr
max_kpoint_num 8000
}
LATTICE
{
lattice_constant 6.91640
lattice_constant_unit Bohr
lattice_vector
0.50 0.50 0.00
0.50 0.00 0.50
0.00 0.50 0.50
}
FERMI_ENERGY
{
temperature 0
electron_num 11
grid 50 50 50
epsilon 1e-4
}
```

`electron_num`

: The number of the electrons in the system. The number of valence electrons, which is the sum of all atomic valence electrons of the system, can be obtained from the self-consistent output of the first-principles software.

`epsilon`

: The max tolerable error of Newton interpolation. If two steps of Newton interpolation differs less than this epsilon, the calculation would stop and output the result.

`temperature`

: The temperature of the system, unit in K.

After the task calculation is completed, there will be one file in the `Out/Fermi_Energy`

folder, namely `fermi_energy.dat`

, showing the calculated Fermi energy.