from ase.lattice.cubic import Diamond
from ase.md.langevin import Langevin
from ase.optimize import BFGS
from ase import units
import torchani
#h2 = Atoms('H2',
# positions = [[0,0,0],[0,0,0.7]])
#h2.calc = NWChem(xc='PBE')
#opt = BFGS(h2)
#opt.run(fmax=0.02)
atoms = Diamond(symbol="C", pbc=True)
print(len(atoms), "atoms in the cell")
calculator = torchani.models.ANI1ccx().ase()
atoms.set_calculator(calculator)
print("Begin minimizing...")
opt = BFGS(atoms)
opt.run(fmax=0.001)
print()
def printenergy(a=atoms):
"""Function to print the potential, kinetic and total energy."""
epot = a.get_potential_energy() / len(a)
ekin = a.get_kinetic_energy() / len(a)
print('Energy per atom: Epot = %.3feV Ekin = %.3feV (T=%3.0fK) '
'Etot = %.3feV' % (epot, ekin, ekin / (1.5 * units.kB), epot + ekin))
dyn = Langevin(atoms, 1 * units.fs, 300 * units.kB, 0.2)
dyn.attach(printenergy, interval=50)
print("Beginning dynamics...")
printenergy()
dyn.run(500)
```python