Page 1 of 1

Wrong eigenvector of dynmat after interpolation

Posted: Mon Sep 26, 2016 1:55 pm
by tqzhao
Dear all,

I am checking the accuracy of eigenvector of dynmat in EPW before and after Wannier interpolation.

The system for testing is graphene, and I printed out the eigenvector and eigenvalue of the dynmat for Gamma point. I see that the eigenvectors is very different just because of small numbers in dynmat before and after interpolation. The eigenvector before interpolation is printed out as in cz1. The eigenvector after interpolation is printed out in dynwan2bloch.f90.

Since the eigenvectors are used to interpolate the el-ph couplings, I think this is an important problem I meet.

The data is as follows:

Since the unit only has two C atoms, before interpolation, it is :
Dynmat at gamma point (The imaginary part is absolute zero and has been ommited)
0.98892E-04 0.00000E+00 0.00000E+00 -0.98892E-04 0.00000E+00 0.00000E+00
0.00000E+00 0.98892E-04 0.00000E+00 0.00000E+00 -0.98892E-04 0.00000E+00
0.00000E+00 0.00000E+00 0.31650E-04 0.00000E+00 0.00000E+00 -0.31650E-04
-0.98892E-04 0.00000E+00 0.00000E+00 0.98892E-04 0.00000E+00 0.00000E+00
0.00000E+00 -0.98892E-04 0.00000E+00 0.00000E+00 0.98892E-04 0.00000E+00
0.00000E+00 0.00000E+00 -0.31650E-04 0.00000E+00 0.00000E+00 0.31650E-04

Eigenvector: (Each line is an eigenvector)
0.00000E+00 -0.70711E+00 0.00000E+00 0.00000E+00 0.00000E+00 -0.70711E+00
-0.70711E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.70711E+00 0.00000E+00
0.00000E+00 0.00000E+00 -0.70711E+00 -0.70711E+00 0.00000E+00 0.00000E+00
0.00000E+00 -0.70711E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.70711E+00
-0.70711E+00 0.00000E+00 0.00000E+00 0.00000E+00 -0.70711E+00 0.00000E+00
0.00000E+00 0.00000E+00 -0.70711E+00 0.70711E+00 0.00000E+00 0.00000E+00

Eigenvalue:
0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000
873.085987314969 1543.29835579232 1543.29835579232

after interplation:
dynmat at gamma point: (small values appeared)
0.98892E-04 -0.85372E-20 0.00000E+00 -0.98892E-04 0.41852E-11 0.00000E+00
-0.49168E-20 0.98892E-04 0.00000E+00 0.41852E-11 -0.98892E-04 0.00000E+00
0.00000E+00 0.00000E+00 0.31650E-04 0.00000E+00 0.00000E+00 -0.31650E-04
-0.98892E-04 0.41852E-11 0.00000E+00 0.98892E-04 -0.90009E-20 0.00000E+00
0.41852E-11 -0.98892E-04 0.00000E+00 -0.82165E-20 0.98892E-04 0.00000E+00
0.00000E+00 0.00000E+00 -0.31650E-04 0.00000E+00 0.00000E+00 0.31650E-04

eigenvector:
0.48406E-10 0.61237E+00 0.35355E+00 -0.61136E-23 -0.35355E+00 0.61237E+00
-0.21401E-09 -0.35355E+00 0.61237E+00 -0.11132E-15 -0.61237E+00 -0.35355E+00
0.70711E+00 -0.14893E-09 0.16113E-09 -0.70711E+00 0.51836E-16 0.29928E-16
0.48406E-10 0.61237E+00 0.35355E+00 -0.38960E-23 0.35355E+00 -0.61237E+00
-0.21401E-09 -0.35355E+00 0.61237E+00 -0.40066E-16 0.61237E+00 0.35355E+00
0.70711E+00 -0.14893E-09 0.16113E-09 0.70711E+00 -0.98753E-17 -0.57015E-17

eigenvalue:
0.264266350710401 0.513382850992079 0.616404685465330
873.085938477670 1543.29828823297 1543.29832594207

The eigenvalues are same, dynmat is different in small numbers, but the eigenvectors are very different. When I change the small numbers to absolute zero, the eigenvectors become the same before and after interpolation.

I appreciate any comments. Thank you!

Best regards,

Re: Wrong eigenvector of dynmat after interpolation

Posted: Mon Sep 26, 2016 2:56 pm
by carla.verdi
Hi,

Have you checked if the eigenvectors are the same after a phase rotation?

Best
Carla

Re: Wrong eigenvector of dynmat after interpolation

Posted: Mon Sep 26, 2016 3:27 pm
by tqzhao
In my understanding, the phase rotation cannot change zero to a non zero number. But it happened in my case. Whether my understanding is right or wrong?

Re: Wrong eigenvector of dynmat after interpolation

Posted: Mon Sep 26, 2016 3:46 pm
by sponce
Oh you could post on the forum at the end !

My reply per email:

"Dear Tianqi Zhao,

This could be related to not sufficiently accurate Wannier functions.
What is the spread of your final Wannier functions? Try to reduce it. You can increase the number of iteration during the Wannier run to converge more.

The fact that you have different eigenvectors should not be too surprising. Indeed the diagonalization of the Hamiltonian (interpolated or not) will give you eigenvectors in an arbitrary gauge.

What you have to do in order to compare eigenvectors is to rotate your gauge to be in the same gauge in both case.

You can always apply the same rotation to all your eigenvectors. Apply it so that the first eigenvectors match the one before.

I'm expecting that you will get something quite similar then.

Hope this helps,

Best,

Samuel "

Re: Wrong eigenvector of dynmat after interpolation

Posted: Mon Sep 26, 2016 10:12 pm
by tqzhao
the wannier interpolation may only affects the band interpolation and eph interpolation. But now I am only checking the interpolations of phonons. I will try to understand how to do gauge rotation. Or can you give some hints or reference on gauge rotation?

Re: Wrong eigenvector of dynmat after interpolation

Posted: Tue Sep 27, 2016 9:06 am
by sponce
Dear Tianqi Zhao,

You are correct, the phonon interpolation is done via Fourier (i.e. it does not uses the U), see. the dynwan2bloch routine.

Best,

Samuel