Software

This page provides an overview of software used by our group. Detailed descriptions of simulation codes and other python codes (i.e., fireworks, atomate) are on following pages in this section.

Our software stack

We contribute to and maintain many Python packages. Many of these can be found under the materialsproject organization on GitHub:

  • pymatgen - for representing and analyzing crystal structures, as well as setting up/performing manual calculations

  • mp-api - code for the Materials Project API

  • FireWorks - for executing and managing calculation workflows on supercomputing resources. This helps you keep a calculation dashboard

  • jobflow - Python library for writing computational workflows

  • custodian - instead of directly running an executable like VASP, one can wrap the executable in custodian to detect and fix errors

  • atomate - repository for materials science workflows.

  • atomate2 - new successor to atomate, written using jobflow. We recommend this package when possible.

  • maggma - for building modular, scalable data pipelines

  • emmet - builders and API for Materials Project data (built upon maggma)

  • matminer - for data mining / ML on materials science data

Additional software used by many members of our group include:

  • VESTA - Molecular visualization software especially good for crystals

  • Ovito - Molecular visualization software especially good for molecular dynamics trajectories. We have a group license for the pro version. If you feel you'll be actively using OVITO Pro, please contact Qian Chen for the group license key.

  • IQMol - graphical molecule builder and viewer that integrates tightly with Q-Chem

  • Avogadro - graphical molecule builder and viewre

  • Studio 3T - You can obtain a free academic license here. There is also a free version Robo3T with more limited capabilities, but it works fine for simple use cases.

  • VMD - molecular visualization program

  • Visual Studio Code - Modern, flexible and extensible text editor from Microsoft. Compatible with Github Copilot!

  • PyCharm - Python text editor from JetBrains. Free with Github Student Developer Pack

  • iTerm2 - Alternative to native Terminal. Has more features and allows for greater customization.

If you are a Windows user, consider making use of the following:

To learn how to use the software stack, you can consult the documentation of the individual codebases as well as review the following resources:

If you have a specific question, sometimes the easiest solution is to post it to the Slack group and crowdsource the answer!

Software help groups

If you have problems with software, and in particular the software maintained by our group and our collaborators, you should contact the appropriate help group. The documentation for the software will list what that channel is; if not, try the Github Issues page. If you are reaching out for help, try to provide everything needed to quickly reproduce and debug the problem (files, test code, etc).

Two other ways to get software help that are more self-guided are:

  • If you are having trouble using a particular class or function, look for unit tests within the code, which often demonstrate how to use the class or function

  • If the class or function has a unique name (e.g., MaterialsProjectCompatibility), another option is to both Google and search on github.com for the particular class/function. The github.com search will often reveal code snippets from users all around the world.

Perssongroup organization (Github)

Looking for a place to host your code? Our group has an organization on Github here:

Perssongroup Github Organization

Please contact Hui Zheng to be added to the organization.

Github Student Developer Pack (sign up for this!)

As someone who is affiliated with UC Berkeley, did you know that you can get free Github Pro and a ton of free software (e.g., GitKraken, Pycharm, Github Copilot)?

This is totally worth the time to sign up. You can find the application below:

Github Student Developer Pack

-------

Special thanks to the original authors of this page: John Dagdelen and Eric Sivonxay

Last updated