Esempio n. 1
0
    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)
Esempio n. 2
0
    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)