N = np.rint(Nkppra / totatoms).astype(int) oldROD = pos.rod oldbvecs = np.array(pos.bvecs) reallatt = np.array((pos.avecs[0], pos.avecs[1], pos.avecs[2])) print "Real lattice" print reallatt print "Recip lattice" reciplatt = np.array((pos.bvecs[0], pos.bvecs[1], pos.bvecs[2])) print reciplatt print "Recip lattice/2pi" reciplatt = np.array((pos.bvecs[0], pos.bvecs[1], pos.bvecs[2])) print reciplatt / 2 / np.pi print "Real lattice orth defect:", pos.orthogonality_defect print "Recp lattice orth defect:", pos.rod pos.kmink_reduce( 1e-1 ) ####THIS DOES NOT CHANGE THE BVECS. HAVE TO WRITE A NEW POSCAR, AS THE PROPERTIES ARE READ ONLY sys.stdout.flush() newROD = pos.rod newbvecs = np.array(pos.bvecs) reciplatt = np.array((pos.bvecs[0], pos.bvecs[1], pos.bvecs[2])) # print reciplatt test = [] if abs(newROD - oldROD) < 1e-3 and np.equal(newbvecs, oldbvecs).all: # if abs(newROD - oldROD) < 1e-3 : print "Recip lattice already reduced" print reciplatt pos.name = pos.name + ' k-space mink reduced OK' else: pos.name = pos.name + ' New lattice for k-space mink reduced' print "Old recip lattice"
# back = subprocess.check_output(["echo", "Hello World!"]) # back = check_out(["echo", "Hello World!"]) # back = os.system('mink_reduction.py < POSCAR0 ') # back = subprocess.check_output(['mink_reduction.py',' <',' POSCAR0 '], shell=True,) # back = nstrip(subprocess.check_output(['mink_reduction.py < POSCAR0'], shell=True,).split()) # print 'back' # print back N = np.rint(Nkppra / totatoms).astype(int) pfile = open('POSCAR0', 'r') rlines = [i.strip() for i in pfile.readlines()] pos = POSCAR(lines=rlines) oldROD = pos.rod oldbvecs = np.array(pos.bvecs) print "Real lattice orth defect:", pos.orthogonality_defect print "Recp lattice orth defect:", pos.rod pos.kmink_reduce(1e-1) sys.stdout.flush() newROD = pos.rod newbvecs = np.array(pos.bvecs) reciplatt = np.array((pos.bvecs[0], pos.bvecs[1], pos.bvecs[2])) # print reciplatt test = [] if abs(newROD - oldROD) < 1e-3 and np.equal(newbvecs, oldbvecs).all: # if abs(newROD - oldROD) < 1e-3 : print "Recip lattice already reduced" else: print "Old recip lattice" print oldbvecs print "New recip lattice orth defect", newROD print "New recip lattice" print newbvecs
totatoms = np.sum(pos.types) N = np.rint(Nkppra/totatoms).astype(int) oldROD = pos.rod oldbvecs = np.array(pos.bvecs) reallatt = np.array((pos.avecs[0],pos.avecs[1],pos.avecs[2])) print "Real lattice" print reallatt print "Recip lattice" reciplatt = np.array((pos.bvecs[0],pos.bvecs[1],pos.bvecs[2])) print reciplatt print "Recip lattice/2pi" reciplatt = np.array((pos.bvecs[0],pos.bvecs[1],pos.bvecs[2])) print reciplatt/2/np.pi print "Real lattice orth defect:",pos.orthogonality_defect print "Recp lattice orth defect:",pos.rod pos.kmink_reduce(1e-1) ####THIS DOES NOT CHANGE THE BVECS. HAVE TO WRITE A NEW POSCAR, AS THE PROPERTIES ARE READ ONLY sys.stdout.flush() newROD = pos.rod newbvecs = np.array(pos.bvecs) reciplatt = np.array((pos.bvecs[0],pos.bvecs[1],pos.bvecs[2])) # print reciplatt test = [] if abs(newROD - oldROD) < 1e-3 and np.equal(newbvecs,oldbvecs).all: # if abs(newROD - oldROD) < 1e-3 : print "Recip lattice already reduced" print reciplatt pos.name = pos.name + ' k-space mink reduced OK' else: pos.name = pos.name + ' New lattice for k-space mink reduced' print "Old recip lattice" print oldbvecs
# back = subprocess.check_output(["echo", "Hello World!"]) # back = check_out(["echo", "Hello World!"]) # back = os.system('mink_reduction.py < POSCAR0 ') # back = subprocess.check_output(['mink_reduction.py',' <',' POSCAR0 '], shell=True,) # back = nstrip(subprocess.check_output(['mink_reduction.py < POSCAR0'], shell=True,).split()) # print 'back' # print back N = np.rint(Nkppra/totatoms).astype(int) pfile = open('POSCAR0','r') rlines = [i.strip() for i in pfile.readlines()] pos = POSCAR(lines=rlines) oldROD = pos.rod oldbvecs = np.array(pos.bvecs) print "Real lattice orth defect:",pos.orthogonality_defect print "Recp lattice orth defect:",pos.rod pos.kmink_reduce(1e-1) sys.stdout.flush() newROD = pos.rod newbvecs = np.array(pos.bvecs) reciplatt = np.array((pos.bvecs[0],pos.bvecs[1],pos.bvecs[2])) # print reciplatt test = [] if abs(newROD - oldROD) < 1e-3 and np.equal(newbvecs,oldbvecs).all: # if abs(newROD - oldROD) < 1e-3 : print "Recip lattice already reduced" else: print "Old recip lattice" print oldbvecs print "New recip lattice orth defect", newROD print "New recip lattice" print newbvecs