Abstract

We present a Python package for the efficient generation of special quasi-random structures (SQS) for atomic-scale calculations of disordered systems. Both, a Monte-Carlo approach or a systematic enumeration of structures can be used to carry out optimizations to ensure the best optimal configuration is found for given cell size and composition. We present a measure of randomness based on Warren-Cowley short-range order parameters allowing for fast analysis of atomic structures. Hence, optimal structures are found in a reasonable time for several dozens or even hundreds of atoms. Both SQS optimizations and analysis of structures can be carried out via a command-line interface or a Python API. Additional features, such as optimization towards partial ordering or independent sublattices allow the generation of atomistic models of modern complex materials. Moreover, hybrid parallelization, as well as distribution of vacancies, are supported. The output data format is compatible with ase, pymatgen and pyiron packages to be easily embeddable in complex simulation workflows. Program summaryProgram title: sqsgeneratorCPC Library link to program files:https://doi.org/10.17632/m2sb3wzcvc.1Developer's repository link:https://github.com/dgehringer/sqsgeneratorLicensing provisions: MITProgramming language: Python, C++Supplementary material:https://sqsgenerator.readthedocs.ioNature of problem: Many technological relevant materials, exhibit a crystalline disorder. Within atomistic modelling approaches such as Density Functional Theory (DFT) or Molecular Dynamics, disorder is modelled with a cell containing a (small) finite set of atoms. Such an atomic configuration is usually found by enumerating structures. However, since configurational space is growing exponentially efficient tools are needed to sample it properly.Solution method: Efficient quantification of disorder using a generalization of Warren-Cowley Short Range Order (WC-SRO) parameters [1,2]. By either a Monte-Carlo approach or systematic enumeration, optimal structures can be found. The software is distributed as a Python package offering a command line interface. Core parts are written in C++ and exhibit shared (OpenMP) and distributed (MPI) memory parallelism. For embedding into complex simulation workflows, the tool exposes a Python API to integrate into popular packages such as ase [3], pymatgen [4] or pyiron [5].

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.