def outcar2poscar(outcar,outposcar,wantconfig): basis,atypes,atoms,head,poscar = outcarIO.outcar2poscar(outcar,wantconfig) poscarIO.write(outposcar,basis,atoms,atypes,head)
def outcar2poscar(outcar, outposcar, wantconfig): basis, atypes, atoms, head, poscar = outcarIO.outcar2poscar( outcar, wantconfig) poscarIO.write(outposcar, basis, atoms, atypes, head)
#unit is femto, but in 10E-10*10E-15 seconds to account for angstroms in distance timestep = outcarIO.timestep(outcarFile) * 10E-1 #Error check requested configuration if configRequest == -1: configRequest = nSteps - 1 if configRequest > nSteps: print "%d configurations available" % nSteps exit(0) if configRequest < 5: print "Need more than 5 steps for backwards - finite difference method." exit(0) #Gather poscar information for last set of atoms basis, atypes, atoms, head, poscar = outcarIO.outcar2poscar( outcarFile, configRequest) #Convert from fractional units to cartesian def u2a(u): a = list() a.append(u[0] * basis[0][0] + u[0] * basis[1][0] + u[0] * basis[2][0]) a.append(u[0] * basis[0][1] + u[1] * basis[1][1] + u[1] * basis[2][1]) a.append(u[0] * basis[0][2] + u[2] * basis[1][2] + u[2] * basis[2][2]) return a stepb0 = map(u2a, atoms) stepb1 = map(u2a, outcarIO.outcar2poscar(outcarFile, configRequest - 1)[2]) stepb2 = map(u2a, outcarIO.outcar2poscar(outcarFile, configRequest - 2)[2]) stepb3 = map(u2a, outcarIO.outcar2poscar(outcarFile, configRequest - 3)[2])
#unit is femto, but in 10E-10*10E-15 seconds to account for angstroms in distance timestep = outcarIO.timestep(outcarFile) * 10E-1 #Error check requested configuration if configRequest == -1: configRequest = nSteps-1 if configRequest > nSteps: print "%d configurations available"%nSteps exit(0) if configRequest < 5: print "Need more than 5 steps for backwards - finite difference method." exit(0) #Gather poscar information for last set of atoms basis,atypes,atoms,head,poscar = outcarIO.outcar2poscar(outcarFile,configRequest) #Convert from fractional units to cartesian def u2a(u): a=list() a.append(u[0]*basis[0][0]+u[0]*basis[1][0]+u[0]*basis[2][0]) a.append(u[0]*basis[0][1]+u[1]*basis[1][1]+u[1]*basis[2][1]) a.append(u[0]*basis[0][2]+u[2]*basis[1][2]+u[2]*basis[2][2]) return a stepb0 = map(u2a,atoms) stepb1 = map(u2a,outcarIO.outcar2poscar(outcarFile,configRequest-1)[2]) stepb2 = map(u2a,outcarIO.outcar2poscar(outcarFile,configRequest-2)[2]) stepb3 = map(u2a,outcarIO.outcar2poscar(outcarFile,configRequest-3)[2]) stepb4 = map(u2a,outcarIO.outcar2poscar(outcarFile,configRequest-4)[2])