Skip to content

Julia library for Exact Diagonalization of quantum many-body systems

License

Notifications You must be signed in to change notification settings

awietek/XDiag.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

license docs Linux CI Mac OSX CI DOI

XDiag

High-performance Yxact Diagonalization Routines and Algorithms

A Julia library to perform efficient Exact Diagonalizations of quantum many body systems.

Features:

  • Basic algebra of operators in quantum many-body systems
  • Iterative linear algebra for computing eigendecompositions and time-evolutions (e.g. Lanczos algorithm)
  • Local spin, t-J, or fermionic models
  • Full support of generic space group symmetries
  • parallelization using OpenMP
  • based on C++ library xdiag

Installation:

Enter the package mode using ] in the Julia REPL and add the following two packages

add https://github.com/awietek/XDiag_jll.jl.git
add https://github.com/awietek/XDiag.jl.git

Example Code:

using XDiag

let 
    n_sites = 16;
    nup = n_sites ÷ 2;
    block = Spinhalf(n_sites, nup);
    
    # Define the nearest-neighbor Heisenberg model
    bonds = BondList()
    for i in 1:n_sites
        bonds += Bond("HB", "J", [i-1, i % n_sites])
    end
    bonds["J"] = 1.0;

    set_verbosity(2);             # set verbosity for monitoring progress
    e0 = eigval0(bonds, block);   # compute ground state energy

    println("Ground state energy: $e0");
end

Documentation

The full documentation is available at awietek.github.io/xdiag.

About

author: Alexander Wietek license: Apache License 2.0

About

Julia library for Exact Diagonalization of quantum many-body systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages