A tight-binding model package for altermagnets
Project description
PyAMTB
A Python package for tight-binding model calculations for altermagnets.
Introduction
PyAMTB (Python Altermagnet Tight Binding) is built on top of the PythTB package, providing specialized tight-binding model calculations for altermagnets. It extends PythTB's capabilities by adding direct support for POSCAR structure files and altermagnet-specific features.
Features
- Tight-binding model calculations for altermagnets
- Support for various lattice structures
- Band structure calculations
- Easy configuration through TOML files
- Command-line interface for quick calculations
Installation
From PyPI
pip install pyamtb
From source
git clone https://github.com/ooteki-teo/pyamtb.git
cd pyamtb
pip install -e .
Usage
Command Line Interface
The package provides a command-line interface for easy calculations:
# Show help and available commands
pyamtb --help
# Calculate distances between atoms
pyamtb distance --poscar POSCAR --element1 Mn --element2 N
# create a template.toml file
pyamtb template
# Calculate band structure using configuration file
pyamtb calculate --config config.toml --poscar POSCAR
Configuration
The package uses TOML files for configuration. Here's an example configuration file (config.toml):
# Basic parameters
dimk = 3 # Dimension of k-space (1, 2, or 3)
dimr = 3 # Dimension of real space
nspin = 2 # Number of spin components (1 or 2)
a0 = 1.0 # Lattice constant scaling factor
# Band structure calculation
k_path = ["G", "X", "M", "G"] # k-point path
num_k_points = 100 # Number of k-points
k_labels = ["Γ", "X", "M", "Γ"] # k-point labels
# Hopping parameters
t0 = 1.0 # Reference hopping strength
t0_distance = 2.0 # Reference distance
hopping_decay = 1.0 # Decay parameter
max_neighbors = 2 # Maximum number of neighbors to consider
max_distance = 10.0 # Maximum hopping distance
min_distance = 0.1 # Minimum hopping distance
# Onsite energy and magnetism
onsite_energy = [0.0, 0.0] # Onsite energy for each atom
magnetic_moment = 1.0 # Magnetic moment
magnetic_order = "++--" # Magnetic order pattern
# Output settings
output_filename = "band_structure"
output_format = "png"
savedir = "."
# Debug options
is_print_tb_model = false
is_print_tb_model_hop = false
is_check_flat_bands = true
is_black_degenerate_bands = true
energy_threshold = 0.00001 # used in flat band checking.
Python API
You can also use the package in your Python code:
from pyamtb import Parameters, calculate_band_structure, create_pythtb_model
# Load parameters from TOML file
params = Parameters("config.toml")
# Create pythtb tight-binding model
model = create_pythtb_model("POSCAR", params) # this is pythtb tb_model, you may use it for furthur study.
# Calculate band structure
calculate_band_structure(model, params)
Development
Running Tests
pip install -e ".[dev]"
pytest
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Citation
If you use this package in your research, please cite:
@software{pyamtb,
author = {Dinghui Wang, Junting Zhang, Yu Xie},
title = {PyAMTB: A Python package for tight-binding model calculations},
year = {2025},
url = {https://github.com/ooteki-teo/pyamtb.git}
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyamtb-0.1.4.tar.gz.
File metadata
- Download URL: pyamtb-0.1.4.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdf9b12a6e04d411d0af0c89a56a88cb8988e5dc9c0eb32207202c1734445cd9
|
|
| MD5 |
dd75baeaa2c7a022643240b40262d7e2
|
|
| BLAKE2b-256 |
f6a5db122b61f1c412c361f1970fa90cc0ede417970a8f8531efda05552ce373
|
File details
Details for the file pyamtb-0.1.4-py2.py3-none-any.whl.
File metadata
- Download URL: pyamtb-0.1.4-py2.py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f24e2e61cdcd5b0a259ccf5fb65b94d42f4852e72dd5aab30c1f0b90a1333f72
|
|
| MD5 |
e565455b59bf4d2d91179238566f8436
|
|
| BLAKE2b-256 |
3521febe9e0313ff49ab1a641afd6eec49b218875b32c6f13f4653e3c7867fba
|