Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes to calculation of wavefunction overlaps #938

Open
wants to merge 23 commits into
base: main
Choose a base branch
from

Conversation

Grimenes
Copy link

These changes indend to correct the wavefunction overlap for scattering processes crossing the Brillouin zone boundary by reordering the array with the wavefunction coefficients.

Primary changes:

  1. Include a function to calculate a mapping of the indices of the wavefunction coefficients for any zone boundary crossing. In util.py/get_g_maps.
  2. Include a function to setup interpolators of wavefunctions using gmaps for wrapped coefficients. In interpolation/periodic.p/_setup_wfc_interpolators.
  3. Use _setup_wfc_interpolators when wavefunction overlap calculators are initialized "from data". Use get_g_maps and store gmaps when wavefunction overlap calculators are initialized. In interpolation/wavefunction.py/WavefunctionOverlapCalculator.
  4. Find crossing of zone boundary by comparing absolute distance to periodic boundary distance in k-space. In scattering/calculate.py/calculate_rate for cached wfc, and in interpolation/wavefunction.py/get_overlap for non-cached wfc.
  5. Pass g_diff and g_maps to _get_overlap and _get_overlap_ncl. In scattering/calculate.py/calculate_rate for cached wfc, and in interpolation/wavefunction.py/get_overlap for non-cached wfc.
  6. Pad final wavefunction by zero for coefficient discarding. In function _get_overlap and _get_overlap_ncl in scattering/calculate.py for cached wfc, and in interpolation/wavefunction.py for non-cached wfc.
  7. Reorder wavefunction coefficients using gmaps. In function _get_overlap and _get_overlap_ncl in scattering/calculate.py for cached wfc, and in interpolation/wavefunction.py for non-cached wfc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant