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

Transforming eigenmodes #7

Open
sp94 opened this issue Sep 19, 2020 · 0 comments
Open

Transforming eigenmodes #7

sp94 opened this issue Sep 19, 2020 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@sp94
Copy link
Owner

sp94 commented Sep 19, 2020

We should provide users with a simple interface for transformation eigenmodes.

Sometimes an analysis requires us rotate or mirror an eigenmode (eg studying symmetry eigenvalues) or to shift it by a reciprocal lattice vector in k-space (we already do this when calculating 'open' Wilson loops that begin and end at same k-point, but in different Brillouin zones).

The user should define the transformation with a k_map(k).
For example, inversion and a shift by a lattice vector would be k_map(k) = -k + b1

transform(mode, k_map) should return a new Mode where

  • new_mode.basis == old_mode.basis
  • new_mode.k0 == k_map(old_mode.k0)
  • new_mode.data[i_] = old_mode.data[i] where the data has been rearranged such that...
    • k_map([basis.kxs[i_], basis.kyx[i_]]) == [basis.kxs[i], basis.kys[i]]

transform(mode, k_map) can then replace the shift_k0 function used by wilson_loop_matrix, as well as be used in other applications

@sp94 sp94 added the enhancement New feature or request label Sep 19, 2020
@sp94 sp94 added this to the v0.2 milestone Sep 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant