Changeset 2136


Ignore:
Timestamp:
Jan 26, 2016 1:16:37 PM (6 years ago)
Author:
vondreele
Message:

fix indexing problem in 32 bit versions - Skip in ProgressDialog? doesn't work
skip user excluded reflections in HKLF exporters
modify MergeDialog? & more work on LaueUnique?
add 'O' option to 3DHKLF plots to center on origin

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r2135 r2136  
    353353            self.Cent = Obj.GetValue()
    354354            self.Laue = ''
    355             self.Draw()
     355            wx.CallAfter(self.Draw)
    356356           
    357357        def OnLaue(event):
    358358            Obj = event.GetEventObject()
    359359            self.Laue = Obj.GetValue()
    360             self.Draw()
     360            wx.CallAfter(self.Draw)
    361361           
    362362        def OnClass(event):
     
    364364            self.Class = Obj.GetValue()
    365365            self.Laue = ''
    366             self.Draw()
     366            wx.CallAfter(self.Draw)
    367367       
    368368        self.panel.Destroy()
     
    390390        mainSizer.Add(MatSizer)
    391391        laueClass = ['triclinic','monoclinic','orthorhombic','trigonal(H)','tetragonal','hexagonal','cubic']
    392         centroLaue = {'triclinic':['-1',],'monoclinic':['2/m','2/m(c)','2/m(a)',],
    393             'orthorhombic':['mmm',],'trigonal(H)':['-3','-3m1','-31m','-3m',],    \
    394             'tetragonal':['4/m','4/mmm',],'hexagonal':['6/m','6/mmm',],'cubic':['m3','m3m']}
    395         noncentroLaue = {'triclinic':['1',],'monoclinic':['2','2(a)','2(c)','m','m(a)','m(c)',],
    396             'orthorhombic':['222','mm2','m2m','2mm',],
    397             'trigonal(H)':['3','312','321','32','3m1','31m','3m',],
    398             'tetragonal':['4','-4','422','4mm','-42m','-4m2',], \
    399             'hexagonal':['6','-6','622','6mm','-6m2','-62m',],'cubic':['23','432','-43m']}
     392        centroLaue = {'triclinic':['-1',],'monoclinic':['2/m','1 1 2/m','2/m 1 1',],
     393            'orthorhombic':['m m m',],'trigonal(H)':['-3','-3 m 1','-3 1 m',],    \
     394            'tetragonal':['4/m','4/m m m',],'hexagonal':['6/m','6/m m m',],'cubic':['m 3','m 3 m']}
     395        noncentroLaue = {'triclinic':['1',],'monoclinic':['2','2 1 1','1 1 2','m','m 1 1','1 1 m',],
     396            'orthorhombic':['2 2 2','m m 2','m 2 m','2 m m',],
     397            'trigonal(H)':['3','3 1 2','3 2 1','3 m 1','3 1 m',],
     398            'tetragonal':['4','-4','4 2 2','4 m m','-4 2 m','-4 m 2',], \
     399            'hexagonal':['6','-6','6 2 2','6 m m','-6 m 2','-6 2 m',],'cubic':['2 3','4 3 2','-4 3 m']}
    400400        centChoice = ['noncentrosymmetric','centrosymmetric']
    401401        mainSizer.Add(wx.StaticText(self.panel,label=' Select Laue class for new lattice:'),0,WACV)
     
    18181818            usrRej = {'minF/sig':[' Min obs/sig (0-5): ',[0,5], ],'MinExt':[' Min extinct. (0-.9): ',[0,.9],],
    18191819                'MaxDF/F':[' Max delt-F/sig (3-1000): ',[3.,1000.],],'MaxD':[' Max d-spacing (3-500): ',[3,500],],
    1820                 'MinD':[' Min d-spacing (0.1-1.0): ',[0.1,1.0],]}
     1820                'MinD':[' Min d-spacing (0.1-2.0): ',[0.1,2.0],]}
    18211821
    18221822            fsqRef = wx.CheckBox(G2frame.dataDisplay,-1,label='Refine HKLF as F^2? ')
     
    30243024        Super = data[1]['Super']
    30253025        refList = G2lat.transposeHKLF(Trans,Super,refList)
     3026        SG = 'P '+Laue
     3027        SGData = G2spc.SpcGroup(SG)[1]
     3028#        refList = G2lat.LaueUnique2(SGData,refList)
    30263029        refList = G2lat.LaueUnique(Laue,refList)
    30273030        dlg = wx.ProgressDialog('Build HKL dictonary','',len(refList)+1,
     
    30633066            mergeRef = G2mth.sortArray(G2mth.sortArray(G2mth.sortArray(mergeRef,2),1),0)
    30643067        mergeRef = np.array(mergeRef)
    3065         print 'merge R = %6.2f%s for %d reflections'%(100.*sumDf/sumFo,'%',mergeRef.shape[0])
     3068        if sumFo:
     3069            print 'merge R = %6.2f%s for %d reflections'%(100.*sumDf/sumFo,'%',mergeRef.shape[0])
     3070        else:
     3071            print 'nothing to merge for %s reflections'%(mergeRef.shape[0])
    30663072        HKLFlist = []
    30673073        newName = Name+' '+Laue
     
    32213227            SuperVec = []       
    32223228        refList = data[1]['RefList']
     3229#        GSASIIpath.IPyBreak()
    32233230        FoMax = np.max(refList.T[5+data[1].get('Super',0)])
    32243231        page = G2frame.G2plotNB.nb.GetSelection()
  • trunk/GSASIIindex.py

    r2124 r2136  
    858858        else:
    859859            if dlg:
    860                 GoOn,Skip = dlg.Update(100*Nc/ncMax)
     860#                GoOn,Skip = dlg.Update(100*Nc/ncMax)   #wx error doesn't work in 32 bit versions!
     861                GoOn = dlg.Update(100*Nc/ncMax)
    861862                if Skip or not GoOn:
    862863                    GoOn = False
  • trunk/GSASIIlattice.py

    r2135 r2136  
    905905    N = min(nMax,len(HKL))
    906906    return ['%d %d %d'%(h[0],h[1],h[2]) for h in HKL[:N]]       
    907        
    908907
    909908def GenSSHLaue(dmin,SGData,SSGData,Vec,maxH,A):
     
    931930    return HKLs
    932931   
     932def LaueUnique2(SGData,refList):
     933    ''' Impose Laue symmetry on hkl
     934    :param SGData: space group data from 'P '+Laue
     935    :param HKLF: np.array([[h,k,l,...]]) reflection set to be converted
     936   
     937    :return: HKLF new reflection array with imposed Laue symmetry
     938    '''
     939    for ref in refList:
     940        H = ref[:3]
     941        Uniq = G2spc.GenHKLf(H,SGData)[2]
     942        Uniq = G2mth.sortArray(G2mth.sortArray(G2mth.sortArray(Uniq,2),1),0)
     943        ref[:3] = Uniq[-1]
     944    return refList
     945   
    933946def LaueUnique(Laue,HKLF):
    934947    ''' Impose Laue symmetry on hkl
     
    943956    :return: HKLF new reflection array with imposed Laue symmetry
    944957    '''
     958   
    945959    HKLFT = HKLF.T
    946     mat41 = np.array([[0,1,0],[-1,0,0],[0,0,1]])
    947     mat43 = np.array([[0,-1,0],[1,0,0],[0,0,1]])
    948     mat31 = np.array([[0,-1,0],[1,-1,0],[0,0,1]])
    949     mat32 = np.array([[-1,1,0],[-1,0,0],[0,0,1]])
    950     mat6 = np.array([[0,1,0],[-1,1,0],[0,0,1]])
     960    mat41 = np.array([[0,1,0],[-1,0,0],[0,0,1]])    #hkl -> k,-h,l
     961    mat43 = np.array([[0,-1,0],[1,0,0],[0,0,1]])    #hkl -> -k,h,l
     962    mat4bar = np.array([[0,1,0],[-1,0,0],[0,0,-1]])  #hkl -> k,-h,-l
     963    mat31 = np.array([[0,-1,0],[1,-1,0],[0,0,1]])   #hkl -> h-k,-k,l
     964    mat32 = np.array([[-1,1,0],[-1,0,0],[0,0,1]])   #hkl -> k-h,-h,l
     965    mat6 = np.array([[0,1,0],[-1,1,0],[0,0,1]])     #hkl -> k,k-h,l
     966    matdm = np.array([[0,1,0],[1,0,0],[0,0,1]])     #hkl -> k,h,l
     967    matd2 = np.array([[0,1,0],[1,0,0],[0,0,-1]])    #hkl -> k,h,-l
    951968    #triclinic
    952969    if Laue == '1': #ok
     
    955972        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    956973        HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])
    957     #monoclinic - all 3 settings OK
    958     #noncentrosymmetric
    959     elif Laue == '2(a)':    #ok 
     974    #monoclinic
     975    #noncentrosymmetric - all OK
     976    elif Laue == '2': 
    960977        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3])
    961978        HKLFT[:3] = np.where(HKLFT[2]==0,np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]),HKLFT[:3])
    962     elif Laue == '2':   #ok
     979    elif Laue == '1 1 2':
    963980        HKLFT[:3] = np.where(HKLFT[0]<=0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3])
    964981        HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])
    965     elif Laue == '2(c)':   #ok   
     982    elif Laue == '2 1 1':   
    966983        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    967984        HKLFT[:3] = np.where(HKLFT[1]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])
    968     elif Laue == 'm(a)':        #ok   
     985    elif Laue == 'm 1 1':   
    969986        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3])
    970     elif Laue == 'm':           #ok
     987    elif Laue == 'm':
    971988        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3])
    972     elif Laue == 'm(c)':        #ok
     989    elif Laue == '1 1 m':
    973990        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
    974     #centrosymmetric
    975     elif Laue == '2/m(a)':       
     991    #centrosymmetric - all OK
     992    elif Laue == '2/m 1 1':       
    976993        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3])
    977994        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3])
    978     elif Laue == '2/m': #ok
     995        HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])
     996    elif Laue == '2/m':
    979997        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3])
    980998        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3])
    981     elif Laue == '2/m(c)':
     999        HKLFT[:3] = np.where(HKLFT[1]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])
     1000    elif Laue == '1 1 2/m':
    9821001        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    9831002        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
    984     #orthorhombic - 3 settings all OK
    985     #noncentrosymmetric
    986     elif Laue == '222': #ok
     1003        HKLFT[:3] = np.where(HKLFT[2]==0,np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]),HKLFT[:3])
     1004    #orthorhombic
     1005    #noncentrosymmetric - all OK
     1006    elif Laue == '2 2 2':
    9871007        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    9881008        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3])
    9891009        HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])
    9901010        HKLFT[:3] = np.where(HKLFT[1]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])
    991     elif Laue == '2mm':    #ok  
     1011    elif Laue == '2 m m': 
    9921012        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3])
    9931013        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
    994     elif Laue == 'm2m':       #ok
     1014    elif Laue == 'm 2 m':
    9951015        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3])
    9961016        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
    997     elif Laue == 'mm2':    #ok   
     1017    elif Laue == 'm m 2':
    9981018        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3])
    9991019        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3])
    1000     #centrosymmetric
    1001     elif Laue == 'mmm': #ok
     1020    #centrosymmetric - all ok
     1021    elif Laue == 'm m m':
    10021022        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3])
    10031023        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3])
     
    10071027    elif Laue == '3':
    10081028        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1009     elif Laue == '312':
     1029        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat32[nxs,:,:])).T,HKLFT[:3])
     1030    elif Laue == '3 1 2':
    10101031        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3])
    10111032        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1012     elif Laue == '321':
     1033    elif Laue == '3 2 1':
    10131034        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3])
    10141035        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1015     elif Laue == '32':
    1016         HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3])
    1017         HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1018     elif Laue == '31m':
     1036    elif Laue == '3 1 m':
    10191037        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3])
    10201038        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1021     elif Laue == '3m1':
     1039    elif Laue == '3 m 1':
    10221040        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3])
    1023         HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1024     elif Laue == '3m':
    1025         HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3])
    10261041        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    10271042    #centrosymmetric
     
    10291044        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    10301045        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat3[nxs,:,:])).T,HKLFT[:3])
    1031     elif Laue == '-3m1':
     1046    elif Laue == '-3 m 1':
    10321047        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
    10331048        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat3[nxs,:,:])).T,HKLFT[:3])
    1034     elif Laue == '-31m':
    1035         HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
    1036         HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat3[nxs,:,:])).T,HKLFT[:3])
    1037     elif Laue == '-3m':
     1049    elif Laue == '-3 1 m':
    10381050        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
    10391051        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat3[nxs,:,:])).T,HKLFT[:3])
    10401052    #tetragonal
    1041     #noncentrosymmetric
    1042     elif Laue == '4':   #OK
     1053    #noncentrosymmetric - all ok
     1054    elif Laue == '4':
    10431055        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    10441056        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3])
    10451057        HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[1]>0,np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3])
    10461058    elif Laue == '-4':
    1047 #        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    1048 #        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3])
    1049         HKLFT[:3] = np.where(HKLFT[0]<0,np.where(HKLFT[1]>0,np.squeeze(np.inner(-HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3])       
    1050     elif Laue == '422':
     1059        HKLFT[:3] = np.where(HKLFT[0]<0,np.where(HKLFT[1]>0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3])       
    10511060        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    1052         HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3])
     1061        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3])       
     1062        HKLFT[:3] = np.where(HKLFT[0]==0,np.squeeze(np.inner(HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3])     
     1063    elif Laue == '4 2 2':
     1064        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
     1065        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    10531066        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3])
    1054     elif Laue == '4mm':
     1067        HKLFT[:3] = np.where(HKLFT[0]<HKLFT[1],np.squeeze(np.inner(HKLF[:,:3],matd2[nxs,:,:])).T,HKLFT[:3])
     1068    elif Laue == '4 m m':
    10551069        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    1056         HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3])
     1070        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    10571071        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3])
    1058     elif Laue == '-42m':
    1059         HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
     1072        HKLFT[:3] = np.where(HKLFT[0]<HKLFT[1],np.squeeze(np.inner(HKLF[:,:3],matdm[nxs,:,:])).T,HKLFT[:3])
     1073    elif Laue == '-4 2 m':
     1074        HKLFT[:3] = np.where(HKLFT[0]<0,np.where(HKLFT[1]>0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3])       
     1075        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
     1076        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3])       
     1077        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],matdm[nxs,:,:])).T,HKLFT[:3])
     1078        HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])     
     1079    elif Laue == '-4 m 2':
     1080        HKLFT[:3] = np.where(HKLFT[0]<0,np.where(HKLFT[1]>0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3])       
     1081        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
     1082        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3])       
     1083        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],matd2[nxs,:,:])).T,HKLFT[:3])
     1084        HKLFT[:3] = np.where(HKLFT[0]==HKLFT[1],np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3])   
     1085    #centrosymmetric - all ok
     1086    elif Laue == '4/m':
     1087        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
     1088        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
     1089        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3])
     1090        HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[1]>0,np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3])
     1091    elif Laue == '4/m m m':
     1092        HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
     1093        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
     1094        HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3])       
    10601095        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
    1061     elif Laue == '-4m2':
    1062         HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    1063         HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
    1064     #centrosymmetric
    1065     elif Laue == '4/m':
    1066         HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3])
    1067         HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3])
    1068         HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
    1069     elif Laue == '4/mmm':
    1070         HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    1071         HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    1072         HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    1073         HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
     1096        HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3])
    10741097    #hexagonal
    10751098    #noncentrosymmetric
     
    10801103        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    10811104        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1082     elif Laue == '622':
     1105    elif Laue == '6 2 2':
    10831106        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    10841107        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1085     elif Laue == '-6m2':
     1108    elif Laue == '-6 m 2':
    10861109        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    10871110        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1088     elif Laue == '-62m':
     1111    elif Laue == '-6 2 m':
    10891112        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    10901113        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
     
    10931116        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    10941117        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    1095     elif Laue == '6/mmm':
     1118    elif Laue == '6/m m m':
    10961119        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    10971120        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])
    10981121    #cubic 
    10991122    #noncentrosymmetric
    1100     elif Laue == '23':
     1123    elif Laue == '2 3':
    11011124        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    11021125        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
    1103     elif Laue == '432':
     1126    elif Laue == '4 3 2':
    11041127        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    11051128        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
    1106     elif Laue == '-43m':
     1129    elif Laue == '-4 3 m':
    11071130        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    11081131        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
    11091132    #centrosymmetric
    1110     elif Laue == 'm3':
     1133    elif Laue == 'm 3':
    11111134        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    11121135        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
    1113     elif Laue == 'm3m':
     1136    elif Laue == 'm 3 m':
    11141137        HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3])
    11151138        HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3])
  • trunk/GSASIIplot.py

    r2135 r2136  
    631631                Q = G2mth.AV2Q(-A,viewChoice[key][2])
    632632            drawingData['Quaternion'] = Q
     633        elif key in 'O':
     634            drawingData['viewPoint'][0] = [0,0,0]
    633635        elif key in 'Z':
    634636            Data['Zone'] = not Data['Zone']
     
    10171019    Page.Choice = None
    10181020    choice = [' save as/key:','jpeg','tiff','bmp','h: view down h','k: view down k','l: view down l',
    1019     'z: zero zone toggle','c: reset to default','b: toggle box ','+: increase scale','-: decrease scale',
     1021    'z: zero zone toggle','c: reset to default','o: set view point = 0,0,0','b: toggle box ','+: increase scale','-: decrease scale',
    10201022    'f: Fobs','s: Fobs**2','u: unit','d: Fo-Fc','w: DF/sig','i: toggle intensity scaling']
    10211023    cb = wx.ComboBox(G2frame.G2plotNB.status,style=wx.CB_DROPDOWN|wx.CB_READONLY,choices=choice)
  • trunk/GSASIIpwdGUI.py

    r2130 r2136  
    27852785        G2frame.dataFrame.RefineCell.Enable(False)
    27862786        dlg = wx.ProgressDialog("Generated reflections",'0 '+" cell search for "+bravaisNames[ibrav],101,
    2787             style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_SKIP|wx.PD_CAN_ABORT)
     2787#            style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_SKIP|wx.PD_CAN_ABORT) #desn't work in 32 bit versions
     2788            style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_ABORT)
    27882789        OK,dmin,newcells = G2indx.DoIndexPeaks(peaks[0],controls,bravais,dlg,G2frame.ifX20)
    27892790        dlg.Destroy()
     
    31113112    a table of reflections in the data window.
    31123113    '''
     3114    Controls = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.root, 'Controls'))
     3115    dMin = Controls['UsrReject'].get('MinD',0.05)
    31133116    def OnPlotHKL(event):
    31143117        '''Plots a layer of reflections
     
    31523155        else:                           #powder data is a dict of dicts; each same structure as SC 2nd dict
    31533156            refList = np.array(data[phaseName]['RefList'])
     3157        refList.T[3+Super] = np.where(refList.T[4+Super]<dMin,-refList.T[3+Super],refList.T[3+Super])
    31543158        FoMax = np.max(refList.T[8+Super])
    31553159        Hmin = np.array([int(np.min(refList.T[0])),int(np.min(refList.T[1])),int(np.min(refList.T[2]))])
     
    32183222            if Super:
    32193223                colLabels.insert(3,'M')
     3224        refs.T[3+Super] = np.where(refs.T[4+Super]<dMin,-refs.T[3+Super],refs.T[3+Super])
    32203225        return G2G.Table(refs,rowLabels=rowLabels,colLabels=colLabels,types=Types)
    32213226
     
    33393344#        raise Exception("how did we get a invalid phase name?")   
    33403345    ShowReflTable(phaseName)
    3341     G2frame.refTable[phaseName].Fit()
    3342     size = G2frame.refTable[phaseName].GetSize()
    3343     G2frame.dataFrame.setSizePosLeft([size[0]+32,350])       
     3346#    G2frame.refTable[phaseName].Fit()   #slow!!
     3347#    size = G2frame.refTable[phaseName].GetSize()
     3348#    G2frame.dataFrame.setSizePosLeft([size[0]+32,350])
     3349    G2frame.dataFrame.setSizePosLeft([550,350])
    33443350    G2frame.dataDisplay.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged)
    33453351   
  • trunk/GSASIIspc.py

    r2075 r2136  
    11681168    hklf = list(HKL)+[0,]       #could be numpy array!
    11691169    Ops = SGData['SGOps']
    1170     OpM = np.array([op[0] for op in Ops])
     1170    OpM = np.array([op[0] for op in Ops],order='F')
    11711171    OpT = np.array([op[1] for op in Ops])
    11721172    Inv = SGData['SGInv']
    1173     Cen = np.array([cen for cen in SGData['SGCen']])
     1173    Cen = np.array([cen for cen in SGData['SGCen']],order='F')
    11741174   
    11751175    Nuniq,Uniq,iabsnt,mulp = pyspg.genhklpy(hklf,len(Ops),OpM,OpT,SGData['SGInv'],len(Cen),Cen)
     
    11771177    Uniq=np.array(zip(h[:Nuniq],k[:Nuniq],l[:Nuniq]))
    11781178    phi = f[:Nuniq]
    1179    
    11801179    return iabsnt,mulp,Uniq,phi
    11811180   
  • trunk/exports/G2export_CIF.py

    r2109 r2136  
    12081208            refcount = len(histblk['Data']['RefList'])
    12091209            for ref in histblk['Data']['RefList']:
    1210                 if ref[3] < 0:      #skip user rejected reflections (mul < 0)
     1210                if ref[3] <= 0:      #skip user rejected reflections (mul <= 0)
    12111211                    continue
    12121212                s = "  "
  • trunk/exports/G2export_examples.py

    r2132 r2136  
    248248class ExportSingleText(G2IO.ExportBaseclass):
    249249    '''Used to create a text file with single crystal reflection data
     250    skips user rejected & space group extinct reflections
    250251
    251252    :param wx.Frame G2frame: reference to main GSAS-II frame
     
    278279        fmt = "{:>10s} {:8.3f} {:12.2f} {:12.4f} {:12.2f} {:7.2f} {:6.0f}"
    279280        self.Write(80*'=')
    280         self.Write(hfmt.format("h,k,l","d-space","F_obs","sig(Fobs)","F_calc","phase","mult"))
     281        self.Write(hfmt.format("h,k,l","d-space","F_obs","sig(Fobs)","F_calc","phase","twin"))
    281282        self.Write(80*'=')
    282283        for (
    283             h,k,l,mult,dsp,Fobs,sigFobs,Fcalc,FobsT,FcalcT,phase,Icorr
     284            h,k,l,twin,dsp,Fobs,sigFobs,Fcalc,FobsT,FcalcT,phase,Icorr
    284285            ) in histblk['Data']['RefList']:
    285             self.Write(fmt.format(hklfmt.format(h,k,l),dsp,Fobs,sigFobs,Fcalc,phase,mult))
     286            if twin > 0:
     287                self.Write(fmt.format(hklfmt.format(h,k,l),dsp,Fobs,sigFobs,Fcalc,phase,twin))
    286288        self.CloseFile()
    287289        print(str(hist)+' written to file '+str(self.fullpath))                       
  • trunk/imports/G2sfact_CIF.py

    r2040 r2136  
    264264                        except:
    265265                            HKL.append('.')
    266                     #h,k,l,m,dsp,Fo2,sig,Fc2,Fot2,Fct2,phase,Ext
     266                    #h,k,l,tw,dsp,Fo2,sig,Fc2,Fot2,Fct2,phase,Ext
    267267                    if im:
    268268                        ref = HKL+[1,0,0,0,1, 0,0,0,0,0, 0,0]
Note: See TracChangeset for help on using the changeset viewer.