A playground for experimentation with Wannier functions (WFs).
-
Wannierization
- maximal localization for isolated bands, e.g. insulators
- disentanglement for entangled bands, e.g. metal
- parallel transport gauge
- split valence and conduction WFs
- automated initial projection for valence or conduction WFs
- constrain WF center
-
Interpolation of operators, e.g. band structure
-
Real space WFs
- output
xsf
orcube
file - evaluate operators in real space
- output
Install with the Julia package manager Pkg, just like any other registered Julia package:
pkg> add Wannier # Press ']' to enter the Pkg REPL mode.
or
julia> using Pkg; Pkg.add("Wannier")
Additionally, there is a command line interface
julia --project deps/build.jl install # install CLI
The executable will be installed in ~/.julia/bin/wannier
.
After appending ~/.julia/bin
to your $PATH
, you can use the CLI as follows:
$ wannier -h
wannier v0.1.0
Julia package for Wannier functions.
Usage
wannier <command>
...
Note since julia needs precompilation of the code, there will be some delay when running the CLI.
For example, running a maximal localization can be easily achieved by
using Wannier
model = read_w90("silicon")
U = max_localize(model)
write_amn("silicon.amn", U)
For a much more detailed overview, please see the User Guide documentation.
-
clone repo:
git clone https://github.com/qiaojunfeng/Wannier.jl
-
install pre-commit:
pre-commit install
-
test:
julia --project=. # start REPL ] # activate Pkg mode test # run tests
The docs are maintained in a dedicated repo WannierDocs.jl.
This allows us to add large tutorial files (e.g. amn
, mmn
) without bloating the main repo.
Furthermore, it also contains the docs for another two packages:
- WannierIO.jl for reading and writing files
- WannierPlots.jl for plotting band structure, etc.
The code initially started with Antoine Levitt's repo wannier, and went through a series of refactorization, bug fixes, and feature additions.
This is a research code mainly for development and testing. Issues and pull requests are welcome!