`ff = ForceField("openff-2.3.0-rc2.offxml")`
`ff = ForceField("openff-2.3.0-rc2.offxml")`
```
mamba install -c conda-forge "openff-toolkit>=0.17" "openff-interchange>=0.4.6" "openff-nagl>=0.5.3" "openff-nagl-models>=2025.09" "openff-forcefields>=2025.10"
```
```
mamba install -c conda-forge "openff-toolkit>=0.17" "openff-interchange>=0.4.6" "openff-nagl>=0.5.3" "openff-nagl-models>=2025.09" "openff-forcefields>=2025.10"
```
```
mamba create -n openff -c conda-forge "openff-toolkit>=0.17"
mamba activate openff
```
```
mamba create -n openff -c conda-forge "openff-toolkit>=0.17"
mamba activate openff
```
1. The first time NAGL is used in a new environment, there may be a few seconds of extra runtime due to pytorch initialization.
1. The first time NAGL is used in a new environment, there may be a few seconds of extra runtime due to pytorch initialization.
for idx, mol in enumerate(tqdm(mols, desc="Processing molecules")):
interchange = ff.create_interchange(mol.to_topology())
interchange.minimize()
mol.conformers[0] = interchange.positions
mol.to_file(f"minimized_mol_{idx}.sdf", file_format="sdf")
```
for idx, mol in enumerate(tqdm(mols, desc="Processing molecules")):
interchange = ff.create_interchange(mol.to_topology())
interchange.minimize()
mol.conformers[0] = interchange.positions
mol.to_file(f"minimized_mol_{idx}.sdf", file_format="sdf")
```
from openff.toolkit import Molecule, ForceField
from tqdm import tqdm # for progress bars
mols = Molecule.from_file("inputs.sdf") # loads 50 different molecules
ff = ForceField("openff_unconstrained-2.3.0-rc2.offxml")
...
from openff.toolkit import Molecule, ForceField
from tqdm import tqdm # for progress bars
mols = Molecule.from_file("inputs.sdf") # loads 50 different molecules
ff = ForceField("openff_unconstrained-2.3.0-rc2.offxml")
...