Skip to main content

Enumerating and analyzing crystal-structure matches for solid-solid phase transitions.

Project description

Crystmatch

Introduction

A solid-solid phase transition establishes an atom-to-atom correspondence between the initial and final crystal structures $\mathcal A$ and $\mathcal B$. Such correspondence is called a crystal-structure match (CSM). A CSM can be described by a pair of POSCAR files, which specifies how the lattice deforms from $\mathcal A$ to $\mathcal B$ and the correspondence between atoms in a supercell of $\mathcal A$ and those in $\mathcal B$.

The main functions of crystmatch are as follows:

  • Enumeration:

    • Provide a complete list of representative CSMs between $\mathcal A$ and $\mathcal B$, with user-specified upper bounds on the multiplicity and strain.
    • Provide a complete list of CSMs with user-specified upper bounds on the multiplicity, strain, and shuffle distance.
  • Analysis:

    • Read a CSM from a pair of POSCAR files, and save CSMs in the same format.
    • Calculate the root-mean-square strain (RMSS), estimated strain energy density, and shuffle distance (RMSD) for each CSM.
    • Benchmark each CSM by its deviation angle from a given orientation relationship.
    • Visualize the distribution of strain, shuffle distance, and multiplicity of CSMs in a 2D scatter plot.
    • Visualize a CSM in a 3D interactive plot.

Congruent CSMs (those differ only by a space-group transformation) are identified and excluded from the enumeration using the Spglib library by Atsushi Togo et al.

Installation

Make sure you have Python 3.9 or later installed. You can check it by running:

python3 --version

To install the latest version of crystmatch, run:

pip3 install --upgrade numpy scipy spglib numba matplotlib
pip3 install --upgrade crystmatch

Check whether crystmatch is successfully installed:

crystmatch --version

How to cite

If you use crystmatch in your research, please cite one of the following paper:

  • Crystal-Structure Matches in Solid-Solid Phase Transitions

    Physical Review Letters 132, 086101 (2024)

    @article{wang2024crystal,
        title={Crystal-Structure Matches in Solid-Solid Phase Transitions},
        author={Wang, Fang-Cheng and Ye, Qi-Jun and Zhu, Yu-Cheng and Li, Xin-Zheng},
        journal={Phys. Rev. Lett.},
        volume={132},
        number={8},
        pages={086101},
        year={2024},
        publisher={APS},
        doi={10.1103/PhysRevLett.132.086101}
    }
    
  • Classification and Enumeration of Solid-Solid Phase Transition Mechanisms

    Under review (2025)

    @article{wang2025classification,
        title={Classification and Enumeration of Solid-Solid Phase Transition Mechanisms},
        author={Wang, Fang-Cheng and Ye, Qi-Jun and Zhu, Yu-Cheng and Li, Xin-Zheng},
        journal={arXiv:2506.05105},
        year={2025},
        doi={10.48550/arXiv.2506.05105}
    }
    

Usage

crystmatch can be used both as a command-line tool and as a Python module; see the documentation for details.

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

crystmatch-2.1.3.tar.gz (102.6 kB view details)

Uploaded Source

Built Distribution

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

crystmatch-2.1.3-py3-none-any.whl (104.7 kB view details)

Uploaded Python 3

File details

Details for the file crystmatch-2.1.3.tar.gz.

File metadata

  • Download URL: crystmatch-2.1.3.tar.gz
  • Upload date:
  • Size: 102.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for crystmatch-2.1.3.tar.gz
Algorithm Hash digest
SHA256 ac83a066a0e84a637e55aad41bda7081b690d3d21bbdc50921c9a8cf79f24f91
MD5 103f47d6f60edb7e9884af418f6b369f
BLAKE2b-256 69206b624c955d4d7d381a10a3234c8cc3aae03bc44e723b1c3dc08837791e11

See more details on using hashes here.

File details

Details for the file crystmatch-2.1.3-py3-none-any.whl.

File metadata

  • Download URL: crystmatch-2.1.3-py3-none-any.whl
  • Upload date:
  • Size: 104.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for crystmatch-2.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2d4dffad77a7b7c0f82533239789568637e79518a3b2526329c3f8463578a03b
MD5 6d2e0b0bf7923fdcd459d7cec6a3d4ce
BLAKE2b-256 fe3c6d873a87c48d2cba73e5145a323b3aa9bdf5f3a04ef8de17fb51d441ed8b

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