コード例 #1
0
ファイル: outcar2atomInfo.py プロジェクト: acadien/matcalc
    except IndexError:
        num=None

    refStructure=None
    if len(sys.argv)==3:
        refStructure=int(sys.argv[2])
    
    #First and last configurations
    dummy,dummy,basisFirst,atomsFirst,dummy,typesFirst = outcarIO.outcarReadConfig(outcarFile,wantconfig=0)
    dummy,dummy,basisLast,atomsLast,dummy,typesLast = outcarIO.outcarReadConfig(outcarFile,wantconfig=-1)

    #MSD
    delT,msdAtom=outcarMeanSquareDisplaceAtom(outcarFile,refStructure)

    #TET    
    tetsFirst,rcutFirst=tetrahedral(atomsFirst,basisFirst,rcut=rcut)
    print "First Tetra/rcut",sum(tetsFirst)/len(tetsFirst),rcutFirst
    tetsLast,rcutLast=tetrahedral(atomsLast,basisLast,rcut=rcut)
    print "Last Tetra/rcut",sum(tetsLast)/len(tetsLast),rcutLast

    #CN
    cnFirst,rcutFirst=coordinationNumber(atomsFirst,basisFirst,rcut=rcut)
    print "First CN/rcut",float(sum(cnFirst))/len(cnFirst),rcutFirst
    cnLast,rcutLast=coordinationNumber(atomsLast,basisLast,rcut=rcut)
    print "Last CN/rcut",float(sum(cnLast))/len(cnLast),rcutLast

    wFile = open(outcarFile+".MSDatom","w")

    wFile.write("#File generated by %s\n"%sys.argv[0].split("/")[-1])
    wFile.write("#%d atoms, %5.5f timestep size, %d number of steps\n"%(len(msdAtom),delT[0],len(delT)))
コード例 #2
0
ファイル: outcar2movie.py プロジェクト: acadien/matcalc
#Find the starting locations of atomic data in outcarfile
grepResults = subprocess.check_output("grep -b POSITION %s"%outcarFile,shell=True).split("\n")
bytenums=[int(i.split(":")[0]) for i in grepResults if len(i)>2]

outcar= open(outcarFile,"r")
mlab.figure(bgcolor=(0.8,0.8,0.8))
for i,b in enumerate(bytenums):
    if i%2==0:
        continue
    outcar.seek(b)
    outcar.readline()
    outcar.readline()
    
    atoms = [map(float,outcar.readline().split()[:3]) for a in range(nAtoms)]
    tet,rcut = orderParam.tetrahedral(atoms,basis,rcut=3.2)
    
    ax,ay,az=zip(*atoms)
    mlab.points3d(ax,ay,az,tet,colormap='jet',scale_factor=1.5,scale_mode='none',resolution=8)
    #mlab.plot3d([0,basis[0][0]],[0,basis[1][1]],[0,basis[2][2]],opacity=0)
    mlab.view(focalpoint=(basis[0][0]/1.1,basis[1][1]/1.1,basis[2][2]/1.1))
    n = str(i).zfill(5)
    mlab.savefig(movieDir+prefix+n+suffix,magnification=1.5)
    mlab.clf()

#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
コード例 #3
0
ファイル: ensembleTetra.py プロジェクト: akoufos/matcalc
    bytenums = [int(i.split(":")[0]) for i in grepResults if len(i) > 2]

    outcar = open(filename, "r")
    tetraOut = open(filename + ".tetra", "w")

    tetraOut.write("AverageTetra PerAtomTetra\n")
    for i, b in enumerate(bytenums):
        outcar.seek(b)
        outcar.readline()
        outcar.readline()

        atoms = [
            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)
コード例 #4
0
    refStructure = None
    if len(sys.argv) == 3:
        refStructure = int(sys.argv[2])

    #First and last configurations
    dummy, dummy, basisFirst, atomsFirst, dummy, typesFirst = outcarIO.outcarReadConfig(
        outcarFile, wantconfig=0)
    dummy, dummy, basisLast, atomsLast, dummy, typesLast = outcarIO.outcarReadConfig(
        outcarFile, wantconfig=-1)

    #MSD
    delT, msdAtom = outcarMeanSquareDisplaceAtom(outcarFile, refStructure)

    #TET
    tetsFirst, rcutFirst = tetrahedral(atomsFirst, basisFirst, rcut=rcut)
    print "First Tetra/rcut", sum(tetsFirst) / len(tetsFirst), rcutFirst
    tetsLast, rcutLast = tetrahedral(atomsLast, basisLast, rcut=rcut)
    print "Last Tetra/rcut", sum(tetsLast) / len(tetsLast), rcutLast

    #CN
    cnFirst, rcutFirst = coordinationNumber(atomsFirst, basisFirst, rcut=rcut)
    print "First CN/rcut", float(sum(cnFirst)) / len(cnFirst), rcutFirst
    cnLast, rcutLast = coordinationNumber(atomsLast, basisLast, rcut=rcut)
    print "Last CN/rcut", float(sum(cnLast)) / len(cnLast), rcutLast

    wFile = open(outcarFile + ".MSDatom", "w")

    wFile.write("#File generated by %s\n" % sys.argv[0].split("/")[-1])
    wFile.write("#%d atoms, %5.5f timestep size, %d number of steps\n" %
                (len(msdAtom), delT[0], len(delT)))