atoms.set_momenta(1e-6 * random.random([len(atoms), 3])) print "Initializing ..." predyn = VelocityVerlet(atoms, 0.5) try: predyn.run(2500) except: print atoms.arrays['positions'] print atoms.arrays['momenta'] print atoms.arrays['momenta'].shape print atoms.get_masses() print atoms.get_masses().shape raise initr = atoms.get_positions() initp = atoms.get_momenta() def targetfunc(params, x): return params[0] * exp(-params[1] * x) + params[2] output = file("Langevin.dat", "w") for temp, frict in ((0.01, 0.001),): dyn = Langevin(atoms, timestep, temp, frict) print "" print "Testing Langevin dynamics with T = %f eV and lambda = %f" % (temp, frict) ekin = atoms.get_kinetic_energy()/natoms print ekin output.write("%.8f\n" % ekin) temperatures = [(0, 2.0 / 3.0 * ekin)]