Skip to content

Model Selection Guide

AIMNet2 ships with five model variants, each trained on a different DFT functional or element set. This guide helps you pick the right one.

What AIMNet2 Cannot Do

Before choosing a model, verify that your system falls within AIMNet2's domain of applicability:

  • Unsupported elements -- No alkali metals (Li, Na, K, ...), no alkaline earth metals (Be, Mg, Ca, ...), and no transition metals other than Pd. See the element table below.
  • Molecular training data only -- All models were trained on isolated molecules and molecular clusters. They are not parameterized for bulk materials, extended surfaces, or metallic systems.
  • No implicit solvation -- Most AIMNet2 models operate in vacuum. Solvent effects must be modeled explicitly (e.g., by including solvent molecules) or accounted for separately. The exception is AIMNet2-Pd, which includes CPCM implicit solvation for THF baked into the model.
  • No multi-reference chemistry -- Systems with strong static correlation (e.g., stretched transition metal complexes, biradicaloids with near-degenerate states) are outside the training domain. Use multi-reference methods (e.g., CASSCF, CASPT2, NEVPT2) for these cases.

Supported Elements

All standard models cover the same 14 elements:

H, B, C, N, O, F, Si, P, S, Cl, As, Se, Br, I

The Pd model replaces As with Pd:

H, B, C, N, O, F, Si, P, S, Cl, Se, Br, Pd, I

Check Elements First

The most common source of errors is running a system with unsupported elements. Always verify your element set before selecting a model:

from aimnet.calculators import AIMNet2Calculator

calc = AIMNet2Calculator("aimnet2")
# The calculator will raise an error at inference time
# if unsupported elements are encountered.

Quick-Pick Table

Model Alias Functional Best For Key Strength
AIMNet2 aimnet2 wB97M-D3 General organic chemistry Reliable default, broad coverage
AIMNet2-2025 aimnet2_2025 B97-3c (improved) General-purpose B97-3c Recommended B97-3c model; supersedes B97-3c
AIMNet2-B97-3c aimnet2_b973c B97-3c Legacy B97-3c screening Superseded by AIMNet2-2025
AIMNet2-NSE aimnet2nse wB97M-D3 Open-shell systems Radicals, triplet states, bond dissociation
AIMNet2-Pd aimnet2pd wB97M-D3/CPCM (THF) Pd catalysis Pd organometallics with implicit THF solvation

Decision Flowchart

Follow these steps to choose a model:

Step 1: Are all your elements supported?

Check the element table above. If your system contains elements not listed, AIMNet2 cannot be used.

Step 2: Does your system contain palladium?

If yes, use aimnet2pd. This is the only model that supports Pd. Note that it does not support As (which the other models do).

Step 3: Is your system open-shell?

Radicals, triplet states, or any system with unpaired electrons should use aimnet2nse. The NSE (Neutral Spin Equilibrated) scheme handles spin polarization through two charge channels instead of one.

When to use NSE

Use aimnet2nse whenever you need to set mult > 1, or when bonds are breaking or forming (e.g., transition states, bond dissociation curves). Even for closed-shell transition states, NSE often gives more reliable energies because the NN can represent partial bond breaking.

Step 4: Do you want a B97-3c-level model?

If you prefer a B97-3c reference level (faster DFT, suitable for screening and large-scale studies), use aimnet2_2025. This is the recommended B97-3c model — it supersedes the original aimnet2_b973c with improved intermolecular interaction accuracy while retaining the same intramolecular performance.

!!! note "AIMNet2-2025 supersedes AIMNet2-B97-3c" For all new work requiring a B97-3c-level model, use aimnet2_2025. The original aimnet2_b973c is retained for reproducibility of published results but is no longer the recommended choice. AIMNet2-2025 provides strictly better accuracy for non-covalent interactions with no regression for covalent chemistry.

Step 5: General-purpose?

  • General-purpose calculations: use aimnet2 (the default). Trained on wB97M-D3, a well-validated range-separated hybrid functional.
  • Legacy B97-3c: aimnet2_b973c is available for reproducing previous results but new projects should use aimnet2_2025 instead.

Loading Models

All models are loaded through AIMNet2Calculator:

from aimnet.calculators import AIMNet2Calculator

# Default model (wB97M-D3, member 0)
calc = AIMNet2Calculator("aimnet2")

# B97-3c model
calc = AIMNet2Calculator("aimnet2_b973c")

# 2025 improved model
calc = AIMNet2Calculator("aimnet2_2025")

# NSE open-shell model
calc = AIMNet2Calculator("aimnet2nse")

# Palladium model
calc = AIMNet2Calculator("aimnet2pd")

Each alias loads ensemble member _0 by default. To load a specific member, use the full model name:

# Load member 2 of the wB97M-D3 ensemble
calc = AIMNet2Calculator("aimnet2_wb97m_d3_2")

Ensemble Models and Uncertainty Estimation

Each model variant consists of an ensemble of 4 independently trained members (indexed _0 through _3). When you load a model by its alias (e.g., aimnet2), you get only member _0.

Why Use the Full Ensemble?

Running all 4 members and computing the variance of predictions gives a built-in uncertainty estimate. High variance signals that the model is less confident about the prediction, which is useful for:

  • Identifying out-of-distribution structures
  • Active learning workflows
  • Deciding when to fall back to DFT

