Odd permutation applied to orbitals for complex to real B-splines
- Dominant language
- C++
- Stars
- 403
- Forks
- 154
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 82
Description
Uncovered while investigating #4549.
In #4549, a sudden jump in the energy is observed for bilayer graphene, which is largest in the elec-elec energy. @rcclay observed that the charge density in the problem case is asymmetric between the layers.
Here, I printed orbital values directly from QMCPACK to disk (no QMC) and integrated the per orbital charge densities to get per orbital per layer charge contributions.
Similar to @rcclay, I found one layer has more charge (74 elec on one layer, 70 on the other). The charge imbalance is observed with the complex build of QMCPACK. The real build (same inputs!) shows no such charge imbalance at the orbital level.
This suggests a possible bug in how occupations are handled in the complex code while running with real valued orbitals (gamma point).
Complex code results:
```
orbital_index orb_charge_layer1 orb_charge_layer2 cum_charge_layer1 cum_charge_layer2
68 1.0 1.0 69.0 69.0
69 1.0 1.0 70.0 70.0
70 2.0 0.0 72.0 70.0
71 2.0 0.0 74.0 70.0 (charge imbalance)
-------------------------------- <- Fermi level
72 0.0 2.0 74.0 72.0
73 0.0 2.0 74.0 74.0
74 1.0 1.0 75.0 75.0
75 1.0 1.0 76.0 76.0
```
Real code results:
```
orbital_index orb_charge_layer1 orb_charge_layer2 cum_charge_layer1 cum_charge_layer2
68 1.0 1.0 69.0 69.0
69 1.0 1.0 70.0 70.0
70 1.0 1.0 71.0 71.0
71 1.0 1.0 72.0 72.0 (charge balance)
--------------------------------
72 1.0 1.0 73.0 73.0
73 1.0 1.0 74.0 74.0
74 1.0 1.0 75.0 75.0
75 1.0 1.0 76.0 76.0
```
Contributor guide
Assessment
This issue has not been assessed yet.