An open API service indexing awesome lists of open source software.

https://github.com/pyiron/pyiron

pyiron - an integrated development environment (IDE) for computational materials science.
https://github.com/pyiron/pyiron

ab-initio ase development-environment dft hdf5 ide lammps molecular-dynamics pyiron python simulation vasp

Last synced: 29 days ago
JSON representation

pyiron - an integrated development environment (IDE) for computational materials science.

Awesome Lists containing this project

README

          

pyiron
======

.. image:: https://anaconda.org/conda-forge/pyiron/badges/latest_release_date.svg
:target: https://anaconda.org/conda-forge/pyiron/
:alt: Release_Date

.. image:: https://github.com/pyiron/pyiron/actions/workflows/notebooks.yml/badge.svg
:target: https://github.com/pyiron//pyiron/actions
:alt: Build Status

.. image:: https://anaconda.org/conda-forge/pyiron/badges/downloads.svg
:target: https://anaconda.org/conda-forge/pyiron/
:alt: Downloads

.. image:: https://readthedocs.org/projects/pyiron/badge/?version=latest
:target: https://pyiron.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://img.shields.io/github/stars/pyiron/pyiron
:target: https://github.com/pyiron/pyiron
:alt: pyiron repository

.. image:: docs/_static/screenshot.png
:align: center
:alt: Screenshot of pyiron running inside jupyterlab.

pyiron - an integrated development environment (IDE) for computational materials science. It combines several tools in a common platform:

- Atomic structure objects – compatible to the `Atomic Simulation Environment (ASE) `_.
- Atomistic simulation codes – like `LAMMPS `_ and `VASP `_.
- Feedback Loops – to construct dynamic simulation life cycles.
- Hierarchical data management – interfacing with storage resources like SQL and `HDF5 `_.
- Integrated visualization – based on `NGLview `_.
- Interactive simulation protocols - based on `Jupyter notebooks `_.
- Object oriented job management – for scaling complex simulation protocols from single jobs to high-throughput simulations.

pyiron (called pyron) is developed in the `Computational Materials Design department `_ of `Joerg Neugebauer `_ at the `Max Planck Institut für Eisenforschung (Max Planck Institute for iron research) `_. While its original focus was to provide a framework to develop and run complex simulation protocols as needed for ab initio thermodynamics it quickly evolved into a versatile tool to manage a wide variety of simulation tasks. In 2016 the `Interdisciplinary Centre for Advanced Materials Simulation (ICAMS) `_ joined the development of the framework with a specific focus on high throughput applications. In 2018 pyiron was released as open-source project.
See the `Documentation `_ page for more details.

.. note::
**pyiron**: This is the documentation page for the pyiron meta package, that combines the other packages in a common
interface. The API documentation for `pyiron_base `_ and
`pyiron_atomistics `_ are available as separate pages.

Installation
------------
You can test pyiron on `Mybinder.org (beta) `_.
For a local installation we recommend to install pyiron inside an `anaconda `_ environment::

conda install -c conda-forge pyiron

After the installation of pyiron you need to configure pyiron. The default configuration can be generated automatically. Start a new Python session and import pyiron::

> import pyiron
> pyiron.install()
>>> It appears that pyiron is not yet configured, do you want to create a default start configuration (recommended: yes). [yes/no]:
> yes
> exit()

See the `Documentation-Installation `_ page for more details.

Example
-------
After the successful configuration you can start your first pyiron calculation. Navigate to the the projects directory and start a jupyter notebook or jupyter lab session correspondingly::

cd ~/pyiron/projects
jupyter notebook

Open a new jupyter notebook and inside the notebook you can now validate your pyiron calculation by creating a test project, setting up an initial structure of bcc Fe and visualize it using NGLview::

from pyiron import Project
pr = Project('test')
structure = pr.create_structure('Fe', 'bcc', 2.78)
structure.plot3d()

Finally a first lammps calculation can be executed by::

job = pr.create_job(job_type=pr.job_type.Lammps, job_name='lammpstestjob')
job.structure = structure
job.potential = job.list_potentials()[0]
job.run()

Getting started:
----------------
Test pyiron with mybinder:

.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/pyiron/pyiron/main
:alt: mybinder

License and Acknowledgments
---------------------------
``pyiron`` is licensed under the BSD license.

If you use pyiron in your scientific work, `please consider citing `_ ::

@article{pyiron-paper,
title = {pyiron: An integrated development environment for computational materials science},
journal = {Computational Materials Science},
volume = {163},
pages = {24 - 36},
year = {2019},
issn = {0927-0256},
doi = {https://doi.org/10.1016/j.commatsci.2018.07.043},
url = {http://www.sciencedirect.com/science/article/pii/S0927025618304786},
author = {Jan Janssen and Sudarsan Surendralal and Yury Lysogorskiy and Mira Todorova and Tilmann Hickel and Ralf Drautz and Jörg Neugebauer},
keywords = {Modelling workflow, Integrated development environment, Complex simulation protocols},
}