From rapid prototyping to high-performance computing in material science
Website 🌐 | Documentation 📚 | Workshops 🧑🏫 | Questions 💬 |
---|---|---|---|
pyiron.org | pyiron.readthedocs.io | workshop.pyiron.org | pyiron/FAQs |
This project is supported by German and European digitalization initiatives in the field of materials science:
Material Digital | NFDI Matwerk | MaterialsCommons |
---|
The pyiron developers closely collaborate with workflow standardization initiatives and the Python scientific computing community to establish Python functions as workflow nodes:
Python Workflow Definition | Workflows.community | NumFocus |
---|
After the initial public release of pyiron the pyiron developers continue to extend the functionality of pyiron and prototype new workflow concepts.
The stable pyiron
version is developed based on the generic job object
class to handle the execution and storage of atomistic calculations and their post-processing.
Repository | Description | Coverage | Documentation | Conda Package |
---|---|---|---|---|
pyiron | A meta package which seamlessly loads all installed pyiron plugins. Still it is recommended to install pyiron_atomistics directly rather than pyiron . |
📚 | 📦 | |
pyiron_atomistics | An interface to atomistic simulation codes including but not limited to GPAW, LAMMPS, S/Phi/nX and VASP. It is compatible to the atomistic simulation environment and extends its functionality. | 📚 | 📦 | |
pyiron_base | A package containing the core components e.g. the job management, data storage and resource management. With the @job decorator every Python function can be converted into a pyiron job object. |
📚 | 📦 | |
pyiron_potentialfit | Fit machine learning interatomic potentials using pyiron. | 📦 |
Based on the experience with the stable pyiron version and the success of the standalone packages, the pyiron framework continues to innovate in the field of workflows for materials science.
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 |
---|---|---|---|---|
atomistics | Interfaces for atomistic simulation codes and workflows | 📚 | 📦 | |
bagofholding | Pickle-like storage for python objects with browsing, version control, and partial loading . | 📚 | 📦 | |
conda_subprocess | Run a subprocess or python function in a separate conda environment. | 📦 | ||
executorlib | Up-scale python functions for high-performance computing (HPC) | 📚 | 📦 | |
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_snippets | Short, dependency-free pieces of code that are useful for pyiron (and python in general) | 📚 | 📦 | |
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. | 📚 | 📦 | |
semantikon | Provide type hinting and interpreters for scientific context on node inputs and outputs. | 📦 | ||
sphinx_parser | Parser for the S/PHI/nX DFT simulation code. | 📦 | ||
structuretoolkit | Build, analyse and visualise atomistic structures for materials science. | 📦 |
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_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 |