def test_replay(): from math import sqrt from ase import Atoms, Atom from ase.constraints import FixAtoms from ase.calculators.emt import EMT from ase.optimize import QuasiNewton from ase.io import read from ase.visualize import view # Distance between Cu atoms on a (100) surface: d = 3.6 / sqrt(2) a = Atoms('Cu', positions=[(0, 0, 0)], cell=(d, d, 1.0), pbc=(True, True, False)) a *= (2, 2, 1) # 2x2 (100) surface-cell # Approximate height of Ag atom on Cu(100) surfece: h0 = 2.0 a += Atom('Ag', (d / 2, d / 2, h0)) if 0: view(a) constraint = FixAtoms(range(len(a) - 1)) a.calc = EMT() a.set_constraint(constraint) dyn1 = QuasiNewton(a, trajectory='AgCu1.traj', logfile='AgCu1.log') dyn1.run(fmax=0.1) a = read('AgCu1.traj') a.calc = EMT() print(a.constraints) dyn2 = QuasiNewton(a, trajectory='AgCu2.traj', logfile='AgCu2.log') dyn2.replay_trajectory('AgCu1.traj') dyn2.run(fmax=0.01)
'a').write("Run %i ended on " % (run) + time.strftime('%m/%d/%Y\t%H:%M:%S') + " after %4.2f hours" % ((now - starttime) / 3600.) + '\n') os.system(restart_command) sys.exit() #################################### qn.attach(traj) qn.attach(StopCalc) starttime = time.time() if run > 0: qn.replay_trajectory('qn.traj') qn.run(fmax=0.05) pdos.pdos(atoms, outdir='outdir', spinpol=False, save_pkl=save_pdos_pkl, Emin=-20, Emax=20, kpts=(kpts[0] * 3, kpts[1] * 3, 1), DeltaE=0.01, nscf=True) bader.bader(atoms, outdir='outdir', spinpol=False,
from ase.io import read from ase.vibrations import Vibrations # Distance between Cu atoms on a (100) surface: d = 3.6 / sqrt(2) a = Atoms('Cu', positions=[(0, 0, 0)], cell=(d, d, 1.0), pbc=(True, True, False)) a *= (2, 2, 1) # 2x2 (100) surface-cell # Approximate height of Ag atom on Cu(100) surfece: h0 = 2.0 a += Atom('Ag', (d / 2, d / 2, h0)) if 0: view(a) constraint = FixAtoms(range(len(a) - 1)) a.set_calculator(EMT()) a.set_constraint(constraint) dyn1 = QuasiNewton(a, trajectory='AgCu1.traj', logfile='AgCu1.log') dyn1.run(fmax=0.1) a = read('AgCu1.traj') a.set_calculator(EMT()) print a.constraints dyn2 = QuasiNewton(a, trajectory='AgCu2.traj', logfile='AgCu2.log') dyn2.replay_trajectory('AgCu1.traj') dyn2.run(fmax=0.01)