FireWorks
FireWorks is a free, open-source code for defining, managing, and executing scientific workflows. It can be used to automate calculations over arbitrary computing resources, including those that have a queueing system.
Some features that distinguish FireWorks are dynamic workflows, failure-detection routines, and built-in tools and execution modes for running high-throughput computations at large computing centers.
FireWorks is intended to be a friendly workflow software that is easy to get started with, but flexible enough to handle complicated use cases.
Some (but not all) of its features include:
- A clean and flexible Python API, a powerful command-line interface, and a built-in web service for monitoring workflows.
- A database backend (MongoDB) lets you add, remove, and search the status of workflows.
- Detect failed jobs (both soft and hard failures), and rerun them as needed.
- Multiple execution modes - directly on a multicore machines or through a queue, on a single machine or multiple machines. Assign priorities and where jobs run.
- Support for dynamic workflows - workflows that modify themselves or create new ones based on what happens during execution.
- Automatic duplicate handling at the sub-workflow level - skip duplicated portions between two workflows while still running unique sections
- Built-in tasks for creating templated inputs, running scripts, and copying files to remote machines
- Remotely track the status of output files during execution.
- Package many small jobs into a single large job (e.g., automatically run 100 serial workflows in parallel over 100 cores)
- Support for several queueing systems such as PBS/Torque, Sun Grid Engine, SLURM, and IBM LoadLeveler.
For further information, please visit the the official FireWorks documentation.
Pymatgen
The Python Materials Genomics
(pymatgen) package is a robust, open source Python library
for materials analysis. It currently powers the Materials Project.
It includes:
-
Highly flexible classes for the representation of Element,
Site, Molecule, Structure and other objects used in typical
materials analyses.
-
Extensive io capabilities to manipulate many input and
output files formats, including VASP and the
crystallographic information file format.
-
Analytical tools such as phase diagram generation,
reaction balancing and calculation, electronic structure (DOS
and Bandstructure) analyses, etc.
-
Simple yet powerful routines for accessing the Materials API to get materials
data.
Using pymatgen and the Materials API, you can perform sophisticated
analyses on large materails data sets obtained from the Materials
Project.
Getting pymatgen
The pymatgen library can be obtained via the Python Package
Index (PyPI) or the
pymatgen repository on Github.
Examples
For example scripts, you can check our our Github
scripts directory. Some of our developers have also written
user-friendly scripts demonstrating the power of combining the
the Materials API and pymatgen. These scripts are available as
Github Gists.
More information
For more information on the pymatgen library,
please visit the
official page or check out the
pymatgen publication.