0% found this document useful (0 votes)
190 views

Momentum Matrix Elements

This document discusses computing momentum matrix elements from wavefunctions calculated using the Abinit code. It presents the equations defining the momentum matrix elements and shows the derivation of an expression for calculating them based on the plane wave coefficients from an Abinit wavefunction file. It describes taking the second term of the momentum matrix element equation, and shows that this leads to an expression for the momentum matrix elements as a sum over the plane wave coefficients and wavevectors. The document also provides an overview of how to read the plane wave coefficients from the Abinit wavefunction output file.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
190 views

Momentum Matrix Elements

This document discusses computing momentum matrix elements from wavefunctions calculated using the Abinit code. It presents the equations defining the momentum matrix elements and shows the derivation of an expression for calculating them based on the plane wave coefficients from an Abinit wavefunction file. It describes taking the second term of the momentum matrix element equation, and shows that this leads to an expression for the momentum matrix elements as a sum over the plane wave coefficients and wavevectors. The document also provides an overview of how to read the plane wave coefficients from the Abinit wavefunction output file.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Computing the momentum matrix elements with Abinit code

Jose Luis Cabellos Quiroz January 24, 2013

Contents
1 Introduction 2 The wavefunction 3 Momentum matrix elements 4 Fortran code 4.1 The coecients from Abinit . . . . . . . . . . . . . . . . . . . 2 2 2 3 3

This is an unnished draft. email [email protected]

Introduction

We present a procedure to compute the momentum matrix elements with Abinit code [?].

The wavefunction

The electronic wavefunction nk r is expressed as a linear combination of plane waves (Eq. 2.1), where k are arbitray vectors, G are a reciprocal laticce vectors and Cnk are the plane waves coecents to be read from abinit wf le. (2.1) nk r =
G

Cnk (G)ei(k+G)r

Momentum matrix elements

The momentum matrix elements are dened according to Eq. (3.1)

(3.1)

p =

dv nk r

mk r

Inserting Eq. (2.1) into Eq. (3.1) leads (3.2) p = dv


G Cnk (G)ei(k+G)r i

Cmk (G )ei(k+G )r G

Taken just the second part, and one direction i x


Cmk (G )ei(k+G )x = i Cmk (G ) G G

i(k+G )x e x i k + G ei(k+G )x

= i Cmk (G )
G

Cmk (G )
G

k + G ei(k+G )x

dv
G

Cnk (G)ei(k+G)r

Cmk (G )
G

k + G ei(k+G )x

= = =
G

dv
G G

Cnk (G)ei(k)r ei(G)r Cmk (G ) k + G ei(k)r ei(G )r

dv
G G

Cnk (G)Cmk (G ) k + G ei(G G)r

Cnk (G)Cmk (G ) k + G G

dvei(G G)r

=
G G

Cnk (G)Cmk (G ) k + G G G Cnk (G)Cmk (G) k + G G G Cnk (G)Cmk (G) k + G G

= =

there are 3 directions x, y and z (3.3) pnm


x

=
G

Cnk (G)Cmk (G) kx + Gx

(3.4)

pnm

=
G

Cnk (G)Cmk (G) ky + Gy

(3.5)

pnm

=
G

Cnk (G)Cmk (G) kz + Gz

Fortran code

How to read the wf coecients

4.1

The coecients from Abinit

6.7. The wavefunction output file This is an unformatted data file containing the planewaves coefficients of all the wavefunctions, and different supplementary data. The ground-state wf file consists of the header records, and data written with the following lines of FORTRAN (version 4.0 and more recent versions): bantot=0 <-- counts over all bands index=0 <-- index for the wavefunction location do isppol=1,nsppol do ikpt=1,nkpt write(unit) npw,nspinor,nband <- for each k point write(unit) kg(1:3,1:npw) <- plane wave reduced coordinates write(unit) eigen(1+bantot:nband+bantot),<- eigenvalues for this k point occ(1+bantot:nband+bantot) <- occupation numbers for this k point do iband=1,nband write(unit) (cg(ii+index),ii=1,2*npw*nspinor) <-- wavefunction coefficients enddo for a single band and k point bantot=bantot+nband index=index+2*npw*nspinor*nband enddo enddo

To be continued ...

You might also like