Computing Ensemble Uncertainty

import torch
from aimnet.calculators import AIMNet2Calculator

# Load all 4 ensemble members
calcs = [AIMNet2Calculator(f"aimnet2_wb97m_d3_{i}") for i in range(4)]

# Run inference with each member
data = {
    "coord": coords,    # (N, 3) tensor
    "numbers": numbers,  # (N,) tensor
    "charge": charge,    # (1,) tensor
}

energies = []
for calc in calcs:
    result = calc(data)
    energies.append(result["energy"])

energies = torch.stack(energies)

# Ensemble mean and variance
mean_energy = energies.mean(dim=0)
energy_variance = energies.var(dim=0)

print(f"Energy: {mean_energy.item():.6f} +/- {energy_variance.sqrt().item():.6f} eV")

Single Member for Production

For production calculations where uncertainty is not needed, using a single member is 4x faster. The individual members have very similar accuracy on average.

Model Aliases Reference

The following table shows all available model names and their aliases:

Alias Resolves To Ensemble Members
aimnet2 aimnet2_wb97m_d3_0 aimnet2_wb97m_d3_{0,1,2,3}
aimnet2_wb97m aimnet2_wb97m_d3_0 (same as above)
aimnet2_b973c aimnet2_b973c_d3_0 aimnet2_b973c_d3_{0,1,2,3}
aimnet2_2025 aimnet2_b973c_2025_d3_0 aimnet2_b973c_2025_d3_{0,1,2,3}
aimnet2nse aimnet2nse_0 aimnet2nse_{0,1,2,3}
aimnet2pd aimnet2-pd_0 aimnet2-pd_{0,1,2,3}

Direct Model Downloads

All model files are downloaded automatically the first time you call AIMNet2Calculator("alias"). To download manually or inspect files, use the links below. All files are in PyTorch v2 .pt format.

AIMNet2 (wB97M-D3) — alias aimnet2 / aimnet2_wb97m

Registry name File Download
aimnet2_wb97m_d3_0 aimnet2_wb97m_d3_0.pt download
aimnet2_wb97m_d3_1 aimnet2_wb97m_d3_1.pt download
aimnet2_wb97m_d3_2 aimnet2_wb97m_d3_2.pt download
aimnet2_wb97m_d3_3 aimnet2_wb97m_d3_3.pt download

AIMNet2-B97-3c — alias aimnet2_b973c

Registry name File Download
aimnet2_b973c_d3_0 aimnet2_b973c_d3_0.pt download
aimnet2_b973c_d3_1 aimnet2_b973c_d3_1.pt download
aimnet2_b973c_d3_2 aimnet2_b973c_d3_2.pt download
aimnet2_b973c_d3_3 aimnet2_b973c_d3_3.pt download

AIMNet2-2025 — alias aimnet2_2025

Registry name File Download
aimnet2_b973c_2025_d3_0 aimnet2_2025_b973c_d3_0.pt download
aimnet2_b973c_2025_d3_1 aimnet2_2025_b973c_d3_1.pt download
aimnet2_b973c_2025_d3_2 aimnet2_2025_b973c_d3_2.pt download
aimnet2_b973c_2025_d3_3 aimnet2_2025_b973c_d3_3.pt download

AIMNet2-NSE — alias aimnet2nse

Registry name File Download
aimnet2nse_0 aimnet2nse_wb97m_0.pt download
aimnet2nse_1 aimnet2nse_wb97m_1.pt download
aimnet2nse_2 aimnet2nse_wb97m_2.pt download
aimnet2nse_3 aimnet2nse_wb97m_3.pt download

AIMNet2-Pd — alias aimnet2pd

Registry name File Download
aimnet2-pd_0 aimnet2-pd_0.pt download
aimnet2-pd_1 aimnet2-pd_1.pt download
aimnet2-pd_2 aimnet2-pd_2.pt download
aimnet2-pd_3 aimnet2-pd_3.pt download

What's Next

References

  • AIMNet2 (wB97M-D3, B97-3c): Anstine, D.M., Zubatyuk, R., Isayev, O. AIMNet2: A Neural Network Potential to Meet your Neutral, Charged, Organic, and Elemental-Organic Needs. Chemical Science 2025, 16, 10228-10244. DOI: 10.1039/D4SC08572H

  • AIMNet2-NSE (open-shell): Kalita, B.; Zubatyuk, R.; Anstine, D. M.; Bergeler, M.; Settels, V.; Stork, C.; Spicher, S.; Isayev, O. AIMNet2-NSE: A Transferable Reactive Neural Network Potential for Open-Shell Chemistry. Angew. Chem. Int. Ed. 2026. DOI: 10.1002/anie.202516763

  • AIMNet2-Pd: Anstine, D. M.; Zubatyuk, R.; Gallegos, L.; Paton, R.; Wiest, O.; Nebgen, B.; Jones, T.; Gomes, G.; Tretiak, S.; Isayev, O. Transferable Machine Learning Interatomic Potential for Pd-Catalyzed Cross-Coupling Reactions. ChemRxiv 2025. DOI: 10.26434/chemrxiv-2025-n36r6