kitaev_clusters Documentation¶
Welcome to the documentation for the kitaev_clusters library. Here you can find:
An overview of the library with reference paper
Package structure, requirements, and installation guide
Tutorial for spin-1 Kitaev model with single-ion anisotropy on a 12-site lattice
API documentation of the kitaev_clusters library
Overview¶
kitaev_clusters is a Python package designed for efficient Exact Diagonalization of the spin-1 Kitaev honeycomb model on finite-size clusters. This package contains a variety of functions which exploit the symmetries of the honeycomb lattice to effectively reduce the dimension of the Hilbert space. Since the components of the Hamiltonian are typically sparse matrices, we provide functions for their efficient construction in a List of Lists (LIL) format, with conversion to a Compressed Sparse Row (CSR) format (if desired) for reduced memory needs. The package also contains a number of functions to calculate the ground state, energy, and bipartite entanglement entropy. Adding single-ion anisotropy to the model is also straightforward, with functions available for measuring of the local moment in the \([1, 1, 1]\) direction.
This package was used to calculate the properties of the spin-1 Kitaev model with single ion anisotropy, on lattices with up to 18 sites, in our recent publication O. Bradley and R. R. P. Singh, Phys. Rev. B 105, L060405 (2022) (arXiv link), which provides further discussion of the model.
Package Structure¶
kitaev_clusters contains the main code files. The main modules are:
symmetry_functions: a collection of functions which use lattice symmetries to reduce the Hilbert space dimension.
hamiltonian_functions: a collection of functions for efficient construction of the sparse matrix Hamiltonian.
ground_state_functions: a collection functions for obtaining ground states and measuring physical quantities.
scripts contains example scripts showing how the library can be used.
docs contains documentation files.
tests contains units tests of functions using the pytest framework.
Requirements¶
The code has been checked to run with the following versions:
Python 3.10
NumPy 1.22.3
SciPy 1.7.3
Required libraries can be installed with the following command (after downloading the requirements.txt file from this repository):
pip install -r requirements.txt
Installation¶
The package can be installed from source via git with the following command:
git clone https://github.com/owenpb/kitaev_clusters
Units tests can be run using pytest after installation. Install pytest if needed using pip install pytest
and execute the command pytest
in the project directory to run all unit tests.
Tutorial¶
Here we work through an example of using the library to calculate the ground state properties of the spin-1 Kitaev Hamiltonian with single-ion anisotropy on a 12-site lattice:
- Tutorial: 12-site Kitaev cluster
- 1. Importing modules
- 2. Defining lattice parameters
- 3. Finding representative states
- 4. Loading representative states
- 5. Constructing components of Hamiltonian
- 6. Loading components of Hamiltonian
- 7. Specifying couplings, anisotropy, and constructing full Hamiltonian
- 8. Finding ground sate and physical properties
- 9. Freeing memory after calculations complete
Module Documentation¶
Here you can find API documentation for each function in the main modules: