AIMNet2-rxn¶
A neural network interatomic potential specialized for closed-shell organic reactions (H, C, N, O), trained on ~4.7M reaction-relevant geometries at wB97M-D3/def2-TZVPP. Use for transition-state searches, NEB / batched-NEB, IRC profiles, and reaction-coordinate energy work.
Loading¶
from aimnet.calculators import AIMNet2Calculator
# From the GCS-backed registry (alias):
calc = AIMNet2Calculator("aimnet2-rxn", ensemble_member=0)
# From Hugging Face Hub:
calc = AIMNet2Calculator("isayevlab/aimnet2-rxn", ensemble_member=0)
Legacy alias
The previously published short alias aimnet2rxn and member-level keys aimnet2_rxn_0 … aimnet2_rxn_3 still resolve and remain supported.
Both paths produce equivalent calculators. The HF path requires pip install "aimnet[hf]".
Calculator-enforced safeguards (this family)¶
The calculator applies the following checks automatically when validate_species=True (the default). Each can be bypassed with validate_species=False:
- Element scope: input atomic numbers must be a subset of
[1, 6, 7, 8]. Other elements raiseValueErrorwith pointers to alternative families. - Net charge: only net-neutral systems (zwitterions OK). Non-zero
chargeraisesValueErrorpointing ataimnet2-wb97m-d3for ions. - AFV row sanitization: at conversion time, atomic-feature-vector rows for elements outside
[1, 6, 7, 8]are NaN-padded sovalidate_species=Falseproduces NaN-propagation rather than plausible-looking nonsense.
Runtime corrections and safeguards fire regardless of validate_species:
- Posthoc D3 dispersion:
AIMNet2Calculatoradds external DFT-D3(BJ) with the same wB97M-D3 parameters used by the defaultaimnet2model (s6=1.0,s8=0.3908,a1=0.566,a2=3.128). This also applies to older rxn artifacts that do not carryneeds_dispersion/d3_paramsmetadata. - Hessian +
torch.compile: setting both raisesRuntimeError(Dynamo + double-backward through GELU is known to hang). Reconstruct withcompile_model=Falsefor TS / IRC / vibrational work.
A separate one-time UserWarning fires if the same Python process constructs calculators from two different AIMNet2 families (rxn vs. wb97m-d3 etc.), because their absolute energy scales are not comparable.
Dipole origin convention¶
The rxn models compute dipole and quadrupole outputs with center_coord=False, i.e. moments are taken about the laboratory-frame origin. This is origin-independent for every input the family accepts: the calculator rejects non-zero net charge (see above), and for net-neutral systems — including zwitterions — the dipole does not depend on the choice of origin. The released model YAML is intentionally left unchanged, since editing it would alter the published model artifacts.
The invariant to preserve going forward: any future model family that supports net-charged systems must ship its Dipole/Quadrupole outputs with center_coord=True (center-of-mass origin), because for charged systems the laboratory-frame moment is origin-dependent. The only bypass of the neutrality check is validate_species=False, which is unsupported for production use.
Canonical model card¶
Full content (energy convention, training data details, full limitations list, citation) lives at the Hugging Face model card:
https://huggingface.co/isayevlab/aimnet2-rxn
The HF README is the canonical source — this page summarizes only the integration mechanics.