electronic wavefunctions used to define excitonic wavefunctions
Posted: Fri Dec 19, 2025 12:13 am
Hello,
I'm attempting to implement something to project the excitonic states onto atomic orbitals, specifically something like
It seems to me the overlaps <\phi_e|c_t,k_t>, <v_t,k_t|\phi_h> for the irreducible brillouin zone can either be interpreted from the atomic_proj.xml file output by quantum espresso's projwfc.x, or can be evaluated directly from the wavefunctions stored in the yambo SAVE directory, e.g. ns.wf_fragments_126_1 for k point 126, etc. I've done both of these and gotten some reasonable results.
The issue that I've run into, though, is that the A_{t,lambda} as given in the output file ndb.BS_diago_Q1 (specifically in BS_EIGENSTATES), are defined on the full brillouin zone, not the irreducible one. Naturally, I can apply the proper symmetry transformation on the spinor wavefunction at n,k to get the wavefunction at n,k' for symmetry-related k', but there is a gauge degree of freedom when doing this. Realistically, even if I do a computation without symmetry there's no guarantee that Yambo defines A_{t,lambda} |c_t,k_t><v_t,k_t| with exactly the same wavefunctions as those given in the SAVE directory with no change of phase whatsoever.
Does Yambo use some standard convention for this? Is there a way for me to directly access the wavefunctions used to define A_{t,lambda} |c_t,k_t><v_t,k_t|? Any advice is appreciated.
Best,
Miles
I'm attempting to implement something to project the excitonic states onto atomic orbitals, specifically something like
Code: Select all
<\phi_e \phi_h| \lambda> = \sum_t A_{t,lambda} <\phi_e|c_t,k_t><v_t,k_t|\phi_h>The issue that I've run into, though, is that the A_{t,lambda} as given in the output file ndb.BS_diago_Q1 (specifically in BS_EIGENSTATES), are defined on the full brillouin zone, not the irreducible one. Naturally, I can apply the proper symmetry transformation on the spinor wavefunction at n,k to get the wavefunction at n,k' for symmetry-related k', but there is a gauge degree of freedom when doing this. Realistically, even if I do a computation without symmetry there's no guarantee that Yambo defines A_{t,lambda} |c_t,k_t><v_t,k_t| with exactly the same wavefunctions as those given in the SAVE directory with no change of phase whatsoever.
Does Yambo use some standard convention for this? Is there a way for me to directly access the wavefunctions used to define A_{t,lambda} |c_t,k_t><v_t,k_t|? Any advice is appreciated.
Best,
Miles