コード例 #1
0
ファイル: solidparticle.py プロジェクト: cdknorow/MD
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
コード例 #2
0
ファイル: bond_unit_test.py プロジェクト: cdknorow/MD
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)