Polarization¶
Spontaneous polarization of ferroelectric BaTiO3
Introduction¶
Ferroelectric (FE) materials have a spontaneous electric polarization that can be reversed by the application of an external electric field. FE materials find applications in capacitors, ferroelectric random access memory (RAM), and more recently in ferroelectric tunnel junction (FTJ) displaying giant electroresistance effects [1] [2].
One of the most studied FE materials is barium titanate (BaTiO_{3} ), which is the topic for this tutorial. Before continuing with the calculations, let us briefly summarize some central theoretical concepts first.
Modern theory of polarization¶
The theoretical understanding of FE materials is described by the socalled modern theory of polarization [3]. It is common to divide the polarization of a material into electronic and ionic parts. The latter is calculated using a simple classical electrostatic sum of point charges
where \(Z^\nu_\mathrm{ion}\) and \(\mathbf{r}^\nu\) are the valence charge and position vector of atom \(\nu\), \(\Omega\) is the unit cell volume, and the sum runs over all ions in the unit cell.
The electronic contribution to the polarization is obtained as [3]
where the sum runs over occupied bands, and where \(k_\parallel\) is parallel to the direction of polarization, and \(G_\parallel\) is a reciprocal lattice vector in the same direction. The states \(u_{\mathbf{k},n}\rangle\) are the cellperiodic parts of the Bloch functions, \(\psi_{\mathbf{k},n}(\mathbf{r}) = u_{n,\mathbf{k}}(\mathbf{r})e^{i\mathbf{k}\cdot\mathbf{r}}\). The last integral is known as the Berry phase. The integral over the perpendicular directions can easily be converged with a few number of kpoints. The number of kpoints in the parallel direction should be larger, however.
The total polarization is simply the sum of the electronic and ionic contributions,
An important finding in Ref. [3] was that the polarization is a multivalued quantity, and in fact forms a lattice. The reason is that the electronic polarization \(\mathbf{P}_e\) is determined by the Berry phase, which is only defined modulo \(2\pi\). Likewise, the ionic contribution \(\mathbf{P}_i\) would attain a different value if all ionic positions were displaced by a lattice constant in either direction.
The polarization is thus a periodic function, and the period is called the polarization quantum, \(\mathbf{P}_q^j=\frac{e\mathbf{R}^j}{\Omega}\), where \(e\) is the electronic charge, \(\mathbf{R}^j\) is the lattice vector \(j\), and \(\Omega\) is the unit cell volume.
Given the multivalued nature of the polarization, it is perhaps not surprising that only differences in polarization, \(\Delta \mathbf{P}\), between two different structures is a welldefined property.
ATK computes and reports the electronic and ionic contributions separately, and also reports the polarization quantum.
Important
In the current implementation of polarization in ATK, the unit cell must be orthogonal (simple cubic, tetragonal, or orthorhombic). There is no explicit check for this in the code, but the results cannot be expected to be correct if a nonorthogonal cell is used.
Spontaneous polarization of ferroelectric BaTiO_{3}¶
The BaTiO3 crystal structure¶
Barium titanate (BaTiO_{3}) has a tetragonal crystal structure at room temperature, where the unit cell is slightly elongated in the cdirection. An internal stress further shifts the fractional coordinates in the cdirection away from their high symmetry positions. In this tutorial we use the experimental lattice constants and coordinates as obtained from the Inorganic Crystal Structure Database (ICSD) The structure is given in the ATK format below [4]
# Set up lattice
lattice = SimpleTetragonal(3.9945*Angstrom, 4.0335*Angstrom)
# Define elements
elements = [Barium, Titanium, Oxygen, Oxygen, Oxygen]
# Define coordinates
fractional_coordinates = [[ 0. , 0. , 0. ],
[ 0.5 , 0.5 , 0.51427 ],
[ 0.5 , 0.5 , 0.974477],
[ 0.5 , 0. , 0.487618],
[ 0. , 0.5 , 0.487618]]
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
fractional_coordinates=fractional_coordinates
)
Setting up the calculation¶
You will in this section set up a DFT calculation using the local density approximation (LDA) for the BaTiO_{3} crystal and calculate the polarization. You will use VNL for the calculation, and it is recommended that you go through the VNL tutorial to be familiar with the basic work flow.
Start up VNL and create a new project for this tutorial. Use a new, empty directory. Select the text for the BaTiO_{3} structure in the python script above and drag it onto the Script Generator icon . The tool will interpret the script and open up with the imported geometry
Tip
Alternatively you can save the script to a file in the project directory and drag and drop the file to the Script Generator from the VNL main window.
Next do the following steps:
Now doubleclick the New Calculator block in the “Script” panel to open the calculator widget.
Set the kpoint sampling to 5x5x5; the other default settings are fine.
The next step is to adjust the settings for the polarization analysis. Doubleclick the Polarization block.
Increase the number of kpoints on the diagonal to 20. This is the number of kpoints along the lines of integration and needs to be relatively high. You should always check for convergence by comparing calculations with different numbers of kpoints. The other kpoints with values of 5 correspond to the number of transverse kpoints used for averaging over the Brillouin zone. The polarization values converge relatively fast with respect to the number of transverse kpoints and we thus use the default value.
You have now finished the script setup. Save the script as “BaTiO3_lda.py”. Send the script to the Job Manager and run the job. After a few minutes the calculation has finished and you can inspect the results.
Analyzing the results¶
To inspect the calculated polarization reported in the log file, scroll down to the end of the log file and you will find a report as shown below.
++
 Polarization 
