Polfed.jl is a Julia package for polynomial filtering eigensolvers and
Hamiltonian tools for quantum many-body simulations.
If Polfed.jl supports your research, please cite both the overview article
and the code. This helps make the method and the software visible, reusable,
and easier to maintain for the community. Citation details are collected on the
citation page.
Version of the code: v0.1.0
Polynomial Filtering Exact Diagonalization (POLFED) is designed for eigenvalue problems of the form
where only a selected part of the spectrum is desired. The interface allows one
to target arbitrary spectral regions, while the method builds a polynomial
filter that amplifies components of a vector near the target energy
The lower part of the figure shows the original, untransformed spectrum: the eigenvalues and eigenvectors (shortly the eigenpairs) that one would like to compute, denoted with red color. The curve above it illustrates the polynomial transformation used to filter out the desired spectral region. By mapping the wanted eigenvalues to extremal values (either the largest or the smallest ones), POLFED makes the target eigenpairs accessible to Krylov/Lanczos-type methods.
The original POLFED method was introduced by Piotr Sierant and collaborators in PRL / arXiv.
For a broader overview and practical discussion, read the Polfed.jl article:
SciPost
/ arXiv.
- Lanczos and block Lanczos factorizations are supported; see Lanczos and Block Lanczos Factorization.
- Arbitrary parts of the spectrum can be targeted; see Choosing Target.
- Built-in parallelization and optimized mapping workflows are available; see Parallelization, Optimized Mapping, and Reducing Memory Access.
- Automatic optimization and custom mappings can be used for structured models; see Automatic Optimization and Custom Mapping.
- CUDA workflows are supported where available; see Working with GPUs.
- Built-in Hamiltonian constructors are provided for Quantum Sun (QSun), XXZ, and J1-J2.
- Reports expose convergence, timing, and configuration details; see Reporting and Reports, Logging, and Defaults.