Currently the next version (0.4) of sqsgenerator is 🏗️ under construction. It is intended to be more or less a major rewrite. Hence, if you have some ⭐ feature requests or ⬆️ improvement ideas, feel free to let me know:
Here is a link to the 🗣️ discussion thread
sqsgenerator is a Python package, which allows you to generate optimised Special-Quasirandom-Structures (SQS). Therefore the package use Warren-Cowley Short-Range-Order (SRO) parameters to quantify randomness. sqsgenerator can be also used to analyse SRO parameters in existing structures. The core routines are written in C++
- 🔌 Easy integration with popular frameworks such as ase, pymatgen and pyiron
- ➰ Monte-Carlo and systematic approach to compute optimal atomic configuration
- 🚀 Carefully hand-crafted low-level C++ routines, for efficient calculation of short-range-order
- 🔀 OpenMP parallelized by default, with additional support for MPI parallelization
- 📦 Light dependency footprint
- 🍼 Intuitive to use
- 📟 command line interface
- You can find the online documentation here
- Learn how to get started!
- For a more in-depth insight, you can read our research article
I would highly, appreciate, if you cite our article in case you use the software in your research. Here is the BibTeX entry. Many thanks in advance 😄
The easiest way to install sqsgenerator is to use conda package manager. sqsgenerator is deployed on the conda-forge channel. To install use:
conda install -c conda-forge sqsgenerator
- The version published on Anaconda Cloud is capable of OpenMP parallelization only
- ase, pyiron and pymatgen are not required to install sqsgenerator. However, we strongly encourage you to install at least one of them. sqsgenerator uses those packages as backends to export the generated structures
On HPC systems where also MPI support, and optimized binaries are desirable, it's highly recommended to build sqsgenerator yourself. An extensive installation guide can be found in the documentation. The following prerequisites are needed:
- a C++17 enabled compiler, with OpenMP support
- Python >= 3.6 *
- numpy **
- boost libraries,
- Boost.Python compatible with your Python interpreter*
- Boost.Python (numpy) extensions compatible with you environment* ,**