def gen_msd(log, dr): a0 = Dump("t0.lammpstrj") b0 = a0.parser() a1 = Dump("t1.lammpstrj") b1 = a1.parser() n0 = len(b0.atoms) n1 = len(b1.atoms) log.write log.write("t0 has %d atoms\n"%n0) log.write("t1 has %d atoms\n"%n1) if n0 != n1: sys.stderr.write("Atom numbers are different!") sys.stderr.flush() sys.exit() else: natom = n0 neb_atoms = [] o = open("detail.dat", "w") for i in range(natom): r2 = 0 for j in range(3): d = (b0.atoms[i].x[j] - b1.atoms[i].x[j]) r2 += d * d if r2 > dr*dr: neb_atoms.append(b1.atoms[i]) o.write("%d\t%.4f\t%.4f\t%.4f\t%.4f\n" %(i+1, math.sqrt(r2), b1.atoms[i].x[0], b1.atoms[i].x[1], b1.atoms[i].x[2])) o.close() o = open("final.coords", "w") o.write("%d\n"%len(neb_atoms)) for i in neb_atoms: o.write("%d\t%.4f\t%.4f\t%.4f\n" %(i.an, i.x[0], i.x[1], i.x[2])) o.close()
def gen_msd(log, dr): a0 = Dump("t0.lammpstrj") b0 = a0.parser() a1 = Dump("t1.lammpstrj") b1 = a1.parser() n0 = len(b0.atoms) n1 = len(b1.atoms) log.write log.write("t0 has %d atoms\n" % n0) log.write("t1 has %d atoms\n" % n1) if n0 != n1: sys.stderr.write("Atom numbers are different!") sys.stderr.flush() sys.exit() else: natom = n0 neb_atoms = [] o = open("detail.dat", "w") for i in range(natom): r2 = 0 for j in range(3): d = (b0.atoms[i].x[j] - b1.atoms[i].x[j]) r2 += d * d if r2 > dr * dr: neb_atoms.append(b1.atoms[i]) o.write("%d\t%.4f\t%.4f\t%.4f\t%.4f\n" % (i + 1, math.sqrt(r2), b1.atoms[i].x[0], b1.atoms[i].x[1], b1.atoms[i].x[2])) o.close() o = open("final.coords", "w") o.write("%d\n" % len(neb_atoms)) for i in neb_atoms: o.write("%d\t%.4f\t%.4f\t%.4f\n" % (i.an, i.x[0], i.x[1], i.x[2])) o.close()
from block import dumpBlock from dump import Dump from output_conf import toXyz, toPdb lmpfile = "dump.lammpstrj" sepfile = "dump.sep" dt = 1 # parse the dump file with multi configurations into seperated dump files nframe = dumpBlock(lmpfile, sepfile, dt) nframe += 1 for i in range(0, nframe, dt): #for i in range(10): a = Dump("%s%05d.dump"%(sepfile,i)) b = a.parser() #toXyz(b, "xyz%05d.xyz"%i) #b.sortXYZ("z") toPdb(b, "pdb%05d.pdb"%i)
from block import dumpBlock from dump import Dump from output_conf import toXyz, toPdb, toPoscar, toReaxLammps lmpfile = "dump.lammpstrj" sepfile = "dump.sep" dt = 1 # parse the dump file with multi configurations into seperated dump files nframe = dumpBlock(lmpfile, sepfile, dt) nframe += 1 for i in range(0, nframe, dt): #for i in range(10): a = Dump("%s%05d.dump" % (sepfile, i)) b = a.parser() b.assignAtomTypes() b.assignEleTypes() b.toFrac() toXyz(b, "xyz%05d.xyz" % i) #b.sortXYZ("z") toPdb(b, "pdb%05d.pdb" % i) toReaxLammps(b, "lammps.data") toPoscar(b, )