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.
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
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:
Windows Subsystem for Linux (WSL/WSL2) (highly recommended!)
To learn how to use the software stack, you can consult the documentation of the individual codebases as well as review the following resources:
The 2018 Materials Project workshop (note that MatMethods is now called atomate): https://github.com/materialsproject/workshop-2018
The 2014 Materials Virtual Lab presentations: https://materialsvirtuallab.org/software/
The Materials Project YouTube tutorials: https://www.youtube.com/user/MaterialsProject
If you have a specific question, sometimes the easiest solution is to post it to the Slack group and crowdsource the answer!
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.
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.
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:
-------
Special thanks to the original authors of this page: John Dagdelen and Eric Sivonxay