Esempio n. 1
0
    if scale == None:
        if "OUTCAR" in inputFile:
            scale = 5E-15 #5fs (potim=5)
        else:
            scale = 0.001E-12 #0.001ps (default for units = metal)

    if logtEnable:
        header = "#Generated by %s using file %s\n log(t) ISF \n"%(sys.argv[0].split("/")[-1],inputFile)
    else:
        header = "#Generated by %s using file %s\n t(ps) ISF \n"%(sys.argv[0].split("/")[-1],inputFile)

    if "OUTCAR" in inputFile:
        ocarFile = inputFile
        atomByteNums = outcarIO.atomBytes(ocarFile)
        nAtom = outcarIO.nAtoms(ocarFile)
        basis = outcarIO.basis(ocarFile)
        
        configIterator = parserGens.parseOutcarAtoms(atomByteNums,ocarFile,nAtom)
        atomsTime = [array(atoms) for atoms in configIterator]
        atomsTime = unwrap(atomsTime,basis)
    else:
        lmpFile = inputFile
        atomByteNums = lammpsIO.atomsBytes(lmpFile)
        nAtom = lammpsIO.nAtoms(lmpFile)
        basis = lammpsIO.basis(lmpFile)
        bounds=[[0,basis[0][0]],[0,basis[1][1]],[0,basis[2][2]]]

        configIterator = parserGens.parseLammpsAtoms(atomByteNums,lmpFile,nAtom)
        atomsTime = [array(atoms) for atoms in configIterator]
    bounds=[[0,basis[0][0]],[0,basis[1][1]],[0,basis[2][2]]]
Esempio n. 2
0
filename = sys.argv[1]
header=["TimeStep AverageRMSD\n"]
rmsddata = header

outcarFlag=False
lammpsFlag=False
if "OUTCAR" in filename:
    outcarFlag=True
    lammpsFlag=False
else:
    outcarFlag=False
    lammpsFlag=True

atoms=list()
if outcarFlag:
    nAtoms = outcarIO.nAtoms(filename)
    basis = array(map(array,outcarIO.basis(filename)))

    #Find the starting locations of atomic data in outcarfile
    grepResults = subprocess.check_output("grep -b POSITION %s"%filename,shell=True).split("\n")
    bytenums=[int(i.split(":")[0]) for i in grepResults if len(i)>2]

    outcar = open(filename,"r")
    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:
Esempio n. 3
0
possibleSuffix = [".rmsd",".cn",".tetra",".rmsd50",".rmsd100",".rmsd1000",".rmsd5000",".rmsd10000",".2shelltetra",".2shellcn",".2shellrmsd100",".tetra.avg1000",".tetra.avg5000",".tetra.avg100",".tetra.avg500"]

utils.usage(["<outcar,lamps dump>"],1,1,"Note: Automatically looks for <OUTCAR/dump.suffix> for per atom ensembles. to include in the dump")

fname = sys.argv[1]
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]]]