A HPC workflow management and materials analysis toolkit built with Python, ASE, and MACE.
- Adversarial Attack workflows for materials potential uncertainty
- HPC job templates for VASP, MACE training, NEB, etc.
- Composition analysis (short-range order, clustering, etc.)
Forge does not include PyTorch or mace‑torch in its dependency list. Please install them manually based on your system's requirements. Additionally, you will need a CUDA-enabled GPU to run FORGE (and preferably slurm for spawning multiple jobs at once).
### Setting up forge conda/mamba environment
conda create -n forge python=3.11
# for cuda 12.6
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
pip3 install cuequivariance cuequivariance-torch cuequivariance-ops-torch-cu12
# for cuda 11.8
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip3 install cuequivariance cuequivariance-torch cuequivariance-ops-torch-cu11
# Optional for WANDB logging during training
pip3 install wandb
## Installing MACE
git clone https://github.com/ACEsuit/mace.git
pip install ./mace[wandb] # ./mace without wandb
All of the needed dependencies are specified in the pyproject.toml
file and can be installed with pip install -e .
from the repository root.
## Basic installation of Forge
git clone https://github.com/mstapelberg/forge.git
cd forge
pip install -e .
Refer to the scripts in forge/scratch/scripts
or notebooks in forge/scratch/notebooks
for examples.
analysis/
- analysis scripts, e.g. Warren-Cowleycore/
- database manager, calculatorsworkflows/
- HPC job generation scripts, templatestests/
- test suiteconfig/
- example database configscratch/
- current scratch work repository
You can create profiles for clusters that you use. An example is put together for Perlmutter-CPU and Perlmutter-GPU. It is advised to have different types of profiles for jobs on different clusters. In the future we will implement folders for each cluster that you can save your job templates to.
- Calculate variance: ...
- Run optimization: ...
- Generate Structures: ...
- Pick Structures for VASP: ...
The central tenant of FORGE is using AWS relational databases. Configuration of your database is done in config/database.yaml
. This allows you to just call DatabaseManager() without passing in a config file.
We use ruff for linting and black for formatting. Contact myless@mit.edu if you'd like to contribute or drop an issue/discussion.