TopologicalNumbers.jl

TopologicalNumbers logo

Documentation for TopologicalNumbers.

Stable Dev Build Status Coverage

Overview

TopologicalNumbers.jl is a Julia package designed to compute topological numbers, such as the Chern numbers and $\mathbb{Z}_2$ numbers, using a numerical approach based on the Fukui-Hatsugai-Suzuki method [1, 2], the Shiozaki method [3, 4], or method of calculating the Weyl nodes [58].

This software is released under the MIT License, please see the LICENSE file for more details. It is confirmed to work on Julia 1.10 (LTS) and 1.11.

Installation

To install TopologicalNumbers.jl, run the following command:

pkg> add TopologicalNumbers

Alternatively, you can use:

julia> using Pkg
julia> Pkg.add("TopologicalNumbers")

Package Features

This package includes the following functions:

  • Calculation of the dispersion relation.
  • Provides numerical calculation methods for various types of topological numbers.
  • Calculation of the phase diagram.
  • Compute Pfaffian and tridiagonarize skew-symmetric matrix (migration to Julia from PFAPACK [9]).
  • Utility functions for plotting.
  • Support parallel computing using MPI.

The correspondence between the spatial dimension of the system and the supported topological numbers is as follows.

Dimension Function
1D Calculation of Berry Phases ($\mathbb{Z}$)
2D Calculation of local Berry Fluxes ($\mathbb{Z}$)
Calculation of first Chern numbers ($\mathbb{Z}$)
Calculation of $\mathbb{Z}_{2}$ numbers ($\mathbb{Z}_{2}$)
3D Calculation of Weyl nodes ($\mathbb{Z}$)
Calculation of first Chern numbers in sliced Surface ($\mathbb{Z}$)
Finding Weyl points ($\mathbb{Z}$)
4D Calculation of second Chern numbers ($\mathbb{Z}$)

Contributing

User feedback is appreciated. Please create a GitHub Issue to report bugs or suggest new features, or a Pull Request to contribute to the package.