#!@PYTHON@ # # Re-creates neighbours in .data file for water molecules OH2, H1, H2 being consecutive import sys, math if len(sys.argv) < 3: print "Usage: "+sys.argv[0]+" " sys.exit(1) input=open(sys.argv[1],"r") output=open(sys.argv[2],"w") outputXYZ=open(sys.argv[2]+".xyz","w") outputXYZ.write("1734\n # test\n") x=[0,0,0] for line in input: if "#" in line: output.write(line) continue if " OH2" in line: entries=line.split() entries[0]=str(int(entries[0])-1) entries[5]=str(int(entries[5])+0) entries[6]=str(int(entries[6])+1) output.write("%s\tOT\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (entries[0], entries[2], entries[3], entries[4], entries[5], entries[6], entries[7], entries[8])) outputXYZ.write("O\t%s\t%s\t%s\n" % (entries[2], entries[3], entries[4])) continue if " H1" in line: entries=line.split() entries[0]=str(int(entries[0])-1) entries[5]=str(int(entries[5])-2) output.write("%s\tHT\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (entries[0], entries[2], entries[3], entries[4], entries[5], entries[6], entries[7], entries[8])) outputXYZ.write("H\t%s\t%s\t%s\n" % (entries[2], entries[3], entries[4])) continue if " H2" in line: entries=line.split() entries[0]=str(int(entries[0])-1) entries[5]=str(int(entries[5])-3) output.write("%s\tHT\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (entries[0], entries[2], entries[3], entries[4], entries[5], entries[6], entries[7], entries[8])) outputXYZ.write("H\t%s\t%s\t%s\n" % (entries[2], entries[3], entries[4])) continue entries=line.split() x[2]=str(float(entries[2])) x[1]=str(float(entries[3])) x[0]=str(float(entries[4])) for n in range(3): entries[2+n]=x[n] output.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (entries[0], entries[1], entries[2], entries[3], entries[4], entries[5], entries[6], entries[7], entries[8])) outputXYZ.write("%s\t%s\t%s\t%s\n" % (entries[1], entries[2], entries[3], entries[4])) sys.exit(0)