EasyDistillation is a Python framework for lattice QCD distillation calculations — integrating the generation of Laplacian eigenvectors, perambulators, elementals, and automatic quark diagram contraction with multi-backend support (CPU / GPU).
- Multi-backend: NumPy (CPU) or CuPy/PyQuda (GPU) via unified backend interface
- Lazy loading & memory mapping: Efficient FileData system for large lattice datasets
- Full propagator support: V2V (Perambulator), P2V, V2P, P2P with time-sliced file formats
- Automatic contraction: opt_einsum-optimized quark diagram contraction with symbolic SymPy-based simplification
- Symmetry analysis: Built-in group theory support for hadron operator construction
- High-mode projection: Localized Blending method for point-source sampling
- MPI-ready: Distributed parallelism support
See Quick Reference for a getting-started guide, API cheat sheet, and common operations.
| Document | Description |
|---|---|
| Quick Reference | Fast lookup for common operations |
| Project Architecture | Full architecture and development guide |
| Data Shapes | Data type shapes and file naming conventions |
| Propagator Theory & Usage | Propagator types, memory estimates, loading examples |
| Distillation Workflow | Traditional distillation step-by-step workflow |
| Localized Blending | Theory, implementation, and appendix |
| FileData Deep Dive | File I/O architecture and performance analysis |
| Document Index | Full documentation index by scenario |
| Vector Current Workflow | Localized Blending two-point contraction workflow |
- Python ≥ 3.8
- NumPy, SciPy
- opt_einsum
- SymPy (for symbolic simplification)
Optional (GPU acceleration):
pytest tests/ -v # All tests
pytest tests/ -m "not gpu" # Skip GPU tests
pytest tests/test_perambulator.py -v # Specific testThis project is licensed under the MIT License — see LICENSE for details.