Add aimnet2-nse model weights and card
Browse files- README.md +111 -0
- config.json +38 -0
- ensemble_0.safetensors +3 -0
- ensemble_1.safetensors +3 -0
- ensemble_2.safetensors +3 -0
- ensemble_3.safetensors +3 -0
README.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
library_name: aimnet
|
| 3 |
+
license: mit
|
| 4 |
+
tags:
|
| 5 |
+
- chemistry
|
| 6 |
+
- computational-chemistry
|
| 7 |
+
- molecular-dynamics
|
| 8 |
+
- interatomic-potential
|
| 9 |
+
- neural-network-potential
|
| 10 |
+
- pytorch
|
| 11 |
+
- aimnet2
|
| 12 |
+
pipeline_tag: other
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
# AIMNet2 NSE (Open-Shell)
|
| 16 |
+
|
| 17 |
+
AIMNet2 is a neural network interatomic potential for fast and accurate molecular simulations. This is a spin-polarized model for **open-shell chemistry** (radicals, triplet states, excited states). Accepts spin multiplicity as additional input.
|
| 18 |
+
|
| 19 |
+
## Highlights
|
| 20 |
+
|
| 21 |
+
- **Fast:** Orders of magnitude faster than DFT, with optional `torch.compile` for ~5x additional speedup on GPU
|
| 22 |
+
- **Accurate:** Near-DFT accuracy for energies, forces, and charges
|
| 23 |
+
- **Broad coverage:** Supports 14 elements: H, B, C, N, O, F, Si, P, S, Cl, As, Se, Br, I
|
| 24 |
+
- **Ensemble:** 4 ensemble members for uncertainty estimation
|
| 25 |
+
- **Features:** Energy, forces, charges, Hessian, stress tensor, periodic boundary conditions
|
| 26 |
+
|
| 27 |
+
## Installation
|
| 28 |
+
|
| 29 |
+
```bash
|
| 30 |
+
pip install "aimnet[hf]"
|
| 31 |
+
```
|
| 32 |
+
|
| 33 |
+
## Quick Start
|
| 34 |
+
|
| 35 |
+
```python
|
| 36 |
+
from aimnet.calculators import AIMNet2Calculator
|
| 37 |
+
|
| 38 |
+
# Load from Hugging Face (downloads and caches automatically)
|
| 39 |
+
calc = AIMNet2Calculator("isayevlab/aimnet2-nse")
|
| 40 |
+
|
| 41 |
+
# Single-point calculation (closed-shell)
|
| 42 |
+
results = calc(
|
| 43 |
+
{"coord": coords, "numbers": atomic_numbers, "charge": 0.0},
|
| 44 |
+
forces=True,
|
| 45 |
+
)
|
| 46 |
+
print(results["energy"]) # Energy in eV
|
| 47 |
+
print(results["forces"]) # Forces in eV/A
|
| 48 |
+
print(results["charges"]) # Partial charges in e
|
| 49 |
+
|
| 50 |
+
# For open-shell species (e.g., methyl radical, doublet)
|
| 51 |
+
results = calc(
|
| 52 |
+
{"coord": coords, "numbers": atomic_numbers, "charge": 0.0, "mult": 2.0},
|
| 53 |
+
forces=True,
|
| 54 |
+
)
|
| 55 |
+
```
|
| 56 |
+
|
| 57 |
+
### With ASE
|
| 58 |
+
|
| 59 |
+
```python
|
| 60 |
+
from aimnet.calculators.aimnet2ase import AIMNet2ASE
|
| 61 |
+
from ase.build import molecule
|
| 62 |
+
|
| 63 |
+
atoms = molecule("H2O")
|
| 64 |
+
atoms.calc = AIMNet2ASE("isayevlab/aimnet2-nse", mult=2)
|
| 65 |
+
|
| 66 |
+
energy = atoms.get_potential_energy()
|
| 67 |
+
forces = atoms.get_forces()
|
| 68 |
+
```
|
| 69 |
+
|
| 70 |
+
## Ensemble Members
|
| 71 |
+
|
| 72 |
+
This repo contains 4 ensemble members (`ensemble_0.safetensors` through `ensemble_3.safetensors`). The default loads member 0. For uncertainty estimation, load all 4 and average predictions.
|
| 73 |
+
|
| 74 |
+
| File | Description |
|
| 75 |
+
|------|-------------|
|
| 76 |
+
| `ensemble_0.safetensors` | Ensemble member 0 (default) |
|
| 77 |
+
| `ensemble_1.safetensors` | Ensemble member 1 |
|
| 78 |
+
| `ensemble_2.safetensors` | Ensemble member 2 |
|
| 79 |
+
| `ensemble_3.safetensors` | Ensemble member 3 |
|
| 80 |
+
| `config.json` | Shared model configuration and metadata |
|
| 81 |
+
|
| 82 |
+
## Model Details
|
| 83 |
+
|
| 84 |
+
- **Architecture:** AIMNet2 (Atomic Environment Vectors + message-passing MLPs)
|
| 85 |
+
- **Cutoff radius:** 5.0 A
|
| 86 |
+
- **DFT functional:** wB97M
|
| 87 |
+
- **Dispersion:** D3BJ (externalized, handled by calculator)
|
| 88 |
+
- **Coulomb:** Short-range embedded + external long-range (DSF/Ewald)
|
| 89 |
+
- **Format:** safetensors (converted from PyTorch state dict)
|
| 90 |
+
|
| 91 |
+
## Limitations
|
| 92 |
+
|
| 93 |
+
- **Periodic systems** are supported through the Python API / ASE interface, not through the Gradio demo
|
| 94 |
+
- Element coverage is limited to the 14 elements listed above; unsupported elements will raise an error
|
| 95 |
+
|
| 96 |
+
## Citation
|
| 97 |
+
|
| 98 |
+
```bibtex
|
| 99 |
+
@article{anstine2025aimnet2,
|
| 100 |
+
title={AIMNet2: A Neural Network Potential to Meet your Neutral, Charged, Organic, and Elemental-Organic Needs},
|
| 101 |
+
author={Anstine, Dylan and Zubatyuk, Roman and Isayev, Olexandr},
|
| 102 |
+
journal={Chemical Science},
|
| 103 |
+
year={2025},
|
| 104 |
+
publisher={Royal Society of Chemistry},
|
| 105 |
+
doi={10.1039/D4SC08572H}
|
| 106 |
+
}
|
| 107 |
+
```
|
| 108 |
+
|
| 109 |
+
## License
|
| 110 |
+
|
| 111 |
+
MIT License
|
config.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"config_schema_version": 1,
|
| 3 |
+
"family_name": "aimnet2-nse",
|
| 4 |
+
"ensemble_size": 4,
|
| 5 |
+
"member_names": [
|
| 6 |
+
"aimnet2nse_0",
|
| 7 |
+
"aimnet2nse_1",
|
| 8 |
+
"aimnet2nse_2",
|
| 9 |
+
"aimnet2nse_3"
|
| 10 |
+
],
|
| 11 |
+
"cutoff": 5.0,
|
| 12 |
+
"needs_coulomb": true,
|
| 13 |
+
"needs_dispersion": true,
|
| 14 |
+
"coulomb_mode": "sr_embedded",
|
| 15 |
+
"implemented_species": [
|
| 16 |
+
1,
|
| 17 |
+
5,
|
| 18 |
+
6,
|
| 19 |
+
7,
|
| 20 |
+
8,
|
| 21 |
+
9,
|
| 22 |
+
14,
|
| 23 |
+
15,
|
| 24 |
+
16,
|
| 25 |
+
17,
|
| 26 |
+
33,
|
| 27 |
+
34,
|
| 28 |
+
35,
|
| 29 |
+
53
|
| 30 |
+
],
|
| 31 |
+
"library_name": "aimnet",
|
| 32 |
+
"tags": [
|
| 33 |
+
"chemistry",
|
| 34 |
+
"molecular-dynamics",
|
| 35 |
+
"force-field",
|
| 36 |
+
"aimnet2"
|
| 37 |
+
]
|
| 38 |
+
}
|
ensemble_0.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c65c7e1c3dc15b97f473f544d0c6835bd8d0c3e6b294523a9311b83eb0d723b6
|
| 3 |
+
size 8951304
|
ensemble_1.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:417b84066883373bde6c2f2a11a6b953e1b73bbe12eb56881c6990cb0a919751
|
| 3 |
+
size 8951304
|
ensemble_2.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:54f84585c26ae547cf0b7f7c4cac8b33d01b9e62347227f03ab7ced44e51b3f8
|
| 3 |
+
size 8951304
|
ensemble_3.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:af67e97f9eb88aafabd3ced57950692f192b2c726d2c45baf146b64e9fd4f4cb
|
| 3 |
+
size 8951304
|