map(float, outcar.readline().split()[:3]) for a in range(nAtoms) ] tet, rcut = orderParam.tetrahedral(atoms, basis, rcut=rcut) tAvg = sum(tet) / len(tet) tets = " ".join(map(str, tet)) tetraOut.write(str(tAvg) + " " + tets + "\n") if lammpsFlag: nAtoms = lammpsIO.nAtoms(filename) basisByteNums = lammpsIO.basisBytes(filename) atomsByteNums = lammpsIO.atomsBytes(filename) tetraOut = open(filename + ".tetra", "w") tetraOut.write("AverageTetra PerAtomTetra\n") for i, (bByte, aByte) in enumerate(zip(basisByteNums, atomsByteNums)): basis = lammpsIO.parseBasis(filename, bByte) atoms, dummy = lammpsIO.parseAtoms(filename, aByte, nAtoms, basis) tet, rcut = orderParam.tetrahedral(atoms, basis, rcut=rcut) tAvg = sum(tet) / len(tet) tets = " ".join(map(str, tet)) tetraOut.write(str(tAvg) + " " + tets + "\n") #mencoder "mf://*.png" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4 #opt="vbitrate=2160000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3" #mencoder -ovc lavc -lavcopts vcodec=msmpeg4v2:vpass=1:$opt -mf type=png:fps=48 -nosound -o /dev/null mf://\*.png #mencoder -ovc lavc -lavcopts vcodec=msmpeg4v2:vpass=2:$opt -mf type=png:fps=48 -nosound -o output.avi mf://\*.png
for i,b in enumerate(bytenums): outcar.seek(b) outcar.readline() outcar.readline() atoms.append([map(float,outcar.readline().split()[:3]) for a in range(nAtoms)]) scale = 5E-15 if lammpsFlag: nAtoms = lammpsIO.nAtoms(filename) basisByteNums = lammpsIO.basisBytes(filename) atomsByteNums = lammpsIO.atomsBytes(filename) for i,(bByte,aByte) in enumerate(zip(basisByteNums,atomsByteNums)): basis = lammpsIO.parseBasis(filename,bByte) try: a,dummy = lammpsIO.parseAtoms(filename,aByte,nAtoms,basis) except IndexError: break atoms.append(a) scale = 0.001E-12 scale /= 1E-12 #picosecond conversion atoms = array(atoms) steps,rmsd =rootMeanSquareDist.rootMeanSquareCorrelate(atoms,basis) steps = [i*scale for i in steps] rmsddata+=[str(y)+" "+str(z)+"\n" for y,z in zip(steps,rmsd)] rmsdfile=filename+".rmsdCorrelate"
dumpFilename = fname+"lmp.dump" possibleSuffix = [i for i in possibleSuffix if os.path.isfile(fname+i)] print possibleSuffix ensembleHead = " ".join([i.strip(".") for i in possibleSuffix]) ensembles = None if len(possibleSuffix)>0: ensembles = [parserGens.parseEnsemble(fname+i) for i in possibleSuffix] if "OUTCAR" in fname: nAtoms = outcarIO.nAtoms(fname) basis = array(map(array,outcarIO.basis(fname))) bounds = [[0,basis[0][0]],[0,basis[1][1]],[0,basis[2][2]]] types = outcarIO.types(fname) #Find the starting locations of atomic data in outcarfile grepResults = subprocess.check_output("grep -b POSITION %s"%fname,shell=True).split("\n") bytenums=[int(i.split(":")[0]) for i in grepResults if len(i)>2] outcarParsed = parserGens.parseOutcarAtoms(bytenums,fname,nAtoms) lammpsIO.writeDump(dumpFilename,basis,types,outcarParsed,ensembles,ensembleHead) else: nAtoms = lammpsIO.nAtoms(fname) basis = lammpsIO.basis(fname) bounds = [[0,basis[0][0]],[0,basis[1][1]],[0,basis[2][2]]] b = lammpsIO.atomsBytes(fname) dummy,types = lammpsIO.parseAtoms(fname,b[0],nAtoms,basis) dumpParsed = parserGens.parseLammpsAtoms(b,fname,nAtoms) lammpsIO.writeDump(dumpFilename,basis,types,dumpParsed,ensembles,ensembleHead)