calc = Calculator(nbands=8, h=0.2, txt='O2.txt', tolerance=1e-9) O2.set_calculator(calc) e0 = O2.get_potential_energy() f = O2.get_forces() #equal(2.1062, sum(abs(f.ravel())), 1e-2) calc.write('O2.gpw') print e0, f O2.positions[1] = (1.21 + d, d, d) e2 = O2.get_potential_energy() niter2 = calc.niter f2 = O2.get_forces() del calc, O2 if 1: atoms = Calculator('O2.gpw', txt='O2-restart.txt', tolerance=1e-9).get_atoms() e = atoms.get_potential_energy() atoms.positions[1] = (1.21 + d, d, d) e1 = atoms.get_potential_energy() f1 = atoms.get_forces() niter1 = atoms.get_calculator().niter print e1, e2 print niter1, niter2 print sum(abs(f1.ravel() - f2.ravel())) print f1, f2, f1 - f2 equal(e1, e2, 3e-5) equal(niter1, niter2, 0) equal(sum(abs(f1.ravel() - f2.ravel())), 0.0, 0.002)
e0 = O2.get_potential_energy() f = O2.get_forces() #equal(2.1062, sum(abs(f.ravel())), 1e-2) calc.write('O2.gpw') print e0, f O2.positions[1] = (1.21+d,d,d) e2 = O2.get_potential_energy() niter2 = calc.niter f2 = O2.get_forces() del calc,O2 if 1: atoms = Calculator('O2.gpw', txt='O2-restart.txt', tolerance=1e-9).get_atoms() e = atoms.get_potential_energy() atoms.positions[1] = (1.21+d,d,d) e1 = atoms.get_potential_energy() f1 = atoms.get_forces() niter1 = atoms.get_calculator().niter print e1,e2 print niter1,niter2 print sum(abs(f1.ravel()-f2.ravel())) print f1,f2, f1-f2 equal(e1,e2,3e-5) equal(niter1,niter2,0) equal(sum(abs(f1.ravel()-f2.ravel())),0.0,0.002)