WTP.jl provides a thin layer of abstractions for processing condense-phase orbitals. The library aims primarily to save ourselves from the insufferable agony of indices gymnastics without immolating all the performance. Our goal is to make condense-phase codes more concise and comprehensible with a tolerable performance sacrifice.
The software design of WTP.jl follows the way of a computer scientist (as
opposed to that of a computational scientist). I'm approaching numerical
software through thin layers of composible abstractions instead of a large
code with an extensive features and optimization.
Currently, we provide a few functionalities.
- Nonorthogonal and periodic grids: Support intuitive indexing, iteration, and Fourier transforms. This encapsulates the crystal lattice, the reciprocal lattice, the Brillouin zone, and the homecell.
- Orbitals: We provide an intuitive interface for efficient inner products, fft, various forms of indexing, folding, and translation.
- Some IO functionalities with Quantum Espresso's
wfc?.datfiles and Wannier90's.amn/.mmnfiles. WTP reads these files and associates them with a mesh for easy indexing.