Spontaneous polarization of ferroelectric BaTiO3 - QuantumWise

255 downloads 290 Views 556KB Size Report
Spontaneous polarization of ferroelectric BaTiO3: Tutorial on how to use .... The reason is that the electronic polarization is determined by the Berry phase, which  ...
Spontaneous polarization of ferroelectric BaTiO3 Tutorial on how to use ATK for polarization calculations Version 2015.2

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.

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

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) displaying 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 theoretical 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 , volume, and the sum runs over all ions in the unit cell.

is the unit cell

The electronic contribution to the polarization is obtained as [1]

where the sum runs over occupied bands, and where tion, and

is parallel to the direction of polariza-

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 is determined by the Berry forms a lattice. The reason is that the electronic polarization 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

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

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 coordinates 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 lattice lattice = SimpleTetragonal(3.9945*Angstrom, 4.0335*Angstrom) # Define elements elements = [Barium, Titanium, Oxygen, Oxygen, Oxygen] # Define coordinates fractional_coordinates = [[ [ [ [ [

0. 0.5 0.5 0.5 0.

, , , , ,

0. 0.5 0.5 0. 0.5

, , , , ,

0. ], 0.51427 ], 0.974477], 0.487618], 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 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 interpret the script and open up with the imported geometry

3

. The tool will

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

The next step is to adjust the settings for the polarization analysis. Double-click the “Polarization” 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

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 BaTiO3_lda.nc on the VNL LabFloor and clicking “Show Text Representation...”

6

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 and

is the purely ionic fractional polarization

, where

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 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 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 C/m2.

.

in Cartesian coordinates, expressed in units of

• 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 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.5 0.5 0.5 0.0

, , , , ,

0. 0.5 0.5 0. 0.5

, , , , ,

0. 0.5 1.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 BaTiO3, thus corresponds to the values reported above for the distorted structure. The calculated value for the total Cartesian polarization in the z-direction m2 compares very well with the experimental value 0.26 C/m2 [3].

7

C/

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 by the amount

is the polarization along the -direction when atom in the positive/negative -direction.

has been displaced

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 the script and try to understand it.

for BaTiO3. Read through

# Read saved configuration configuration0 = nlread('BaTiO3_lda.nc', object_id='gID000')[0] # Get the fractional coordinates of read configuration R0 = configuration0.fractionalCoordinates() # Get the elements elements = configuration0.elements() # Get the lattice lattice = configuration0.bravaisLattice()

8

# From the lattice extract unit cell volume and length of lattice vector in z-direction volume = lattice.unitCellVolume() vectors = lattice.primitiveVectors() c = vectors[2][2] # Get the calculator calculator = configuration0.calculator() # Number of atoms numberOfAtoms = len(R0) # Fractional displacement in the +/- z direction delta_z = 0.01 # Array for storing the calculated Born Charges bornCharges = numpy.zeros(numberOfAtoms) # Loop over atoms in unit cell for 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

# Finally print out the results print '' 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 zdirection. • 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 calculations (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

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

NOTES • The

obtained

valued

compare

well [6] as

with well

previous calculations 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

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. Dlubak, 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

INDEX

13