QMCPACK / QMCPACK/qmcpack

Odd permutation applied to orbitals for complex to real B-splines

Open
#4,673 2 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.