Spontaneous polarization of ferroelectric...

16
Spontaneous polarization of ferroelectric BaTiO3 Tutorial on how to use ATK for polarization calcu- lations Version 2015.2

Transcript of Spontaneous polarization of ferroelectric...

Page 1: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

Spontaneous polarization of ferroelectric

BaTiO3

Tutorial on how to use ATK for polarization calcu-

lations

Version 2015.2

Page 2: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

Spontaneous polarization of ferroelectric BaTiO3: Tutorial on how to use

ATK for polarization calculations

Version 2015.2

Copyright © 2008–2015 QuantumWise A/S

Atomistix ToolKit Copyright Notice

All rights reserved.

This publication may be freely redistributed in its full, unmodified form. No part of this publication may be incorporated or used in other publications

without prior written permission from the publisher.

Page 3: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

TABLE OF CONTENTS

1. Introduction ............................................................................................................ 1

Modern theory of polarization .............................................................................. 1

2. Spontaneous polarization of ferroelectric BaTiO3 ....................................................... 3

The BaTiO3 crystal structure ................................................................................. 3

Setting up the calculation ..................................................................................... 3

Performing the calculation .................................................................................... 5

Analyzing the results ............................................................................................ 6

3. Born effective charges .............................................................................................. 8

Theory and definition ........................................................................................... 8

Calculation script ................................................................................................ 8

Running the calculation ..................................................................................... 10

Bibliography ............................................................................................................. 12

Index ........................................................................................................................ 13

iii

Page 4: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

CHAPTER 1. 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) display-

ing giant electroresistance effects [4], [5].

One of the most studied FE materials is barium titanate (BaTiO3), which is the topic for this

tutorial. Before continuing with the calculations, let us briefly summarize some central theo-

retical concepts first.

MODERN THEORY OF POLARIZATION

The theoretical understanding of FE materials is described by the so-called modern theory of

polarization [1]. 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 and are the valence charge and position vector of atom , 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 [1]

where the sum runs over occupied bands, and where is parallel to the direction of polariza-

tion, and is a reciprocal lattice vector in the same direction. The states are the cell-

periodic parts of the Bloch functions, . The last integral is known as the

Berry phase. The integral over the perpendicular directions can easily be converged with a few

number of k-points. The number of k-points 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. [1] was that the polarization is a multivalued quantity, and in fact

forms a lattice. The reason is that the electronic polarization is determined by the Berry

phase, which is only defined modulo . Likewise, the ionic contribution would attain a

different value if all ionic positions were displaced by a lattice constant in either direction.

1

Page 5: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

The polarization is thus a periodic function, and the period is called the polarization quantum,

, where is the electronic charge, is the lattice vector , and is the unit cell

volume.

Given the multivalued nature of the polarization, it is perhaps not surprising that only differen-

ces in polarization, , between two different structures is a well-defined 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 non-orthogonal cell is used.

2

Page 6: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

CHAPTER 2. SPONTANEOUS POLARIZATION OF

FERROELECTRIC BATIO3

THE BATIO3 CRYSTAL STRUCTURE

Barium titanate (BaTiO3) has a tetragonal crystal structure at room temperature, where the unit

cell is slightly elongated in the c-direction. An internal stress further shifts the fractional coor-

dinates in the c-direction 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 [2]

# Set up latticelattice = SimpleTetragonal(3.9945*Angstrom, 4.0335*Angstrom)

# Define elementselements = [Barium, Titanium, Oxygen, Oxygen, Oxygen]

# Define coordinatesfractional_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 configurationbulk_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 BaTiO3 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 in the BaTiO3.py script above and drag it onto the Script Generator . The tool will

interpret the script and open up with the imported geometry

3

Page 7: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

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:

• Change the Default output file to BaTiO3_lda.nc.

• double-click New Calculator.

• double-click Analysis and select Polarization.

ADJUSTING THE SCRIPT COMPONENTS

Now double-click the “New Calculator” block in the “Script” panel to open the calculator

widget.

Select a 5x5x5 k-point sampling; the other default settings are fine.

4

Page 8: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

The next step is to adjust the settings for the polarization analysis. Double-click the “Polariza-

tion” block in the “Script” panel.

Increase the number of k-points on the diagonal to 20. This is the number of k-points along the

lines of integration and needs to be relatively high. You should always check for convergence

by comparing calculations with different numbers of k-points. The other k-points with values

of 5 correspond to the number of transverse k-points used for averaging over the Brillouin zone.

The polarization values converge relatively fast with respect to the number of transverse k-points

and we thus use the default value.

You have now finished the script setup. Save the script as BaTiO3_lda.py .

PERFORMING THE CALCULATION

To start the calculation, left-click the icon located in the lower-right of the script Generator

tool and select Job Manager from the pop-up menu.

