# BERRY_CURVATURE_DIPOLE¶

## introduction¶

In a system with time-reversal symmetry, the Berry curvature is an odd function of \(\mathbf{k}\), i.e., \(\Omega_{a}(\mathbf{k})=-\Omega_{a}(-\mathbf{k})\). As a result, the integration of the Berry curvature over the BZ is zero. However, if the system lacks a inversion symmetry, a higher-order nonlinear AHC can arise. More specifically, \(j_a^0=\chi_{abc} E_b (\omega) E_c(-\omega)\) and \(j_a^{2 \omega}=\chi_{abc} E_b (\omega)E_c(\omega)\), describe a rectified current and the second harmonic, respectively, whereas \(\omega\) is the driving frequency. The coefficient \(\chi_{abc}\) is given by

where

is called the Berry curvature dipole.

In PYATB, the Berry curvature dipole at a given temperature \(T\) and chemical potential \(\mu\) is calculated using the following formula:

## example¶

Here, we provide an example of calculating the Berry curvature dipole of the trigonal Te (refer to folder `examples/Te`

).

The `Input`

file is:

```
INPUT_PARAMETERS
{
nspin 4
package ABACUS
fermi_energy 9.574476774876963
fermi_energy_unit eV
HR_route data-HR-sparse_SPIN0.csr
SR_route data-SR-sparse_SPIN0.csr
rR_route data-rR-sparse.csr
HR_unit Ry
rR_unit Bohr
max_kpoint_num 28000
}
LATTICE
{
lattice_constant 1.8897162
lattice_constant_unit Bohr
lattice_vector
2.22 -3.84515 0.000
2.22 3.84515 0.000
0.00 0.00000 5.910
}
BERRY_CURVATURE_DIPOLE
{
omega 9.474 10.074
domega 0.001
integrate_mode Grid
integrate_grid 400 400 400
adaptive_grid 20 20 20
adaptive_grid_threshold 20000
}
```

`omega`

: To set the energy range for the Berry curvature dipole, you can adjust it based on the Fermi energy level. the unit is eV.

`domega`

: Specifies the energy interval of the omega.

For k-point integration, please refer to the [Setting of integration] section.

Once the task has been finished, three crucial files are produced in the `Out/Berry_Curvature_Dipole`

directory. These files consist of `bcd_step2.dat`

, `kpoint_list`

, and `plot_bcd.py`

. The first file stores the Berry curvature dipole’s magnitude, while the second file records the refined k-point coordinates. The third file contains the script used for generating the visualization of the dipole.