예제 #1
0
파일: msd.py 프로젝트: erinshawusc/simpy
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()
예제 #2
0
파일: msd.py 프로젝트: tarbaig/simpy
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()
예제 #3
0
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)




예제 #4
0
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, )