CRYSTALpytools: A Python infrastructure for the Crystal code
CRYSTALpytools is an open source Python project available on GitHub that implements a user-friendly interface to the Crystal code for quantum-mechanical condensed matter simulations. CRYSTALpytools provides functionalities to: i) write and read Crystal input and output files for a range of calculations (single-point, electronic structure, geometry optimization, harmonic and quasi-harmonic lattice dynamics, elastic tensor evaluation, topological analysis of the electron density, electron transport, and others); ii) extract relevant information; iii) create workflows; iv) post-process computed quantities, and v) plot results in a variety of styles for rapid and precise visual analysis. Furthermore, CRYSTALpytools allows the user to translate Crystal objects (the central data structure of the project) to and from the Structure and Atoms objects of the pymatgen and ASE libraries, respectively. These tools can be used to create, manipulate and visualise complicated structures and write them efficiently to Crystal input files. Jupyter Notebooks have also been developed for the less Python savvy users to guide them in the use of CRYSTALpytools through a user-friendly graphical interface with predefined workflows to complete different specific tasks.