From rapid prototyping to high performance computing in material science
Website 🌐 | Documentation 📚 | Workshops 🧑🏫 | Questions 💬 |
---|---|---|---|
pyiron.org | pyiron.readthedocs.io | workshop.pyiron.org | pyiron/FAQs |
After the initial public release of pyiron a number of pyiron versions have been released. They cover the same scientific applications and primarily differ in the user interface and storage interface.
The stable / classical pyiron
version is developed based on the generic job object
class to handle the execution and storage of atomistic calculations and their post-processing. It consists of the workflow manager pyiron_base
and the pyiron_atomistics
package which provides interfaces for a number of atomistic simulation codes and utilities.
Repository | Description | Coverage | Documentation | Conda Package |
---|---|---|---|---|
pyiron_atomistics | An interface to atomistic simulation codes including but not limited to GPAW, LAMMPS, S/Phi/nX and VASP. | 📚 | 📦 | |
pyiron_base | A package for the core components e.g. the job management, data storage and resource management. | 📚 | 📦 |
As part of the Exascale Atomistic Capability for Accuracy, Length, and Time (EXAALT) project, a pyiron version following the functional programming paradigm was developed to up-scale atomistic workflows to the Exascale. This minimal version is focused on performance and closly follows the user interface of the Python standard library. While initially developed specifically for Exascale computers it has been extended to support high performance computers (HPC) of any size. Furthermore, it fully separates the workflow component executorlib
and the scientific component atomistics
, meaning both can be either used as standalone packages or together. In contrast to the stable / classical pyiron version the minimal pyiron version does not provide any storage backend or database. The users are responsible to store their data.
Repository | Description | Coverage | Documentation | Conda Package |
---|---|---|---|---|
atomistics | Interfaces for atomistic simulation codes and workflows | 📚 | 📦 | |
executorlib | Up-scale python functions for high performance computing (HPC) | 📚 | 📦 |
Based on the experience with the stable / classical pyiron version and the success of the minimal pyiron version, the pyiron framework continues to innovate in the field of workflows for materials science. At the current stage pyiron_workflow
is planned to be the future replacement of pyiron_base
towards a more functional approach to workflows, including a visual programming interface and hash based data storage.
Repository | Description | Coverage | Documentation | Conda Package |
---|---|---|---|---|
ironflow | Prototype of a graphical user interface for pyiron (not under active development) | 📦 | ||
pyiron_workflow | Graph-and-node based workflows | 📚 | 📦 | |
pyironFlow | React xyflow based visual programming interface for pyiron_workflow | 📦 |
In addition to the diffierent pyiron versions, the pyiron Github organisation hosts a number of tools and utilities which have been developed as part of the pyiron project.
To increase the maintainability of the pyiron
project, there is a continuous release of spin-off packages which are used inside pyiron
, but which can also be used as stand-alone packages:
Repository | Description | Coverage | Documentation | Conda Package |
---|---|---|---|---|
conda_subprocess | Run a subprocess or python function in a separate conda environment. | 📦 | ||
pyfileindex | Pythonic file system index | 📦 | ||
pyiron_lammps | Parser for LAMMPS input and output files. | 📦 | ||
pyiron_ontology | Leveraging ontologies for dynamic typing and guided workflow design | 📚 | 📦 | |
pyiron_vasp | Parser for the Vienna Ab initio Simulation Package (VASP). | 📦 | ||
pylammpsmpi | Parallel Lammps Python interface - control a mpi4py parallel LAMMPS instance from a serial python process or a Jupyter notebook. | 📦 | ||
pysqa | Simple HPC queuing system adapter for Python on based jinja templates to automate the submission script creation. | 📚 | 📦 | |
structuretoolkit | Build, analyse and visualise atomistic structures for materials science. | 📦 |
Beyond the application to atomistic simulation as part of the pyiron_atomistics
package, the workflow manager pyiron_base
is not limited to atomistic simulation. So the team of pyiron developers in collaboration with MaterialDigital and NFDI Matwerk developed a series of pyiron extensions for different application in materials science.
Repository | Description | Coverage | Documentation | Conda Package |
---|---|---|---|---|
pyiron | A meta package which seamlessly loads all the pyiron plugins installed on a given system. | 📦 | ||
pyiron_contrib | A package to collect contributions from the community and/or bleeding edge developments. | 📚 | 📦 | |
pyiron_dpd | Automated Defect Phase Diagrams and Workflow Prototypes. | |||
pyiron_electrochemistry | Workflows and analysis tools for computational electrochemistry using pyiron. | |||
pyiron_experimental | Post processing workflows for experimental applications. | 📦 | ||
pyiron_gpl | A package for all interfaces which require a GPL license (default for pyiron is BSD). | 📦 | ||
pyiron_gui | Extended graphical user interface (GUI) for the stable pyiron version | 📦 | ||
pyiron_potentialfit | Fit machine learning interatomic potentials using pyiron. | 📦 |
In addition to the pyiron
software packages in this organisation, there are a couple of repositories to automate the maintainence of the pyiron project:
Repository | Description |
---|---|
actions | A centralized location for our GitHub actions |
docker-stacks | Ready-to-run Docker images containing pyiron applications |
pyiron-installer | pyiron installer based on conda constructor |
pyiron_module_template | A template to generate a new pyiron module. |
pyiron-publication-template | Template repository - how to publish your pyiron workflow |
pyiron-resources | Resource folder for pyiron - an integrated development environment (IDE) for computational materials science. |
Example publication demonstrating how pyiron
accelerates research and covers the whole simulation life cycle up to the publication of the results:
Repository | Title | Authors | Journal |
---|---|---|---|
pyiron_meltingpoint | A fully automated approach to calculate the melting temperature of elemental crystals | Li-Fang Zhu, Jan Janssen, Shoji Ishibashi, Fritz Körmann, Blazej Grabowski and Joerg Neugebauer | Computational Materials Science 187, 110065 |
pyiron_generalized_dipole | Generalized dipole correction for charged surfaces in the repeated-slab approach | Christoph Freysoldt, Arpit Mishra, Michael Ashton and Joerg Neugebauer | Physical Review B 102, 045403 |
pyiron_md_montecarlo | Interplay of Chemistry and Faceting at Grain Boundaries in a Model Al Alloy | Huan Zhao, Liam Huber, Wenjun Lu, Nicolas J. Peter, Dayong An, Frédéric De Geuser, Gerhard Dehm, Dirk Ponge, Joerg Neugebauer, Baptiste Gault and Dierk Raabe | Physical Review Letters 124, 106102 |