[QE-developers] question about PW/src/commutator_Hx_psi.f90

Gerson J. Ferreira gersonjferreira at gmail.com
Fri Apr 15 19:21:37 CEST 2022


Dear QE Devs,

I need to calculate the matrix element of the P operator, so I'm trying to
understand the code in PW/src/commutator_Hx_psi.f90. Please check if my
understanding is correct. At the end of the email I also have a more direct
question/suggestion.

The INPUT_BANDS says that this code calculates "velocity operator i*m*[H,
x] times mass". At first I had the impression that I could understand this
as the operator (approximately)

[image: m_0 v = p+\frac{\hbar}{4m_{0}c^{2}}(\sigma\times\nabla
U)-\frac{p^{3}}{2m_{0}^{2}c^{2}}]

where the first term comes from the kinetic energy, the second from SOC,
and the third from the mass-velocity fine structure correction. I'm aware
that higher order corrections would be included as well by the FR pseudos.

Reading the code, I see that near line 77 contains only the kinetic part
(first term above), where p acting on the plane-waves gives (k+G),

77 ! this is  the kinetic contribution to [H,x]:  -2i (k+G)_ipol * psi

The code that follows after line 92, near the commented "goto 111" deals
with the commutator with the non-local potential. If I understand
correctly, for a full relativistic pseudo, this part of the code would
account for the SOC and p^3 terms above (via pseudos + Dirac equation).
Correct?

So, if I just want the matrix element of p without the fine structure
terms, I could just uncomment the "goto 111", right?

If that's correct, could you add an argument "p_only=true/false" to the
routine commutator_Hx_psi(...) that could control this behaviour? Something
like this:

-------------------------------------------------------------
subroutine commutator_Hx_psi (ik, nbnd_calc, vpol, becp1, becp2, dpsi,
p_only_)
INTEGER, OPTIONAL :: p_only_
INTEGER :: p_only
...
p_only = 0 ! default to false
if (present(p_only_)) p_only = p_only_
...
if (p_only == 1) goto 111
-------------------------------------------------------------

This modification would help me a lot! And it would not affect other codes,
since the default value of p_only is set to false.

Best,
--
Gerson J. Ferreira
Prof. Dr. @ InFis - UFU
----------------------------------------------
gjferreira.wordpress.com
Institute of Physics
Federal University of Uberlândia, Brazil
----------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20220415/8651b24f/attachment.html>


More information about the developers mailing list