Skip to main content

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

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. 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

pyamtb-0.1.4.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyamtb-0.1.4-py2.py3-none-any.whl (23.0 kB view details)

Uploaded Python 2Python 3

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

Hashes for pyamtb-0.1.4.tar.gz
Algorithm Hash digest
SHA256 fdf9b12a6e04d411d0af0c89a56a88cb8988e5dc9c0eb32207202c1734445cd9
MD5 dd75baeaa2c7a022643240b40262d7e2
BLAKE2b-256 f6a5db122b61f1c412c361f1970fa90cc0ede417970a8f8531efda05552ce373

See more details on using hashes here.

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

Hashes for pyamtb-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f24e2e61cdcd5b0a259ccf5fb65b94d42f4852e72dd5aab30c1f0b90a1333f72
MD5 e565455b59bf4d2d91179238566f8436
BLAKE2b-256 3521febe9e0313ff49ab1a641afd6eec49b218875b32c6f13f4653e3c7867fba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page