++
 Electronic fractional polarization. 
 Values wrapped to the interval [0.5,0.5] 
 [ 1.25164671e15 ] 
 Pe= [ 6.42868666e16 ] 
 [ 4.71901310e01 ] 
++
 Ionic fractional polarization. 
 Values wrapped to the interval [0.5,0.5] 
 [ 0.00000000e+00 ] 
 Pi= [ 0.00000000e+00 ] 
 [ 2.44642000e01 ] 
++
 Total fractional polarization. Pt = Pe + Pi. 
 Values wrapped to the interval [0.5,0.5] 
 [ 1.25164671e15 ] 
 Pt= [ 6.42868666e16 ] 
 [ 2.83456690e01 ] 
++
 Total cartesian polarization. 
 [ 1.24465114e15 ] 
 Pt= [ 6.39275613e16 ] C/Meter**2 
 [ 2.84624464e01 ] 
++
 Polarization quantum. 
 [ 9.94410906e01 ] 
 Pq= [ 9.94410906e01 ] C/Meter**2 
 [ 1.00411976e+00 ] 
++
Tip
The results can also be inspected by selecting the polarization object in the file “BaTiO3_lda.nc” on the LabFloor and clicking Show Text Representation...
Notes¶
The output contains five calculated quantities:
 First, the electronic fractional polarization \(\mathbf{P}_e\) is calculated from the Berry phase obtained from the occupied bands, as described in Modern theory of polarization. The three values correspond to the x, y, and z directions.
 The second quantity \(\mathbf{P}_i\) is the purely ionic fractional polarization \(\mathbf{P}_i = \sum_j Z_j^{ion}\tau_j\), where \(Z_j^{ion}\) and \(\tau_j\) are the valence charge and fractional coordinate of of atom \(j\).
 The third quantity, \(\mathbf{P}_t\), is the total fractional polarization, which is the sum of the electronic and ionic parts. As discussed in Modern theory of polarization, the polarization is a multivalued quantity, and therefore all fractional polarizations are wrapped to the interval [0.5,0.5], which explains the sign change of the polarization in the zdirection. The sum \(\mathbf{P}_e(z) + \mathbf{P}_i(z) = 0.717\) is outside the range and is thus wrapped by adding a fractional quantization quantum (equal to 1), i.e. \(\mathbf{P}_t(z) = 0.717 + 1 = 0.283\).
 The fourth quantity is the total polarization \(\mathbf{P}_t\) in Cartesian coordinates, expressed in units of C/m^{2}.
 The fifth quantity is the polarization quantum \(\mathbf{P}_q\) introduced in Modern theory of polarization. It is relevant that \(\mathbf{P}_t\) is small compared to \(\mathbf{P}_q\).
According to the modern theory of polarization [3], only the difference in polarization between two configurations is a welldefined property. In order to calculate the spontaneous polarization of tetragonal BaTiO_{3}, it is thus necessary to also compute the polarization of the centrosymmetric, undistorted structure given below:
# Set up lattice
lattice = SimpleTetragonal(3.9945*Angstrom, 4.0335*Angstrom)
# Define elements
elements = [Barium, Titanium, Oxygen, Oxygen, Oxygen]
# Define coordinates
fractional_coordinates = [[ 0.0 , 0. , 0. ],
[ 0.5 , 0.5 , 0.5 ],
[ 0.5 , 0.5 , 1.0 ],
[ 0.5 , 0. , 0.5 ],
[ 0.0 , 0.5 , 0.5 ]]
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
fractional_coordinates=fractional_coordinates
)
You may repeat the above steps to calculate the polarization for this structure. The results are that all polarization components are zero. The spontaneous polarization of tetragonal BaTiO_{3}, thus corresponds to the values reported above for the distorted structure.
The calculated value for the total Cartesian polarization in the zdirection \(\mathbf{P}_t(z)=0.284\) C/m^{2} compares well with the experimental value 0.26 C/m^{2} [5].
References¶
[1] 

[2] 

[3]  (1, 2, 3, 4)

[4] 

[5] 
