pypi badge

PolyCleaver · an ionic surface generation package

PolyCleaver PolyCleaver is a Python-based package that generates high quality vacuum-containing surfaces from bulk structures of mineral structures characterised as ionic compounds with polyatomic anions (e.g., Mg2SiO4). These include silicates, sulfides, carbonates, sulfates and phosphates, among others.

Access the web app

This algorithm is built around the pymatgen library, allowing for a high degree of customization and future enhancement for other ionic compounds. Surfaces generated using the PolyCleaver algorithm are:

  • Non-polar, allowing accurate surface reactivity calculations.

  • Stoichiometric with respect to their bulk composition, maintaining per-atom charges.

  • Due to the high energy nature of the bonds in the covalent units forming the polyatomic anions (e.g. SiO42-), cleave is carried out maintaining all covalent bonds.

This algorithm detects all structural parameters of the bulk automatically (e.g. identification of species, clustering of covalent units, calculation of coordination numbers) and performs a sub-set of cuts. These slabs are then corrected using a series of symmetry and geometry operations to generate the final structures. Geometrical parameters of the slabs (e.g. thickness, number of undercoordinated cations on the topmost layers) are easily accessible, facilitating an unsupervised high-throughput generation of surface slabs with any given set of Miller indices.

Indices and tables