aqvolt26-models / README.md
omaraq's picture
Update README.md
8b693c9 verified
---
license: other
extra_gated_prompt: "The AQVolt26 models and dataset are for non-commercial use. If you want to work with us or discuss obtaining a commercial license, please contact us directly at materials@sandboxaq.com."
extra_gated_fields:
First Name: text
Last Name: text
Company Name or Affiliation: text
Role or Job Title: text
I want to use the AQVolt26 models and datasets for: text
I agree to use the AQVolt26 models and datasets are for non-commercial use ONLY: checkbox
tags:
- chemistry
- materials-science
- machine-learning
- computational-chemistry
- dft
- batteries
---
<h1 align="center" style="font-size: 36px;">
<span style="color: #DAA520;">AQ</span>Volt26 Universal Potentials 🔋</h1>
<p align="center">
<img src="aqvolt26.png" alt="AQVolt26 Overview" width="600">
</p>
This repository contains **AQVolt26** model checkpoints. The models released currently are based on the Smooth Energy Network (eSEN) architecture, co-trained with a combination of datasets.
Please see our [blog](https://www.sandboxaq.com/post/aqvolt26-advancing-ai-driven-discovery-for-next-generation-solid-state-batteries) and [paper](https://arxiv.org/abs/2604.02524) for more details about the impact of the models and [dataset](https://huggingface.co/collections/SandboxAQ/aqvolt26).
## 1. Model Installation
This section details how to install and run the eSEN models.
### Step 1.1: Create Environment
First, create and activate a new micromamba (or conda) environment with Python 3.10.
```bash
micromamba create -n aqvolt python=3.10
micromamba activate aqvolt
```
### Step 1.2: Install Dependencies
Install all the required libraries
```bash
pip install huggingface_hub datasets pandas jupyterlab ase fairchem-core --no-input
```
### Step 1.3: Log in to Hugging Face
If you don't have one, create an account at [huggingface.co](https://huggingface.co/join).
**Create an Access Token:**
Navigate to your **Settings -> Access Tokens** page or click [here](https://huggingface.co/settings/tokens). Create a new token with at least **`read`** permissions. Copy this token to your clipboard.
### Step 1.4: Download the AQVolt26 Models
**Access via Jupyter Lab:**
Open your terminal or command prompt and type
```bash
python -m ipykernel install --user --name=aqvolt --display-name="aqvolt"
jupyter lab
```
This will open a tab in your web browser. Open a new Jupyter notebook. Make sure that your notebook is using the Python environment where the packages installed above are located when selecting your kernel.
Type the following into a cell
```bash
import torch
from huggingface_hub import hf_hub_download
```
You can access the foundational potential more suited to off-equilibrium tasks at this checkpoint named **aqvolt-esen.pt** or the version more suited to tasks near 0K called **aqvolt-mp-esen.pt**.
```bash
model_path = hf_hub_download(
repo_id="SandboxAQ/aqvolt26-models",
filename="aqvolt-esen.pt",
token=<YOUR-TOKEN>
)
```
Load the model as an ASE-compatible calculator
```bash
from fairchem.core import FAIRChemCalculator
from fairchem.core.units.mlip_unit import load_predict_unit
predictor = load_predict_unit(path=model_path)
calc = FAIRChemCalculator(predictor)
```
## 2. Model Usage
You can test the model with a subset of the AQVolt26 test data
```bash
from datasets import load_dataset
dataset = load_dataset("SandboxAQ/aqvolt26-dataset-subset", split="test", token=<YOUR-TOKEN>)
from ase import Atoms
atoms = Atoms(**dataset[0]['atoms'])
atoms.calc = calc
print(atoms.get_potential_energy())
print(atoms.get_forces())
print(atoms.get_stress())
```
**Example: Run a Molecular Dynamics NpT simulation with an AQVolt26 model:**
Set the desired inputs
```bash
temperature = 400 # in Kelvin
pressure = 1 # in atm
timestep = 1 # in fs
interval = 1 # frequency of data logging, 1 for every frame
nsteps = 10 # MD steps to run
```
Convert the inputs into the correct units
```bash
import numpy as np
import scipy.constants as const
from ase import units
pressure_pa = pressure * const.atm
angstrom_to_meter = const.angstrom
joule_to_ev = 1 / const.e
pressure_ev_per_cubic_meter = pressure_pa * joule_to_ev
conversion_factor_m3_to_A3 = angstrom_to_meter**3
pressure_ev_per_cubic_angstrom = pressure_ev_per_cubic_meter * conversion_factor_m3_to_A3
```
Scale the initial velocity
```bash
from ase.md.velocitydistribution import MaxwellBoltzmannDistribution
MaxwellBoltzmannDistribution(atoms, temperature_K=temperature)
```
Feed in the MD inputs
```bash
from ase.md.npt import NPT
dyn = NPT(
atoms=atoms,
timestep=timestep * units.fs,
temperature_K=temperature,
externalstress=pressure_ev_per_cubic_angstrom,
ttime=float(25.0) * units.fs,
pfactor=float(75.0**2.0) * units.fs,
mask=np.array([(1, 0, 0), (0, 1, 0), (0, 0, 1)]) # mask for isotropic pressure
)
```
Set up a logger to monitor your run
```bash
from ase.md.logger import MDLogger
logger = MDLogger(
dyn,
atoms,
'aqvolt.log',
header=True,
peratom=False,
stress=False,
)
dyn.attach(logger, interval=interval)
```
Define your trajectory file to read the generated configurations
```bash
from ase.io import read, write, Trajectory
traj = Trajectory('aqvolt.traj', 'w', atoms)
dyn.attach(traj.write, interval=interval)
```
Run the NpT simulation for the desired period of time
```bash
dyn.run(nsteps)
```
## 3. How to Cite
If you use the AQVolt26 models or dataset in your research, please cite the following paper:
```
Jiyoon Kim, Chuhong Wang, Aayush R. Singh, Tyler Sours, Shivang Agarwal, AJ Nish, Paul Abruzzo, Ang Xiao, Omar Allam. (2026). AQVolt26: High-Temperature r2SCAN Halide Dataset for Universal ML Potentials and Solid-State Batteries. arXiv preprint arXiv:XXXX.XXXXX.
```
### BibTeX Entry
```bibtex
@article{kim2026aqvolt26hightemperaturer2scanhalide,
title={AQVolt26: High-Temperature r2SCAN Halide Dataset for Universal ML Potentials and Solid-State Batteries},
author={Jiyoon Kim and Chuhong Wang and Aayush R. Singh and Tyler Sours and Shivang Agarwal and AJ Nish and Paul Abruzzo and Ang Xiao and Omar Allam},
year={2026},
eprint={2604.02524},
archivePrefix={arXiv},
primaryClass={cond-mat.mtrl-sci},
url={https://arxiv.org/abs/2604.02524},
}
```
---