def solid_particles(VW, L, VW_names, x, avg=1, step=5e4, bcc = True, sc = False, GenLattice = False): solid_particles = [] solid_crystals = [] try: solid_crystals = util.pickle_load('spcrystal.pkl') solid_particles = util.pickle_load('solidp.pkl') except: for k in x: print 'step', k A = av.average_position(VW,k,avg,L) if bcc: num, crystals = (bond_order.solid_particles(A, L[k],c_cut=0.15, count=8,l=6,crystal=7)) if sc: num, crystals = (bond_order.solid_particles(VW[k], L[k],c_cut=0.175, count=6,l=4,crystal=5)) solid_crystals.append(crystals) solid_particles.append(num) util.pickle_dump(solid_crystals,'spcrystal.pkl') util.pickle_dump(solid_particles,'solidp.pkl') fid = open('solidpart.txt','w') for i in range(len(x)): fid.write('%i %i %.2f\n'%(x[i], solid_particles[i], L[x[i]][0])) fid.close() if GenLattice: # make an xyz file of the crystals and there locations f = open('solidpcrystals.xyz','w') count=0 for k in x: f.write(('%i \n\n')%(VW.shape[1])) for i in range((len(solid_crystals[count]))): if solid_crystals[count][i] == 1: f.write(('%c %.2f %.2f %.2f \n')%('V',VW[k][i][0],VW[k][i][1],VW[k][i][2])) else: f.write(('%c %.2f %.2f %.2f\n')%('W',4*L[k][0],4*L[k][0],4*L[k][0])) count += 1 f.close() return x, solid_particles
import numpy as np import MD import MD.analysis.bond_order as bond_order from MD.util import util as util reload(bond_order) VW = util.pickle_load('bcc_unit.pkl') L=4 #bond_order.structure_correlation(VW,L,l=6,crystal=8,rcut=0.88,verbose=False) bond_order.solid_particles(VW,L,l=6,crystal=8,rcut=0.88,verbose=False) #bond_order.steinhardt_order(VW,L,l=2,rcut=1.01,verbose=False) #bond_order.steinhardt_order(VW,L,l=4,rcut=1.01,verbose=False) #bond_order.steinhardt_order(VW,L,l=6,rcut=1.01,verbose=False) #bond_order.steinhardt_order(VW,L,l=8,rcut=1.01,verbose=False) #bond_order.steinhardt_order(VW,L,l=10,rcut=1.01,verbose=False)