The Job Manager will now pop up; press "Run Queue" to run the script. You should see a log

window pop up with the output of the calculation. After a few minutes the calculation has

finished and you can inspect the results.

5

Page 9: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

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.25164671e-15 ] | | Pe= [ -6.42868666e-16 ] | | [ -4.71901310e-01 ] | +------------------------------------------------------------------------------+ | Ionic fractional polarization. | | Values wrapped to the interval [-0.5,0.5] | | [ 0.00000000e+00 ] | | Pi= [ 0.00000000e+00 ] | | [ -2.44642000e-01 ] | +------------------------------------------------------------------------------+ | Total fractional polarization. Pt = Pe + Pi. | | Values wrapped to the interval [-0.5,0.5] | | [ -1.25164671e-15 ] | | Pt= [ -6.42868666e-16 ] | | [ 2.83456690e-01 ] | +------------------------------------------------------------------------------+ | Total cartesian polarization. | | [ -1.24465114e-15 ] | | Pt= [ -6.39275613e-16 ] C/Meter**2 | | [ 2.84624464e-01 ] | +------------------------------------------------------------------------------+ | Polarization quantum. | | [ 9.94410906e-01 ] | | Pq= [ 9.94410906e-01 ] C/Meter**2 | | [ 1.00411976e+00 ] | +------------------------------------------------------------------------------+

Tip

The results can also be inspected by selecting the polarization object in the file Ba-

TiO3_lda.nc on the VNL LabFloor and clicking “Show Text Representation...”

6

Page 10: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

NOTES

The output contains five calculated quantities:

• First, the electronic fractional polarization 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 is the purely ionic fractional polarization , where

and are the valence charge and fractional coordinate of of atom .

• The third quantity, , is the total fractional polarization, which is the sum of the electronic

and ionic parts. As discussed in the section called “Modern theory of polarization”, the po-

larization 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 z-direction.

The sum is outside the range and is thus wrapped by adding a

fractional quantization quantum (equal to 1), i.e. .

• The fourth quantity is the total polarization in Cartesian coordinates, expressed in units of

C/m2.

• The fifth quantity is the polarization quantum introduced in the section called “Modern

theory of polarization”. It is relevant that is small compared to .

According to the modern theory of polarization [1], only the difference in polarization between

two configurations is a well-defined property. In order to calculate the spontaneous polarization

of tetragonal BaTiO3, it is thus necessary to also compute the polarization of the centrosym-

metric, undistorted structure given below:

# Set up latticelattice = SimpleTetragonal(3.9945*Angstrom, 4.0335*Angstrom)

# Define elementselements = [Barium, Titanium, Oxygen, Oxygen, Oxygen]

# Define coordinatesfractional_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 configurationbulk_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 BaTiO3,

thus corresponds to the values reported above for the distorted structure.

The calculated value for the total Cartesian polarization in the z-direction C/

m2 compares very well with the experimental value 0.26 C/m2 [3].

7

Page 11: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

CHAPTER 3. BORN EFFECTIVE CHARGES

THEORY AND DEFINITION

The concept of Born effective charges, denoted , is defined as the change in polarization

divided by the amount an ion (or rather the periodic sublattice of equivalent ions) is displaced:

where is the unit cell volume, is the total (Cartesian) polarization in direction , and is

the coordinate of ion in direction . The Born effective charge is a tensor. When an ion is

displaced in direction it clearly affects the polarization in direction , but it may also lead to

a change in polarization in a perpendicular direction .

In the calculations below the derivative will be approximated using finite differences, such that

e.g.

where is the polarization along the -direction when atom has been displaced

by the amount in the positive/negative -direction.

The Born effective charges are useful for analyzing spontaneous polarization results, and are

central to the LO-TO optical phonon splitting in polar crystals. Sometimes the Born effective

charge is referred to as the effective charge or dynamical charge.

CALCULATION SCRIPT

Below is a Python script for calculating the Born effective charges for BaTiO3. Read through

the script and try to understand it.

# Read saved configurationconfiguration0 = nlread('BaTiO3_lda.nc', object_id='gID000')[0]

# Get the fractional coordinates of read configurationR0 = configuration0.fractionalCoordinates()

# Get the elementselements = configuration0.elements()

# Get the latticelattice = configuration0.bravaisLattice()

8

Page 12: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

# From the lattice extract unit cell volume and length of lattice vector in z-directionvolume = lattice.unitCellVolume()

vectors = lattice.primitiveVectors()c = vectors[2][2]

# Get the calculatorcalculator = configuration0.calculator()

# Number of atomsnumberOfAtoms = len(R0)

# Fractional displacement in the +/- z directiondelta_z = 0.01

# Array for storing the calculated Born ChargesbornCharges = numpy.zeros(numberOfAtoms)

