Reproducible
Capture parameters, environments, provenance and execution context so that computational results can be inspected and repeated.
Software
Simulation results are only as reliable as the software that produces them. The group develops open-source tools that make computational materials science reproducible, interoperable and scalable – and uses them in its own research.
An integrated development environment for computational materials science.
pyiron combines structure generation, simulation codes such as DFT and LAMMPS, job management and data storage in a single Python interface. It turns complex simulation protocols – up to complete phase diagrams – into reusable, automated workflows.
Scale ordinary Python functions from local processes to high-performance computing resources.
executorlib extends the Executor interface of the Python standard library to HPC job schedulers such as SLURM and flux. Researchers develop on a laptop and run the same code on supercomputers, including hierarchical workflows with heterogeneous resources.
Share one workflow between different workflow management systems.
An exchange format for workflows built from Python functions, currently supported by AiiDA, jobflow and pyiron. It separates the scientific protocol from the tool that executes it – a prerequisite for reproducibility and interoperability.
Couple large language models to atomistic simulation codes.
LangSim provides LLM agents that call validated simulation tools to calculate physical properties from natural-language questions – so that answers are computed, not guessed.
A Python interface to HPC queuing systems.
pysqa – the Python Simple Queuing System Adapter – submits, monitors and manages jobs on clusters with different queuing systems through a single Python interface, including on remote machines.
Capture parameters, environments, provenance and execution context so that computational results can be inspected and repeated.
Connect workflow engines, simulation codes and data models through reusable interfaces and shared definitions.
Develop interactively and scale the same scientific logic to clusters and large HPC systems.
Develop in the open, with automated tests and community packaging, so that others can build on the results.
Students interested in scientific programming can contribute to research software as part of computational research projects – with code review, testing and documentation as in any professional software project.