Giter VIP home page Giter VIP logo

pyiron.github.io's Introduction

pyiron

Coverage Status Codacy Badge Release_Date Build Status Downloads Documentation Status

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:

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},
}

pyiron.github.io's People

Contributors

ashtonmv avatar dependabot[bot] avatar jan-janssen avatar liamhuber avatar max-hassani avatar niklassiemer avatar ningwang1990 avatar pmrv avatar pyironlandingpage avatar srmnitc avatar traviscibot avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pyiron.github.io's Issues

Use conda to install ruby

For those who want to use conda to configure the ruby environment on Mac OS X:

conda install clangxx_osx-64 ruby make rb-jekyll

on Linux:

conda install gxx_impl_linux-64 ruby make rb-jekyll

There is some trouble with installing ruby packages via conda:

Ignoring eventmachine-1.2.7 because its extensions are not built. Try: gem pristine eventmachine --version 1.2.7
Ignoring ffi-1.11.1 because its extensions are not built. Try: gem pristine ffi --version 1.11.1
Ignoring http_parser.rb-0.6.0 because its extensions are not built. Try: gem pristine http_parser.rb --version 0.6.0
Ignoring sassc-2.3.0 because its extensions are not built. Try: gem pristine sassc --version 2.3.0

I assume this is related to the pinning of the ruby version conda-forge/rb-eventmachine-feedstock#3 but compiling locally worked fine for me.

And for the Mac Users you might have to activate Xcode first:

xcode-select --install
xcodebuild -license

Dark version of the pyiron logo

@ashtonmv Can you also create a dark version of the pyiron logo which we can use for white backgrounds? For example I would like to change the icon of the GitHub organisation.

Content of the first page

Based on our recent discussions I was wondering if it makes sense to formulate the start page a bit more general, while still maintaining the focus on atomistic simulation:

Slogan:

pyiron - complex workflows made easy
from rapid prototyping to high performance computing in material science

Three key points:

  • object model
    • jupyter based user interface - like visualising atomistic structures
    • hierarchical data storage - based on the HDF5 file format optimised for atomistic trajectories
    • extensive simulation code interfaces - VASP, LAMMPS, Sphinx, GPAW, Phonopy, ...
  • Infrastructure
    • Easy installation via conda - active contribution to condaforge including over 100+ material science codes
    • support for HPC clusters - running pyiron either on the cluster or communicating with the cluster via SSH
    • transferable and reproducible simulation protocols - independent of the local pyiron configuration
  • easy to integrate new codes
    • file and python bindings based communication - based on write_input() and collect_output() function
    • Manage multiple executable version - executables are interfaced by simple shell scripts
    • Reuse built-in data aggregation methods - generate pandas data frames based on the pyiron objects model

UBC logo

I got the following message from my UBC contact:

Hi Liam,

I have read through the branding guidelines from UBC and also contacted the Branding and Marketing team regarding this. Their comment was to have the text included in the logo itself.

I am attaching how the logo should look like.

Here is their message:

Thanks for reaching out. The use of the UBC logo here appears to be correct, except the logo itself is wrong, and I've attached the correct crest.

Thanks,

Hari

The crest+text is attached, but it looks low-res to me and the aspect ratio won't work for us.
ubc-logo-2018-fullsig-blue-rgb72

It sounds like UBC wants the university name included with the text. For a better aspect ratio than the full signature, I suggest we use "Secondary Logo: Narrow Signature" available at this page and attached to this post.
UBC-logo-2018-narrowsig-blue-rgb72

I'm also attaching the straight-up crest downloaded from the same source in case the text really blows the aspect ratio.
UBC-logo-2018-crest-blue-rgb72

To be honest I couldn't see what UBC was complaining about, but upon closer inspection I see that our font is different and the sun has a different number of rays. I hope I don't have to give my degree back as punishment for not noticing 😝

No word yet on Leoben's signature.

QR code

I just noticed that the QR code is still using the old logo, so we should update that one as well.

Colors for affiliated projects

For some affiliated projects there are no logos like - NGLview, phonopy, ... - so it might make sense to just have a circle with the name for those. In addition we should think about having a more unified design for the logos of the affiliated projects - maybe all in white, if that is possible.

show pyiron.org as url

I'm wondering if we can show "pyiron.org" in the browser url box, instead of "pyiron.github.io". I think it would look nicer, and we are paying good money for that domain name anyway.

This would require:

  1. Adding "www.pyiron.org" as the custom domain under this repository's settings
  2. Adding all 4 github page IP addresses as A records within our DNS settings (this lets us use "pyiron.org" along with "www.pyiron.org"):
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

I don't have access to either settings or else I could do it myself. Usually it takes several minutes/ hours for these changes to propagate from the DNS to the live site, which unfortunately makes any troubleshooting quite annoying.

Mention latest news on the front page

While currently our news section mainly consists of single line comments. It is most likely reasonable to extend them to small blog posts then we could also use it to announce workshops and so on. For these announcements it would be good if we could embed the headline of the latest news somewhere on the first page.

Social Media Channels

I am not sure which of those we want to list on the website - currently we have:

I guess we should focus on the first two and once the number of user questions become overwhelming we can start moving those to StackOverflow. I am open to more suggestions @pyiron/pyiron

Hosting beta versions of the website

I have two fears and a suggestion:

  • Fear # 1: the barrier for most group members exploring/testing new website features is still sufficiently high that I'm sure many don't want to go through the effort of setting up the local server, and understandably so.

  • Fear # 2: there are a few hidden differences between the behavior of the local server and the github pages server that can create annoying, untestable errors when going live (see #71, #74, and #79).

  • Suggestion: fork pyiron.github.io into a new repository "_beta_site" within our organization for host beta branches.

If we initialize _beta_site's github pages under its settings, its content will automatically be published online under pyiron.org/_beta_site. Then anyone developing a website feature could choose whatever branch they want to publish there, and would just have to sync its branches from the main repository via an occasional git fetch upstream. To alleviate my second fear while testing #82, I did this on my own account, but it's only a temporary solution because others cannot push to this fork.

Do we need the about page?

I somehow have the feeling it is duplicated content - basically the same as we have it on the first page. Therefore I would prefer to reference the reader to the documentation rather than a separate about page. In addition we should add more documentation about the general concepts of pyiron to the documentation, but that is a different topic.

Alumni List

@hickel said the list of Alumni looks kind of sad as it is all black. So he suggested we should color the names in blue.

Publications

I went ahead and merged all the open pull requests. Now I noticed that it would be nicer to have the abstracts with full justification - @ashtonmv Can you change this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.