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-hypernode.com/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 spgrep python=3.10 pip
conda activate spgrep
git clone git@github.com:lan496/spgrep-modulation.git
cd spgrep-modulation
pip install -e .
# pip install -e ".[dev,docs]"
# 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
spgrep_modulation-0.2.4.tar.gz
(105.6 kB
view details)
Built Distribution
File details
Details for the file spgrep_modulation-0.2.4.tar.gz
.
File metadata
- Download URL: spgrep_modulation-0.2.4.tar.gz
- Upload date:
- Size: 105.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62e85e7d03d693b52941a6268d83f1faebdad76255c4641e27d803fc29346b01 |
|
MD5 | 3658184572f8a48d3136ee2fec77a376 |
|
BLAKE2b-256 | 3a17c1a8d7da168fe88fd3aed95e9edb159c94f452da7afca863e6df5a63aaa9 |
File details
Details for the file spgrep_modulation-0.2.4-py3-none-any.whl
.
File metadata
- Download URL: spgrep_modulation-0.2.4-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 927b3eced6376bc177db39d93655193901a0d1cfb8e9dbefd567ae5001ba5d43 |
|
MD5 | b48407c60aa9bb8c2b0efdb213b9996b |
|
BLAKE2b-256 | 22b859660c537a644a0e63e67e81ffc50d9e29fb272cb5ae56119e581f7d01e8 |