def test_read_restart(self):
        L = self.L
        pe = L.eval("pe")

        L.write_restart('/tmp/test_read_restart.restart')
        del L

        L2 = PyLammps()
        L2.read_restart('/tmp/test_read_restart.restart')
        L2.run(0)
        os.remove('/tmp/test_read_restart.restart')

        self.assertEqual(L2.system.natoms, 2)
        self.assertEqual(L2.atoms[0].position, (-1.0, 0.0, 0.0))
        self.assertEqual(L2.atoms[1].position,  (1.0, 0.0, 0.0))
        self.assertEqual(L2.eval("pe"), pe)
Esempio n. 2
0
    starttime = time.time()
    L.run(20000)
    print("dt at start: {} fs".format(L.eval("dt") * 1000))
    print("T at start: {} K".format(L.eval("temp")))
    print("elapsed time: {} s".format(time.time() - starttime))
    L.unfix("thermofix2")

    #initial equilibration procedure finished:
    print("****************************************")
    print("initial equilibration procedure finished, writing restart file")
    print("****************************************")

    L.write_restart("restart.equil")
    L.write_restart("restartfromprevdispl.equil")
else:
    L.read_restart("restart.equil")

L.velocity("all", "create", Temp, 12345, "dist", "gaussian", "mom", "yes",
           "rot", "yes")
#L.fix("mainvartimestep","clustergr","dt/reset",10,"NULL","NULL",latticeconst/30,"emax",0.1,"units","box")
L.fix("mainvartimestep", "clustergr", "dt/reset", 1, "NULL", "NULL", 0.1,
      "units", "box")
L.fix("linmomfix", "clustergr", "momentum", 1, "linear", 1, 1,
      1)  # remove linear momentum for better displacement detection

#L.fix("thermofix3","clustergr","langevin",Temp,Temp,0.05, 2614,"zero","yes")
#L.fix("thermofix3","clustergr","temp/csvr",Temp,Temp,0.1,12345)

nodispl = 0
nosputt = 0
displacement = False
    def test_use_data_file(self):
        L = PyLammps()
        L.units('real') # angstrom, kcal/mol, femtoseconds
        L.atom_style('atomic')
        L.boundary('p p p')

        L.lattice('none', 1.0)

        # create simulation cell
        L.region('r1 block', -15.0, 15.0, -15.0, 15.0, -15.0, 15.0)
        L.create_box(1, 'r1')

        # argon
        L.mass(1, 39.948002)
        L.pair_style('lj/cut', 8.5)
        L.pair_coeff(1, 1, 0.2379, 3.405)

        L.timestep(10.0)

        L.create_atoms(1, 'single', -1.0, 0.0, 0.0)
        L.create_atoms(1, 'single',  1.0, 0.0, 0.0)

        L.velocity('all create', 250.0, 54321, 'mom no rot no')

        L.minimize(1.0e-10, 1.0e-10, 100, 1000)

        L.reset_timestep(0)

        L.thermo(100)
        L.fix('f1 all nve')
        L.run(1000)

        L.write_restart('run.restart')
        L.write_data('run.data')

        L2 = PyLammps()
        L2.units('real')           # angstrom, kcal/mol, femtoseconds
        L2.atom_style('atomic')
        L2.boundary('p p p')

        L2.pair_style('lj/cut', 8.5)
        L2.read_data('run.data')

        L2.timestep(10.0)

        L2.thermo(100)
        L2.fix('f1 all nve')
        L2.run(1000)

        # reset status. forget all settings. delete system
        L2.clear()

        L2.read_restart('run.restart')

        L2.thermo(100)
        L2.fix('f1 all nve')
        L2.run(1000)

        os.remove('run.restart')
        os.remove('run.data')

        self.assertEqual(L.system, L2.system)
    starttime = time.time()
    L.run(20000)
    print("dt at start: {} fs".format(L.eval("dt") * 1000))
    print("T at start: {} K".format(L.eval("temp")))
    print("elapsed time: {} s".format(time.time() - starttime))
    L.unfix("thermofix2")

    #initial equilibration procedure finished:
    print("****************************************")
    print("initial equilibration procedure finished, writing restart file")
    print("****************************************")

    L.write_restart("restart.equil")
else:
    L.read_restart("restart.equil")

L.velocity("all", "create", Temp, 12345, "dist", "gaussian", "mom", "yes",
           "rot", "yes")
#L.fix("mainvartimestep","clustergr","dt/reset",10,"NULL","NULL",latticeconst/30,"emax",0.1,"units","box")
L.fix("mainvartimestep", "clustergr", "dt/reset", 1, "NULL", "NULL", 0.1,
      "units", "box")
L.fix("linmomfix", "clustergr", "momentum", 1, "linear", 1, 1,
      1)  # remove linear momentum for better displacement detection

#L.fix("thermofix3","clustergr","langevin",Temp,Temp,0.05, 2614,"zero","yes")
#L.fix("thermofix3","clustergr","temp/csvr",Temp,Temp,0.1,12345)

nodispl = 0
nosputt = 0
displacement = False