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

Wavevector symmetries #86

Merged
merged 36 commits into from
Dec 8, 2020
Merged

Wavevector symmetries #86

merged 36 commits into from
Dec 8, 2020

Conversation

cepellotti
Copy link
Collaborator

Implemented symmetries for both phonon and electron BTE.
Eliminated the IrreduciblePoints class: the logic of irreducible points is now in the base class Points(), and is triggered by a call to setIrreduciblePoints (not done by default as one may have too many points to work on). Also, the irreducible points may be analyzed comparing either the wavevectors or both (group velocity+wavevectors). For the BTE, one must analyze the symmetries of the velocity operator, not the list of wavevectors.
Note that results are close to those without symmetries, but not exactly the same, which may be a numerical error of the symmetries of the input data errors. By default, the code doesn't use symmetries.

1) Helper class was called with inverted arguments.
2) Helper class was assigning k2 to the outer band structure.
3) Electron scattering rate was missing some 2Pi factors.
…sults w.r.t. the number of Q/K points.

To avoid possible future confusions, we now normalize by the user's input wavevector grids (easier, since the number of q/k points in a bandstructure may vary).
Simplified the dot() member of scatteringmatrix.
Phonons seem to work fine.
However, I still need to debug electrons, as I noticed a problem with the symmetries of the velocity operator.
…ed the problem enforcing strong-typing in getWavevector.

Improvement: activeBandStructure.getWavevector was returining coordinates through Point(), now it should be faster.
Added test to double check symmetries in the phonon active band structure.
Debug is still ongoing.
…m by symmetry.

Now, the rotations mapping reducible to irreducible points are determined by comparing both wavevectors and velocities, if passed in input.
Updated the test to check that rotated velocities are correct within a small error.
…left copied from the phonon case. Now they are parallelized as expected.

Bugfix: both electron and phonon scattering matrix was defining bte indices using reducible wavevectors, which should not be done. Now bte indices are calculated from the irreducible points.
Bugfix: the method stateToBte in bandstructure was implemented incorrectly, now it works as expected.
Electron viscosity now working for the exact electron BTE.
Relaxon solver of electron BTE works now with and without symmetries.
…ived the same contribution twice from different MPI processes.
…case with symmetries in presence of MPI parallelization.
…he scattering matrix has now been made faster (replacing a double nested loop with a single one)
…struction of indices for the scattering matrix in case of linewidth construction.
…ss through integers: now only stateIndices are accepted as arguments.
Correcting github action validation of json files.
…d due to the missing 4Pi factors in the scattering matrix.
Combining the named variables DimIndex and CartIndex.
@cepellotti cepellotti merged commit 30b75a5 into develop Dec 8, 2020
@cepellotti cepellotti deleted the symmetries2 branch December 8, 2020 01:10
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.

None yet

1 participant