<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 08/04/20 21:38, Duy Le wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAF-j6z8b17GAS3=XYU8RhduGBp9H64JGEnp-eva0wScKmAp0gQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Dear developers,
        <div><br>
        </div>
        <div>After reading many threads about the subject, and lot of
          testing, I still not very confident in handling the phases of
          wave functions. I would appreciate if you could help me with
          the following:</div>
        <div><br>
        </div>
        <div>1. Do all wave-functions (of all bands) of a given k-point
          have the same phase? In other words, is psi(k, ib1) psi(k,
          ib2)* gauge invariant?</div>
      </div>
    </blockquote>
    <p>no. the phase of an eigenvector is determined by the
      diagonalization routine. The safe assumption is that it's
      basically random, and for degenerate eigenvalues you can assume a
      random (unitary) rotation inside the degenerate manifold.  this is
      why in molecular dynamics simulations when you want to extrapolate
      the starting wavfunctions of a given time step from previous ones,
      before performing the extrapolation, you need to align the two (or
      more) wfc subspaces. <br>
    </p>
    <p>basically you compute W=<psi(t')|psi(t)> and built the
      unitary rotation that best align the two wfc sets from SVD of W
      ->  U  then build  |psi'(t')> = |psi(t')> U as the set at
      t' best aligned to the wfc at t.   <br>
    </p>
    <p>check routine   extrapolate_wfcs   in file update_pot.f90 in
      PW/src<br>
    </p>
    <blockquote type="cite"
cite="mid:CAF-j6z8b17GAS3=XYU8RhduGBp9H64JGEnp-eva0wScKmAp0gQ@mail.gmail.com">
      <div dir="ltr">
        <div>2. I want also to calculate 
          psi(k, ib1) psi(k2, ib2)*. How should it be done so the random
          phases of wfc do not affect the result? <br>
        </div>
      </div>
    </blockquote>
    <p>similarly random phases should be assumed ( in addition to the
      exp(+ikr) phase from the Bloch vector) so you better work with the
      periodic part of the wavefuncitons u(k)<br>
    </p>
    <p>you can compute  the matrix of the overlap of the periodic part
      of the wfcs at the two kpoints  W = < psi(k1)|
      exp(i(k1-k2)r)|psi(k2)>=<u(k1)|u(k2)>,  extract the best
      unitary transformation from that and play with it in order to
      align wfcs at different k's. this is one of the basic operation
      that Wannier 90 code peforms. <br>
    </p>
    <blockquote type="cite"
cite="mid:CAF-j6z8b17GAS3=XYU8RhduGBp9H64JGEnp-eva0wScKmAp0gQ@mail.gmail.com">
      <div dir="ltr">
        <div>3. Could you please tell me if there is any part of the
          PWSCF code that deals with phase of wave function so I can
          learn how it is done?</div>
      </div>
    </blockquote>
    <p>see above</p>
    <p>best</p>
    <p>stefano<br>
    </p>
    <blockquote type="cite"
cite="mid:CAF-j6z8b17GAS3=XYU8RhduGBp9H64JGEnp-eva0wScKmAp0gQ@mail.gmail.com">
      <div dir="ltr">
        <div><br>
        </div>
        <div>Thank you very much. Be safe!</div>
        <div><br>
        </div>
        <div>Duy Le</div>
        <div>University of Central Florida <br>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:developers@lists.quantum-espresso.org">developers@lists.quantum-espresso.org</a>
<a class="moz-txt-link-freetext" href="https://lists.quantum-espresso.org/mailman/listinfo/developers">https://lists.quantum-espresso.org/mailman/listinfo/developers</a>
</pre>
    </blockquote>
  </body>
</html>