NNP options#

The nnp block of the input file activates a neural-network potential. ACEMD supports two modes:

  • NNP/MM (hybrid)sel defines the atoms simulated with the NNP; the rest of the system is described by the classical force field. Non-bonded interactions across the boundary are computed classically.

  • Pure NNPsel is omitted; the whole system is simulated with the NNP. Requires a non-classical structure file (PDB, CIF, BCIF, SDF, MOL2).

nnp:
  file: null
  name: null
  sel: null
  type: null
  max_num_neighbors: 128

name#

  • Type: string.

  • Default: none.

Model identifier. ACEMD handles the weights for any of the named models below — no file is needed. The only difference is where the weights come from. Names are matched case-insensitively and dashes are ignored (e.g. ANI-2x and ani2x are equivalent).

  • "AceFF-2.0" — Acellera’s TensorNet v2 model. Downloaded from HuggingFace on first use and cached under ~/.cache/acemd/nnp/.

  • "ANI-2x", "ANI-1x", "ANI-1ccx" — ANI models from torchani. Downloaded by the torchani package on first use and cached for later runs.

  • "ANI-2xr", "ANI-2dr", "snnANI-2xr" — additional torchani ANI variants. The r / dr suffix denotes repulsion / dispersion+repulsion corrections (a smoother potential-energy surface for MD); these are not reactive models — they are still bonded-only models trained on the ANI-2x element set. Note that NNPOps acceleration only applies to the classic ANI-2x architecture; these variants fall back to the slower pure-PyTorch path.

  • "TorchMD-Net" — load a TorchMD-Net checkpoint from the path given in file. Use this when supplying a checkpoint manually (offline machine, version pinning, or any non-AceFF TorchMD-Net model).

file#

  • Type: path to an NNP checkpoint.

  • Default: none.

Required when name is "TorchMD-Net". Not needed for the named AceFF or ANI variants — ACEMD handles their weights automatically. If you do set file alongside a named AceFF model, the given path is used in place of the cached download (still benefitting from the model’s known charge range for validation).

sel#

  • Type: atom selection (VMD-style).

  • Default: none.

Atoms simulated with the NNP. Must cover the full molecule(s) of interest — covalent bonds across the selection boundary are not supported.

Omit sel for a pure NNP simulation.

type#

  • Values: torch.

  • Default: none.

NNP runtime. Currently only PyTorch (torch) is supported.

max_num_neighbors#

  • Type: positive integer.

  • Default: 128.

Maximum number of neighbours per atom used when building the NNP neighbour list. Only used for file-based models (TorchMD-Net / AceFF loaded from a file); it has no effect on the named torchani ANI models. The effective value is capped at the number of atoms in the NNP selection. Increase it only if you see neighbour-list overflow warnings for dense selections.

Examples#

NNP/MM with AceFF (auto-download)#

nnp:
  name: AceFF-2.0
  sel: "resname BEN"
  type: torch

NNP/MM with ANI-2x#

nnp:
  name: ANI-2x
  sel: "resname BEN"
  type: torch

NNP/MM with a manually managed checkpoint#

nnp:
  file: aceff_v2.0.ckpt
  name: TorchMD-Net
  sel: "resname BEN"
  type: torch

Pure NNP#

nnp:
  name: AceFF-2.0
  type: torch

Recommendations#

  • Use timestep: 2 fs for NNP and NNP/MM. NNPs are less numerically stable than classical force fields and larger time steps lead to drift or NaNs.

  • Prefer AceFF over ANI for systems with charged molecules. ANI cannot correctly describe molecules with non-zero total charge; AceFF 2.0 supports total charges of -2 to +2.

See also#