How to extract the electron-phonon matrix elements?

Phonons, DFPT, electron-phonon, electric-field response, mechanical response…

Moderators: mverstra, joaocarloscabreu

Locked
raul_l
Posts: 74
Joined: Sun Jan 08, 2012 7:45 pm

How to extract the electron-phonon matrix elements?

Post by raul_l » Mon Sep 14, 2015 1:17 pm

Could somebody please provide me detailed instructions for extracting the electron-phonon matrix elements from the code? For simplicity, let's take nsppol 1. Basically, this is my current understanding:

  • The array eigen1 contains the elements of the first order perturbing hamiltonian, as seen in Eq. (2) in doc/users/elphon_manual.pdf. If I write it to disk and then read into a complex array p(:,:,:), the first two indices are the final and initial bands (or vice versa, doesn't matter) and the third index is the k-point. This applies to a given direction and perturbation (q in <k+q|H'|k>) as specified by the input keywords.
  • I find the phonon eigenvalues and eigenvectors (eivec 1 for anaddb) and perform the scalar products according to Eq. (2). Taking the |...|^2 of the result gives me the transition probabilities in atomic units (frequency in Ha/hbar). For the scalar product I assume both quantities are given in the same basis (real space?).

Is this basically correct?
What I don't entirely understand is the output regarding the phonon frequencies and eigendisplacements. In my case there are 6 phonon modes. This in indeed what I see in the output except that there are two eigendisplacements for each mode. For example:

Code: Select all

  Mode number    1   Energy    0.000000E+00
 Attention : low frequency mode.
   (Could be unstable or acoustic mode)
-  1  0.00000000E+00  0.00000000E+00  1.45308842E-03
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
-  2  0.00000000E+00  0.00000000E+00  1.45308883E-03
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
  Mode number    2   Energy    0.000000E+00
 Attention : low frequency mode.
   (Could be unstable or acoustic mode)
-  1  0.00000000E+00  1.45308842E-03  0.00000000E+00
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
-  2  0.00000000E+00  1.45308883E-03  0.00000000E+00
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
  Mode number    3   Energy    0.000000E+00
 Attention : low frequency mode.
   (Could be unstable or acoustic mode)
-  1  1.45308853E-03  0.00000000E+00  0.00000000E+00
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
-  2  1.45308872E-03  0.00000000E+00  0.00000000E+00
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
  Mode number    4   Energy    3.089754E-04
-  1  0.00000000E+00  0.00000000E+00  1.41990491E-03
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
-  2  0.00000000E+00  0.00000000E+00 -1.48704785E-03
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
  Mode number    5   Energy    3.089754E-04
-  1  0.00000000E+00  1.41990491E-03  0.00000000E+00
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
-  2  0.00000000E+00 -1.48704785E-03  0.00000000E+00
-     0.00000000E+00  0.00000000E+00  0.00000000E+00
  Mode number    6   Energy    4.517583E-04
;  1  1.41990480E-03  0.00000000E+00  0.00000000E+00
;     0.00000000E+00  0.00000000E+00  0.00000000E+00
;  2 -1.48704796E-03  0.00000000E+00  0.00000000E+00
;     0.00000000E+00  0.00000000E+00  0.00000000E+00

I can see from the code that the numbers 1 and 2 refer to different atoms, but what does it mean? It gives me a total of 12 eigenvectors, which I'm not sure how to interpret. Also, apparently two modes have the same energy (degenerate) but are given the "-" symbol instead of ";". Is this correct? Finally, what does it mean that "The degenerate modes are not portable"?

Thanks
Raul Laasner
Netherlands Institute for Space Research

charlesdarnay
Posts: 16
Joined: Sun Feb 01, 2015 1:37 am

Re: How to extract the electron-phonon matrix elements?

Post by charlesdarnay » Wed Sep 16, 2015 3:03 am

Hi Raul,

I can answer one of your questions: the first line for each number (atom) is the real part, while the second line is the imaginary part.

Best,
JP
Last edited by charlesdarnay on Wed Sep 16, 2015 6:11 pm, edited 1 time in total.

raul_l
Posts: 74
Joined: Sun Jan 08, 2012 7:45 pm

Re: How to extract the electron-phonon matrix elements?

Post by raul_l » Wed Sep 16, 2015 9:21 am

Hi, it's good to see that someone else has interest in this.

charlesdarnay wrote:the first part for each number is the real part, while the second line is the imaginary part.


If I read eigen1 into a complex array, this removes the first index.
Raul Laasner
Netherlands Institute for Space Research

charlesdarnay
Posts: 16
Joined: Sun Feb 01, 2015 1:37 am

Re: How to extract the electron-phonon matrix elements?

Post by charlesdarnay » Wed Sep 16, 2015 6:22 pm

Hi, I'm not sure what you mean. I was referring to the eigendisplacements (I edited my answer a little). I guess you have a different version because I don't get the "Attention : low frequency mode." and at the top in my output I have "Eigendisplacements (will be given, for each mode : in cartesian coordinates for each atom the real part of the displacement vector, then the imaginary part of the displacement vector - absolute values smaller than 1.0d-7 are set to zero)".

charlesdarnay
Posts: 16
Joined: Sun Feb 01, 2015 1:37 am

Re: How to extract the electron-phonon matrix elements?

Post by charlesdarnay » Wed Sep 16, 2015 6:37 pm

I just noted another thing. http://www.abinit.org/doc/helpfiles/for ... html#eivec says that eivec 1 or 2 gives the phonon eigenvectors. However, the title in the log file is "Eigendisplacements". So, does the .log file contain the eigenvectors or the eigendisplacements? I guess it's the eigendisplacements because that's what the title of the section in the .log file says. In that case, it would be good this was reflected in the Abinit webpage.

raul_l
Posts: 74
Joined: Sun Jan 08, 2012 7:45 pm

Re: How to extract the electron-phonon matrix elements?

Post by raul_l » Wed Sep 16, 2015 10:32 pm

I was indeed talking about a different thing (the eigen1 array). I see now that you instead referred to the anaddb output.
anaddb should report the correct eigendisplacements, see displ at the end of 72_response/phfrq3.F90.
Raul Laasner
Netherlands Institute for Space Research

Locked