# Loop over atoms in unit cellfor nAtom in range(numberOfAtoms): # Loop over displacement in positive/negative z-direction # List with polarization values Pz = [] for s in [1,-1]: # Make a copy of the initial coordinates R = R0.copy() # Displace z-coordinate if atom 'nAtom' R[nAtom,2] += s*delta_z # Make a new configuration with the displaced atom configuration = BulkConfiguration(bravais_lattice=lattice, elements=elements, fractional_coordinates=R) # Set the calculator using the saved configuration as initial state configuration.setCalculator(calculator,initial_state=configuration0) # Update the configuration (DFT calculation) configuration.update() # Calculate polarization. Only use fine k-sampling in the z-direction polarization = Polarization(configuration=configuration, kpoints_a=MonkhorstPackGrid(2,2,2), kpoints_b=MonkhorstPackGrid(2,2,2), kpoints_c=MonkhorstPackGrid(5,5,20), ) # Print polarization nlprint(polarization) # Get the total cartesian polarization Pt = polarization.totalCartesianPolarization() # Append the z-component to the Pz list Pz.append(Pt[2]) # Make a finite difference approximation for the derivative dP = (Pz[0]-Pz[1])/(2*delta_z*c) # Calculate Born charge born_charge = volume*dP # Add the value (in units of electron charge) to the list 'bornCharges' bornCharges[nAtom] = born_charge.inUnitsOf(elementary_charge)

9

Page 13: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

# Finally print out the resultsprint ''print '+------------------------------+'print '| Born effective charges (e) |'print '+------------------------------+'

for nAtom in range(numberOfAtoms): print ' %2s' %elements[nAtom].symbol() + ' : %4.4f ' %bornCharges[nAtom]

print '+------------------------------+'print ' Sum : %4.4f ' %numpy.sum(bornCharges)print '+------------------------------+'

• The script starts with reading the results from the previous calculation. This will serve as a

good starting guess for the DFT calculations to be performed later in the script (where the

atoms are displaced).

• Extract the fractional coordinates, the list of elements, the lattice, and the calculator from the

configuration, and define a few convenient variables such as the unit cell volume and the

length of the C lattice vector.

• The parameter delta_z is the fractional displacement when calculating the derivatives.

• There are two for loops in the script. The outer one loops over the atoms in the unit cell, and

the inner one (over the variable s) performs the displacements in the positive and negative z-

direction.

• Notice that when the calculator is attached to the configuration

configuration.setCalculator(calculator,initial_state=configuration0)

we use the calculation from the previous chapter as an initial guess. This speeds up the cal-

culations (also see the tutorial Initializing a calculation from another one.)

• In the end, the results are printed out.

RUNNING THE CALCULATION

Download the BaTiO3_born_charge.py script above and save it in the tutorial project folder.

To start the calculation, drag the script to the Job Manager and run it.

You should see the log window pop up with the output of the calculation. The calculation will

approximately take 10 times longer than the single polarization calculation in the previous

chapter.

When the job is finished, the calculated Born effective charges are written in the log file.

+------------------------------+ | Born effective charges (e) | +------------------------------+ Ba : 2.4334 Ti : 5.9442 O : -4.8053 O : -1.7822 O : -1.7822 +------------------------------+

10

Page 14: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

Sum : 0.0080 +------------------------------+

NOTES

• The obtained valued compare well with previous calculations

[6] as well as experimental values

[7].

• As indicated by the calculated sum of the Born effective charges, the calculated values fulfill

the acoustic sum rule with only a small error.

• You can easily use the same script to calculate the Born effective charges for other structures,

by simply changing the filename on the first line.

11

Page 15: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

BIBLIOGRAPHY

[1] R. D. King-Smith, and D. Vanderbilt, Phys. Rev. B, 47, 1651, 1993

[2] H. D. Megaw, Acta Crystallographica, 15, 972, 1962

[3] H. H. Wieder, Phys. Rev. , 99, 1161, 1955

[4] A. Chanthbouala, A. Crassous, V. Garcia, K. Bouzehouane, S. Fusil , X. Moya , J. Allibe , B. Dlu-

bak, J. Grollier , S. Xavier , C. Deranlot , A. Moshar , R. Proksch , N. D. Mathur , M. Bibes,and

A. Barthélémy, Nature Nanotechnology, 7, 101, 2012

[5] X. Lou, Y. Zheng, and B. Wang, J. Appl. Phys., 111, 074102, 2012

[6] P. Ghosez, J. P. Michenaud, and X. Gonze, Phys. Rev. B, 58, 6224, 1998

[7] J. D. Axe, Phys. Rev., 157, 429, 1967

12

Page 16: Spontaneous polarization of ferroelectric BaTiO3quantumwise.com/documents/tutorials/latest/Polarization/... · Spontaneous polarization of ferroelectric BaTiO3 ... One of the most

INDEX

13