Author: Hsu Quinn
Date: March 2025
SlaterKosterTB is a Julia-based project for constructing and visualizing the electronic band structure and energy contour plots of crystalline materials using the Tight-Binding Model. The project leverages Slater-Koster coefficients to parameterize the tight-binding Hamiltonian, enabling accurate modeling of various crystal structures and orbital interactions. It is particularly suitable for studying electronic structures in solid-state physics.
- Define crystal structures and atomic orbitals.
- Generate Brillouin zone paths and compute band structures.
- Plot band structure diagrams and energy contour plots.
- Support multiple orbital types (e.g.,
s,p,dorbitals).
src/: Source code of the project, including the following modules:structure.jl: Defines crystal structures and atoms.klib.jl: Generates Brillouin zone paths.hamilton.jl: Generates Hamiltonians and computes band structures.param.jl: Defines parameters for the tight-binding model.draw.jl: Plots band structures and energy contour plots.
test/: Test codes with examples of different crystal structures (e.g., graphene, honeycomb structures).README.md: Project documentation..gitignore: Git ignore file.
Run the following commands to install the required Julia packages:
using Pkg
Pkg.add("Plots")
Pkg.add("LinearAlgebra")- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd SKTB - Run the test scripts:
Or run other test files (e.g.,
julia test/test_graphene.jl
test/test_honey.jl).
Here is an example of running test/test_graphene.jl:
- Define the crystal structure and orbitals for graphene.
- Compute the band structure along the Brillouin zone path.
- Plot the band structure and energy contour diagrams, which are saved as PNG files.
After running the test scripts, the generated image files will be saved in the current directory, such as:
band_graphene.png: Band structure diagram for graphene.contour_graphene.png: Energy contour plot for graphene.
We welcome issues and contributions! Please follow these steps:
- Fork the repository.
- Create a new branch and commit your changes.
- Submit a Pull Request.
This project is licensed under the MIT License.
Planned updates for future versions:
- I̶m̶p̶l̶e̶m̶e̶n̶t̶ ̶o̶r̶b̶i̶t̶a̶l̶ ̶p̶r̶o̶j̶e̶c̶t̶i̶o̶n̶.
- A̶d̶d̶ ̶S̶p̶i̶n̶-̶O̶r̶b̶i̶t̶ ̶C̶o̶u̶p̶l̶i̶n̶g̶ ̶(̶S̶O̶C̶)̶.̶
- Simulate ARPES (Angle-Resolved Photoemission Spectroscopy).
- R̶-̶g̶a̶u̶g̶e̶(̶n̶o̶w̶ ̶i̶s̶ ̶r̶-̶g̶a̶u̶g̶e̶)̶.̶(̶D̶E̶L̶)̶
- respense function(eg. NLO).
- Add different interactions, now all is "ii", which means only one type element in u.c.. (PRI)