Collective atomic modulation analysis with irreducible space-group representation
Project description
spgrep-modulation
Collective atomic modulation analysis with irreducible space-group representation
- Github: https://github.com/phonopy/spgrep-modulation
- Document: https://phonopy.github.io/spgrep-modulation
- Document (develop): https://phonopy.github.io/spgrep-modulation/develop/
- PyPI: https://pypi.org/project/spgrep-modulation
Features
- Calculate representation matrices and irreps formed by phonon eigenmodes
- Calculate isotropy subgroups of irreps of space groups on the fly
- Generate modulated structures in selected order-parameter directions of isotropy subgroups
Usage
from pathlib import Path
import phonopy
from phonopy.structure.symmetry import Symmetry
from spgrep_modulation.modulation import Modulation
# Load Phonopy object
path = Path(__file__).resolve().parent.parent / "tests" / "phonopy_mp-2998.yaml.xz"
ph = phonopy.load(path)
# Prepare Modulation class
qpoint = [0.5, 0, 0] # X point
md = Modulation.with_supercell_and_symmetry_search(
dynamical_matrix=ph.dynamical_matrix,
supercell_matrix=[2, 2, 2],
qpoint=qpoint,
factor=ph.unit_conversion_factor,
)
# Degenerated imaginary mode
frequency_index = 0
print(f"Frequency (THz): {md.eigvals_to_frequencies(md.eigenspaces[frequency_index][0]):.2f}")
# -> Frequency (THz): -4.88
print(f"Irrep shape: {md.eigenspaces[frequency_index][2].shape}")
# -> Irrep shape: (16, 2, 2)
# Modulated cells corresponding to one-dimensional order-parameter directions of isotropy subgroup
cells = md.get_high_symmetry_modulated_supercells(frequency_index)
for cell in cells:
symmetry = Symmetry(cell)
print(f"{symmetry.dataset['international']} (No. {symmetry.dataset['number']})")
# -> Pmma (No. 51) and Cmcm (No. 63)
Installation
pip install spgrep-modulation
conda create -n modulation python=3.10 pip
conda activate modulation
git clone git@github.com:lan496/spgrep-modulation.git
cd spgrep-modulation
pip install -e .
# pip install -e ".[dev,docs,vis]"
# pre-commit install
License
spgrep-modulation is released under a BSD 3-clause license.
Development
Document
sphinx-autobuild docs docs_build
# open localhost:8000 in your browser
Acknowledgements
Some test files tests/phonopy_mp-*.yaml.xz are adapted from phonondb under CC BY 4.0.
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 spgrep_modulation-0.2.7.tar.gz.
File metadata
- Download URL: spgrep_modulation-0.2.7.tar.gz
- Upload date:
- Size: 167.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4836df147445db8a38f239f4daac7d500692608895bfd602b2f023e12a85b907
|
|
| MD5 |
7a1d1bad6a3b70c04044cb4a154b5d11
|
|
| BLAKE2b-256 |
8777352d280dfe2189973074d7691629e688d80156093b27f97309d73b01ee4e
|
File details
Details for the file spgrep_modulation-0.2.7-py3-none-any.whl.
File metadata
- Download URL: spgrep_modulation-0.2.7-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
620425e1398c422c90969e54e1369c4224ead6fd6416caa2b08169582b6dfa7e
|
|
| MD5 |
1127464ca6e23ac78ac52fc00c14b379
|
|
| BLAKE2b-256 |
db95a7e2749e2bddfb9b4e5dacd689b80c247926bf2a13f40a29d423d43ced32
|