Open
Conversation
Implement the Lanczos algorithm in q-space (Bloch basis) where momentum
conservation q1+q2=q_pert makes the 2-phonon sector block-diagonal,
reducing psi vector size and anharmonic computation cost by ~N_cell.
New files:
- Modules/QSpaceLanczos.py: Python class inheriting from DL.Lanczos with
Hermitian Lanczos iteration, Bloch-transformed ensemble, q-pair mapping,
and correct PG symmetry construction (Cartesian rotations from spglib
fractional coords, manual atom permutation with lattice reduction)
- Modules/tdscha_qspace.jl: Julia extension for q-space ensemble averaging
with separate D3/D4 functions and acoustic mode masking
- tests/test_qspace/test_qspace_lanczos.py: Test comparing q-space vs
real-space Green functions (match within 2.4e-7 relative error)
Key fixes during development:
- Convert spglib rotations from crystal to Cartesian coords via M@R@M^{-1}
- Replace CC.symmetries.GetIRT (gives wrong atom permutations for some
symmetries) with manual modular lattice reduction
- Include translation in Bloch phase: exp(-2πi q'·L) where L=Rτ+t-τ'
- Mask acoustic modes (ω<1e-6) in f_Y, f_psi, and chi factors
Also includes the translational projection optimization in DynamicalLanczos
(O(n^2) permutations instead of O(n^3) matmuls for gamma_only).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New usage guide section covering the QSpaceLanczos workflow (perturbation setup, mode looping, when to prefer q-space over real-space) and a new API reference page with auto-generated docs via mkdocstrings. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Computes the anharmonic phonon spectral function at the Brillouin zone boundary (X point) for SnTe using the Q-space Lanczos algorithm with the pre-existing test ensemble. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This was referenced Mar 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added a new TD-SCHA algorithm completely in q space.
This algorithm is N^2 faster than the original algorithm for the TDSCHA.
For now, we miss the Raman implementation and the 2Phonon implementation.
For the rest it seems to work correctly.