Hi users,

I'm trying to compute three nbnd * nbnd matrices formed by the inner
product < \phi_i | Ox | \phi_j>, < \phi_i | Oy | \phi_j>, and < \phi_i | Oz
| \phi_j>, where these matrices are band matrices (non-zero entries form a
diagonal that couples terms one reciprocal vector in the x/y/z direction
away from each other).

Specifically, assuming we have a rectangular supercell Lx * Ly * Lz, the
operators are Ox = exp^(i 2 \pi x/Lx), Oy = exp^(i 2 \pi y/Ly), Oz = exp^(i
2 \pi z/Lz), which couples only the terms one reciprocal vector away.

Does anyone know how I might do this efficiently, rather than gathering all
wfcs onto one processor, explicitly creating the matrix, and doing a giant
dgemv?

Even if I were to do that, is there a way to lookup the index one
reciprocal vector away?

Best,
Andrew
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu)
users mailing list [email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users

Reply via email to