p2ptrans allows you to find the best matching between two crystal structures.
Current version: 2.1.0 (07.15.2022)
03.14.2021: VERSION 2.0 is out! See the section below for more details.
10.04.2020: Added dmin as a 4th output to the findMatching() function in p2ptrans.
8.28.2020: More detailed documentation is now available for p2ptrans and p2pint.
Version 2.0 includes a new method to find the periodicity, which means p2ptrans and p2pint become much more reliable at finding the transformation or interface structures.
In 3D, in many cases, this means that p2ptrans can be run with a smaller "-n" and still return a relevant result. Moreover, even if the optimal matching does not lead to the correct ratio specific volumes (a necessary condition for a one-to-one mapping), p2ptrans will return a transformation path that involves the creation of vacancies in one of the structures.
In 2D, the printed information has been clarified and several bugs have been fixed (see commits for details).
p2ptrans (and p2pint) can be used directly as a command-line interface (cli) or as a python package. It can be used for two main aspects:
p2ptrans can find the optimal mechanism of transformation between any two structures. It can provide the following information:
- The transformation cell
- The evolution of the structures during the transformation in the POSCAR format (ex: 60 steps)
- The total distance traveled by all the atoms during the transformation
- The principal strains and directions
- The uniformly strained plane (Habit Plane)
- The orientation relationship (constrained and unconstrained)
- An animation of the transformation from different points of view
Given the interfacial planes, p2pint finds the optimal matching between two interfaces. It can provide the following information:
- The distance between the two structures (how well they match)
- The cell of correspondence between the two structures (Interface Cell)
- The amount of strain at the interface
- A POSCAR file representing the interface for each termination
pip install git+https://github.com/ftherrien/p2ptrans
Note: If you do not have pylada, you will need to install the py module first: pip install py
- On certain systems, the pylada installation fails with
error: ‘v’ does not name a type
. If you encounter this error retry the installation with:
CXXFLAGS="-std=c++11" pip install git+https://github.com/ftherrien/p2ptrans
Please visit the documentation for p2ptrans
To run the transformation finder:
p2ptrans -I POSCAR_INITIAL -F POSCAR_FINAL
to get help:
p2ptrans --help
To run the interface finder:
p2pint -T POSCAR_TOP -B POSCAR_BOTTOM
to get help:
p2pint --help
Any contribution including raising issues is greatly appreciated.
If you use p2ptrans in your research, please cite:
Therrien, F., Graf, P., & Stevanović, V. (2020). Matching crystal structures atom-to-atom. The Journal of Chemical Physics, 152(7), 074106. ArXiv