# Berry Phase Calculation

From version 2.0.0, ABACUS is capable of calculating macroscopic polarization of insulators by using the Berry phase method, known as the “modern theory of polarization”. To calculate the polarization, you need first to do a self-consistent calculation to get the converged charge density. Then, do a non-self-consistent calculation with berry_phase setting to 1. You need also to specify the direction of the polarization you want to calculate. An example is given in the directory examples/berryphase/lcao_PbTiO3.

To run this example, first do a self-consistent calculation:

cp INPUT-scf INPUT
cp KPT-scf KPT
mpirun -np 4 abacus


Then run a non-self-consistent berry-phase calculation:

cp INPUT-nscf-c INPUT
cp KPT-nscf-c KPT
mpirun -np 4 abacus


In this example, we calculate the electric polarization along c axis for PbTiO~3~, and below are the INPUT file (nscf) and KPT file (nscf):

INPUT_PARAMETERS
pseudo_dir      ../../../tests/PP_ORB  //the path to locate the pesudopotential files
orbital_dir     ../../../tests/PP_ORB  //the path to locate the numerical orbital files
ntype         3
ecutwfc       50 // Ry
symmetry      0 // turn off symmetry
calculation   nscf // non-self-consistent calculation
basis_type    lcao // atomic basis
init_chg  file // read charge from files
berry_phase   1 // calculate Berry phase
gdir          3 // calculate polarization along c axis


Note: You need to turn off the symmetry when do Berry phase calculations. Currently, ABACUS support Berry phase calculation with nspin=1 and nspin=2. The Berry phase can be calculated in both pw and lcao bases.

• berry_phase : 1, calculate berry phase; 0, no calculate berry phase.

• gdir : 1, 2, 3, the lattice vector direction of the polarization you want to calculate.

The KPT file need to be modified according to gdir in the INPUT file. Generally, you need denser k points along this direction. For example, in the following KPT file, 4 k-points are taken along the a and b axes, and 8 k-points are taken along the c-axis. You should check the convergence of the k points when calculating the polarization.

K_POINTS
0
Gamma
4 4 8 0 0 0


The results of the berry phase calculation are written in the “running_nscf.log” in the OUT folder. You may search for these results by searching for keywords “POLARIZATION CALCULATION”.

The results are shown as follows:

 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|                                                                    |
| POLARIZATION CALCULATION:                                          |
|                  Modern Theory of Polarization                     |
| calculate the Macroscopic polarization of a crystalline insulator  |
| by using Berry Phase method.                                       |
|                                                                    |
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

VALUES OF POLARIZATION

The Ionic Phase:   -0.10600
Electronic Phase:    0.92508

The calculated polarization direction is in R3 direction

P =    7.4095194  (mod   18.0922373)  (   0.0000000,   0.0000000,   7.4095194) (e/Omega).bohr

P =    0.0155792  (mod    0.0380407)  (   0.0000000,   0.0000000,   0.0155792) e/bohr^2

P =    0.8906925  (mod    2.1748536)  (   0.0000000,   0.0000000,   0.8906925) C/m^2


The electric polarization P is multivalued, which modulo a quantum eR/V~cell~. Note: the values in parentheses are the components of the P along the c axis in the x, y, z Cartesian coordinates when set gdir = 3 in INPUT file.