symphon: use phonopy to find the irreducible representations of the phonon modes from anaddb output. It is a simple wrapper of the Phonopy irreps module.
Project description
symphon
A simple wrapper of the phonopy irreps module for finding irreducible representations of phonon modes in ABINIT's anaddb output.
Features
- Automatic high-symmetry analysis: Analyzes all high-symmetry k-points (GM, X, M, R, etc.) automatically
- Dual-label display at Gamma: Shows both Mulliken (T1u, Eg, etc.) and BCS (GM4-, GM5+, etc.) notation side-by-side
- Spectroscopic activity: Identifies IR- and Raman-active modes at Γ point
- Multiple input formats: Supports both anaddb PHBST NetCDF files and phonopy params/YAML files
- Dual backend support:
phonopybackend: Γ-point analysis with IR/Raman activity (used automatically at Gamma)irrepbackend: Non-Gamma point analysis using theirreppackage (used automatically for other points)
- CLI and Python API: Flexible usage through command-line tools or Python functions
- Complete symmetry information: Reports both space group and point group for the crystal
Installation
Basic Installation
Install from PyPI:
pip install symphon
Optional Dependencies
For non-Gamma phonons (k-points other than Γ), install with the irrep backend:
pip install "symphon[irrep]"
For ABINIT support (reading PHBST NetCDF files), install with the abipy optional dependency:
pip install "symphon[abipy]"
To install all optional dependencies:
pip install "symphon[irrep,abipy]"
Documentation
- Usage Guide: Complete API and CLI reference with examples for all features
- Irreducible Representation Labeling Guide: Mathematical foundations, Mulliken notation, and tutorial for non-Gamma phonons (e.g., X and M points in BaTiO3)
- IR and Raman Activity Methodology: Scientific guide to the group-theoretical method used to identify spectroscopic activity, with TmFeO3 case study
Quick Start
Python API
from symphon import print_irreps_phonopy
# Analyze any q-point (backend auto-selected)
print_irreps_phonopy("phonopy_params.yaml", qpoint=[0, 0, 0]) # Gamma
print_irreps_phonopy("phonopy_params.yaml", qpoint=[0.5, 0.5, 0]) # M point
Command Line
Unified CLI (symphon)
All functionality is available through the unified symphon CLI:
# Phonon irreps from phonopy (auto-discovers all high-symmetry k-points)
symphon phonopy-irreps --params phonopy_params.yaml
# Phonon irreps from anaddb (auto-discovers high-symmetry q-points)
symphon anaddb-irreps --phbst run_PHBST.nc
# With chiral transition analysis
symphon phonopy-irreps --params phonopy_params.yaml --chiral
# Find chiral phase transitions from space groups
symphon find-chiral-transition --sg 136
# Magnetic chirality analysis
symphon magnetic-chiral --structure POSCAR --qpoint 0 0 0.5 --mag-sites 0,1
symphon abstract-magnetic --spg 221 --qpoint 0 0 0
symphon msg 18.16
phonopy-irreps (Auto-discovery mode)
# Analyze all high-symmetry k-points automatically
symphon phonopy-irreps --params phonopy_params.yaml
# Output shows all high-symmetry points:
# - GM point: dual labels (Mulliken + BCS) + IR/Raman activity
# - Other points (M, R, X, etc.): BCS labels
anaddb-irreps (Auto-discovery or manual mode)
# Auto-discover all high-symmetry q-points (using standalone command)
anaddb-irreps --phbst run_PHBST.nc
# Or using unified CLI
symphon anaddb-irreps --phbst run_PHBST.nc
# Or analyze specific q-point (0-based index)
symphon anaddb-irreps --phbst run_PHBST.nc --q-index 0
Output Examples
Automatic high-symmetry analysis (phonopy-irreps)
When you run phonopy-irreps --params phonopy_params.yaml, it automatically:
- Discovers all high-symmetry k-points from the space group
- Shows dual labels (Mulliken + BCS) at Gamma point with IR/Raman activity
- Shows BCS labels for other high-symmetry points
Space group: Pm-3m
Found 4 high-symmetry points:
GM: k=(0.0, 0.0, 0.0)
M: k=(0.5, 0.5, 0.0)
R: k=(0.5, 0.5, 0.5)
X: k=(0.0, 0.5, 0.0)
# GM point (k=(0.0, 0.0, 0.0))
============================================================
q-point: [0.0000, 0.0000, 0.0000]
Space group: Pm-3m
Point group: m-3m
# qx qy qz band freq(THz) freq(cm-1) label(M) label(BCS) IR Raman
0.0000 0.0000 0.0000 0 -6.0487 -201.76 T1u GM4- Y .
0.0000 0.0000 0.0000 9 8.5335 284.65 T2u GM5- . .
# X point (k=(0.0, 0.5, 0.0))
============================================================
q-point: [0.0000, 0.5000, 0.0000]
Space group: Pm-3m
Point group: m-3m
# qx qy qz band freq(THz) freq(cm-1) label
0.0000 0.5000 0.0000 0 -4.8804 -162.79 X5+
0.0000 0.5000 0.0000 2 3.3171 110.65 X5-
Examples
See examples/MoS2_1T/ for a complete working example with MoS2 1T structure using anaddb output.
See docs/irreps_guide.md for BaTiO3 examples demonstrating both Gamma and non-Gamma point analysis.
Technical Notes
K-point Coordinate Systems
The irrep backend requires careful handling of k-point coordinates:
irreptablespackage: Provides k-points in reference unit cell coordinatesirreppackage: Expects k-points in primitive unit cell coordinates
For certain space groups, a coordinate transformation is required. Currently implemented:
- Pnma (space group 62): Cyclic permutation
k_prim = (k_z, k_x, k_y)- Transformation matrix:
[[0,0,1], [1,0,0], [0,1,0]] - Verified with TmFeO3 structure (all 8 high-symmetry points work correctly)
- Transformation matrix:
Symmetry Precision
The symprec parameter controls tolerance for symmetry detection and atom mapping:
- Default:
1e-5(standard phonopy default) - Both phonopy and irrep backends now use the same
symprecvalue consistently - For low-symmetry or distorted structures, increase
symprec(e.g.,1e-2or1e-3)
License
BSD-2-clause
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 symphon-0.2.1.tar.gz.
File metadata
- Download URL: symphon-0.2.1.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40cd7873ae997adf63497be624f9c839acb5c20a1c0abdc2963db435343a6c15
|
|
| MD5 |
233e0b39e79aca7dd5b3cab218bdc932
|
|
| BLAKE2b-256 |
8d9873ef338c1bb42bd6a1d44d3110c3e59a2ffe7893014f4d85354f54d8ce9f
|
File details
Details for the file symphon-0.2.1-py3-none-any.whl.
File metadata
- Download URL: symphon-0.2.1-py3-none-any.whl
- Upload date:
- Size: 70.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
057e34745720caf462f51a76f96661968c2f3a89a4b95c7cce7891cd5f469a28
|
|
| MD5 |
40df688144069006d7d2c39f344cfe31
|
|
| BLAKE2b-256 |
ea08e336a0f08a369b6fe4abbb1b3785dae9c90db32b03ed48ea248af673dbbb
|