Changeset 736


Ignore:
Timestamp:
Aug 25, 2012 12:27:08 PM (11 years ago)
Author:
vondreele
Message:

add space group choice to cell indexing page

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r721 r736  
    603603            help='Estimate initial Pawley intensities')
    604604        self.PawleyEdit.Append(id=wxID_PAWLEYUPDATE, kind=wx.ITEM_NORMAL,text='Pawley update',
    605             help='Update Pawley intensities from reflection list')
     605            help='Update Pawley intensities with abs(Fobs) from reflection list')
    606606        self.PawleyEdit.Append(id=wxID_PAWLEYDELETE, kind=wx.ITEM_NORMAL,text='Pawley delete',
    607607            help='Delete Pawley reflection list')
  • trunk/GSASIIlattice.py

    r584 r736  
    590590                            HKL.append([h,k,l,rdsq2d(rdsq,6),-1])
    591591    return sortHKLd(HKL,True,False)
    592 
     592   
    593593def getHKLmax(dmin,SGData,A):
    594594    #finds maximum allowed hkl for given A within dmin
  • trunk/GSASIImath.py

    r727 r736  
    697697    DH = []
    698698    Dphi = []
    699     while i < 20 and len(DH) < 30:
     699    while i < 20 and len(DH) < 20:
    700700        F = Flist[i]
    701701        hkl = np.unravel_index(Fdict[F],hklShape)
     
    938938        rho[rMM[0]:rMP[0],rMM[1]:rMP[1],rMM[2]:rMP[2]] = peakFunc(x1,rX,rY,rZ,rhoPeak,res,SGData['SGLaue'])
    939939        rho = np.roll(np.roll(np.roll(rho,-rMI[2],axis=2),-rMI[1],axis=1),-rMI[0],axis=0)
     940    if SGData['SGInv']:                 #check origin location & fix it if needed - centrosymmetric only
     941        Ocheck = np.zeros_like(rho)
     942        for ipeak in peaks:
     943            for opeak in peaks:           
     944                dx = ((opeak-ipeak)*incre)%incre
     945                if np.any(dx):      #avoid self vector
     946                    Ocheck[dx[0],dx[1],dx[2]] += 1
     947        dxMax = np.unravel_index(np.argmax(Ocheck),rho.shape)
     948        print 'Inversion at:',dxMax,' shift by ;',dxMax-mapHalf,' map size:',rho.shape
     949        rho = np.roll(np.roll(np.roll(rho,dxMax[2],axis=2),dxMax[1],axis=1),dxMax[0],axis=0)
     950        for peak in peaks:
     951            peak = (peak-(dxMax+mapHalf)/incre)%1.0
     952       
    940953    return np.array(peaks),np.array([mags,]).T,np.array([dzeros,]).T
    941954   
  • trunk/GSASIIphsGUI.py

    r733 r736  
    42594259    G2frame.dataDisplay.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, OnPageChanged)
    42604260    G2frame.dataDisplay.SetSelection(oldPage)
    4261    
    4262            
  • trunk/GSASIIpwd.py

    r679 r736  
    2424GSASIIpath.SetVersionNumber("$Revision$")
    2525import GSASIIlattice as G2lat
     26import GSASIIspc as G2spc
    2627import GSASIIElem as G2elem
    2728import GSASIIgrid as G2gd
     
    820821        dRdS[i] = (ellipseSize(H,dSij,GB)-lenR)/delt
    821822    return lenR,dRdS
     823
     824def getHKLpeak(dmin,SGData,A):
     825    HKL = G2lat.GenHLaue(dmin,SGData,A)       
     826    HKLs = []
     827    for h,k,l,d in HKL:
     828        ext = G2spc.GenHKLf([h,k,l],SGData)[0]
     829        if not ext:
     830            HKLs.append([h,k,l,d,-1])
     831    return HKLs
    822832
    823833def getPeakProfile(parmDict,xdata,varyList,bakType):
  • trunk/GSASIIpwdGUI.py

    r722 r736  
    13641364def UpdateUnitCellsGrid(G2frame, data):
    13651365    UnitCellsId = G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Unit Cells List')
     1366    SPGlist = G2spc.spglist
    13661367    bravaisSymb = ['Fm3m','Im3m','Pm3m','R3-H','P6/mmm','I4/mmm',
    13671368        'P4/mmm','Fmmm','Immm','Cmmm','Pmmm','C2/m','P2/m','P1']
    1368     spaceGroups = ['F m 3 m','I m 3 m','P m 3 m','R -3 H','P 6/m m m','I 4/m m m',
     1369    spaceGroups = ['F m 3 m','I m 3 m','P m 3 m','R 3 m','P 6/m m m','I 4/m m m',
    13691370        'P 4/m m m','F m m m','I m m m','C m m m','P m m m','C 2/m','P 2/m','P -1']
    13701371    inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters'))
     
    14221423       
    14231424    def OnBravSel(event):
    1424         controls[5] = bravSel.GetString(bravSel.GetSelection())       
     1425        brav = bravSel.GetString(bravSel.GetSelection())
     1426        controls[5] = brav
     1427        controls[13] = SPGlist[brav][0]       
    14251428        wx.CallAfter(UpdateUnitCellsGrid,G2frame,data)
     1429       
     1430    def OnSpcSel(event):
     1431        controls[13] = spcSel.GetString(spcSel.GetSelection())       
    14261432       
    14271433    def OnCellChange(event):
     
    14791485        A = G2lat.cell2A(cell)
    14801486        ibrav = bravaisSymb.index(controls[5])
     1487        spc = controls[13]
     1488        SGData = G2spc.SpcGroup(spc)[1]
    14811489        dmin = wave/(2.0*sind(limits[1]/2.0))
    1482         G2frame.HKL = G2lat.GenHBravais(dmin,ibrav,A)
     1490        G2frame.HKL = G2pwd.getHKLpeak(dmin,SGData,A)
    14831491        for hkl in G2frame.HKL:
    14841492            hkl.append(2.0*asind(wave/(2.*hkl[3]))+controls[1]+Inst['Zero'])             
     
    15111519        controls[6:12] = cell[1:8]
    15121520        controls[12] = G2lat.calc_V(G2lat.cell2A(controls[6:12]))
     1521        controls[13] = spaceGroups[bravaisSymb.index(controls[5])]
    15131522        G2frame.PatternTree.SetItemPyData(UnitCellsId,[controls,bravais,cells,dmin])
    15141523        G2frame.dataFrame.RefineCell.Enable(True)
     
    15421551        A = G2lat.cell2A(cell)
    15431552        ibrav = bravaisSymb.index(controls[5])
     1553        SGData = G2spc.SpcGroup(controls[13])[1]
    15441554        dmin = G2indx.getDmin(peaks)-0.005
    1545         G2frame.HKL = G2lat.GenHBravais(dmin,ibrav,A)
     1555        G2frame.HKL = G2pwd.getHKLpeak(dmin,SGData,A)
    15461556        G2indx.IndexPeaks(peaks,G2frame.HKL)
    15471557        Lhkl,M20,X20,Aref,Zero = G2indx.refinePeaksZ(peaks,wave,ibrav,A,controls[1],controls[0])           
     
    16381648                cell = Cell[2:10]       
    16391649                sub = G2frame.PatternTree.AppendItem(parent=sub,text=PhaseName)
    1640                 E,SGData = G2spc.SpcGroup(spaceGroups[cell[0]])
     1650                E,SGData = G2spc.SpcGroup(controls[13])
    16411651                G2frame.PatternTree.SetItemPyData(sub, \
    16421652                    G2IO.SetNewPhase(Name=PhaseName,SGData=SGData,cell=cell[1:]))
     
    16581668    if len(controls) < 13:              #add cell volume if missing
    16591669        controls.append(G2lat.calc_V(G2lat.cell2A(controls[6:12])))
     1670    if len(controls) < 14:              #add space gropu used in indexing
     1671        controls.append(spaceGroups[bravaisSymb.index(controls[5])])
    16601672    G2frame.PatternTree.SetItemPyData(UnitCellsId,data)            #update with volume
    16611673    bravaisNames = ['Cubic-F','Cubic-I','Cubic-P','Trigonal-R','Trigonal/Hexagonal-P',
     
    17291741    bravSel.Bind(wx.EVT_CHOICE,OnBravSel)
    17301742    littleSizer.Add(bravSel,0,wx.ALIGN_CENTER_VERTICAL)
     1743    littleSizer.Add(wx.StaticText(G2frame.dataDisplay,label=" Space group "),0,wx.ALIGN_CENTER_VERTICAL)
     1744    spcSel = wx.Choice(G2frame.dataDisplay,choices=SPGlist[controls[5]])
     1745    spcSel.SetSelection(SPGlist[controls[5]].index(controls[13]))
     1746    spcSel.Bind(wx.EVT_CHOICE,OnSpcSel)
     1747    littleSizer.Add(spcSel,0,wx.ALIGN_CENTER_VERTICAL)
    17311748    littleSizer.Add(wx.StaticText(G2frame.dataDisplay,label=" Zero offset"),0,wx.ALIGN_CENTER_VERTICAL)
    17321749    zero = wx.TextCtrl(G2frame.dataDisplay,value="%.4f"%(controls[1]),style=wx.TE_PROCESS_ENTER)
     
    17381755    zeroVar.Bind(wx.EVT_CHECKBOX,OnZeroVar)
    17391756    littleSizer.Add(zeroVar,0,wx.ALIGN_CENTER_VERTICAL)
    1740     hklShow = wx.Button(G2frame.dataDisplay,label="Show refined hkl positions + Zero offset")
     1757    hklShow = wx.Button(G2frame.dataDisplay,label="Show hkl positions")
    17411758    hklShow.Bind(wx.EVT_BUTTON,OnHklShow)
    17421759    littleSizer.Add(hklShow,0,wx.ALIGN_CENTER_VERTICAL)
  • trunk/GSASIIspc.py

    r661 r736  
    882882    return np.array([[Uij[0],Uij[3],Uij[4]],[Uij[3],Uij[1],Uij[5]],[Uij[4],Uij[5],Uij[2]]])
    883883   
    884 '''A list of space groups as ordered and named in the pre-2002 International
     884'''A dictionary of space groups as ordered and named in the pre-2002 International
    885885Tables Volume A, except that spaces are used following the GSAS convention to
    886886separate the different crystallographic directions.
    887887Note that the symmetry codes here will recognize many non-standard space group
    888 symbols with different settings.
     888symbols with different settings. They are ordered by Laue group
    889889'''
    890890spglist = {
    891     'triclinic' : ('P 1','P -1',), # 1-2
    892     'monoclinic': ('P 2','P 21','C 2','P m','P c','C m','C c','P 2/m','P 21/m',
    893                    'C 2/m','P 2/c','P 21/c','C 2/c',), #3-15
    894     'orthorhombic': ('P 2 2 2','P 2 2 21','P 21 21 2','P 21 21 21','C 2 2 21',
    895                      'C 2 2 2','F 2 2 2','I 2 2 2','I 21 21 21',
    896                      'P m m 2','P m c 21','P c c 2','P m a 2','P c a 21',
    897                      'P n c 2','P m n 21','P b a 2','P n a 21','P n n 2',
    898                      'C m m 2','C m c 21','C c c 2','A m m 2','A b m 2',
    899                      'A m a 2','A b a 2','F m m 2','F d d 2','I m m 2',
    900                      'I b a 2','I m a 2','P m m m','P n n n','P c c m',
    901                      'P b a n','P m m a','P n n a','P m n a','P c c a',
    902                      'P b a m','P c c n','P b c m','P n n m','P m m n',
    903                      'P b c n','P b c a','P n m a','C m c m','C m c a',
    904                      'C m m m','C c c m','C m m a','C c c a','F m m m',
    905                      'F d d d','I m m m','I b a m','I b c a','I m m a',), #16-74
    906     'tetragonal': ('P 4','P 41','P 42','P 43','I 4','I 41','P -4','I -4',
    907                    'P 4/m','P 42/m','P 4/n','P 42/n','I 4/m','I 41/a',
    908                    'P 4 2 2','P 4 21 2','P 41 2 2','P 41 21 2','P 42 2 2',
    909                    'P 42 21 2','P 43 2 2','P 43 21 2','I 4 2 2','I 41 2 2',
    910                    'P 4 m m','P 4 b m','P 42 c m','P 42 n m','P 4 c c',
    911                    'P 4 n c','P 42 m c','P 42 b c','I 4 m m','I 4 c m',
    912                    'I 41 m d','I 41 c d','P -4 2 m','P -4 2 c','P -4 21 m',
    913                    'P -4 21 c','P -4 m 2','P -4 c 2','P -4 b 2','P -4 n 2',
    914                    'I -4 m 2','I -4 c 2','I -4 2 m','I -4 2 d','P 4/m m m',
    915                    'P 4/m c c','P 4/n b m','P 4/n n c','P 4/m b m','P 4/m n c',
    916                    'P 4/n m m','P 4/n c c','P 42/m m c','P 42/m c m',
    917                    'P 42/n b c','P 42/n n m','P 42/m b c','P 42/m n m',
    918                    'P 42/n m c','P 42/n c m','I 4/m m m','I 4/m c m',
    919                    'I 41/a m d','I 41/a c d',), # 75-142
    920     'trigonal': ('P 3','P 31','P 32','R 3','P -3','R -3','P 3 1 2','P 3 2 1',
    921                  'P 31 1 2','P 31 2 1','P 32 1 2','P 32 2 1','R 3 2', 'P 3 m 1',
    922                  'P 3 1 m','P 3 c 1','P 3 1 c','R 3 m','R 3 c','P -3 1 m',
    923                  'P -3 1 c','P -3 m 1','P -3 c 1','R -3 m','R -3 c',), #143-167
    924     'hexagonal': ('P 6','P 61','P 65','P 62','P 64','P 63','P -6','P 6/m',
    925                   'P 63/m','P 6 2 2','P 61 2 2','P 65 2 2','P 62 2 2',
    926                   'P 64 2 2','P 63 2 2','P 6 m m','P 6 c c','P 63 c m',
    927                   'P 63 m c','P -6 m 2','P -6 c 2','P -6 2 m','P -6 2 c',
    928                   'P 6/m m m','P 6/m c c','P 63/m c m','P 63/m m c',), #144-194
    929     'cubic': ('P 2 3','F 2 3','I 2 3','P 21 3','I 21 3','P m -3','P n -3',
    930               'F m -3','F d -3','I m -3','P a -3','I a -3','P 4 3 2','P 42 3 2',
    931               'F 4 3 2','F 41 3 2','I 4 3 2','P 43 3 2','P 41 3 2','I 41 3 2',
    932               'P -4 3 m','F -4 3 m','I -4 3 m','P -4 3 n','F -4 3 c','I -4 3 d',
    933               'P m -3 m','P n -3 n','P m -3 n','P n -3 m','F m -3 m','F m -3 c',
    934               'F d -3 m','F d -3 c','I m -3 m','I a -3 d',), #195-230
     891    'P1' : ('P 1','P -1',), # 1-2
     892    'P2/m': ('P 2','P 21','P m','P a','P c','P n',
     893        'P 2/m','P 21/m','P 2/c','P 2/a','P 2/n','P 21/c','P 21/a','P 21/n',), #3-15
     894    'C2/m':('C 2','C m','C c','C n',
     895        'C 2/m','C 2/c','C 2/n',),
     896    'Pmmm':('P 2 2 2',
     897        'P 2 2 21','P 2 21 2','P 21 2 2',
     898        'P 21 21 2','P 21 2 21','P 2 21 21',
     899        'P 21 21 21',
     900        'P m m 2','P m 2 m','P 2 m m',
     901        'P m c 21','P c m 21','P 21 m a','P 21 a m','P b 21 m','P m 21 b',
     902        'P c c 2','P 2 a a','P b 2 b',
     903        'P m a 2','P b m 2','P 2 m b','P 2 c m','P c 2 m','P m 2 a',
     904        'P c a 21','P b c 21','P 21 a b','P 21 c a','P c 21 b','P b 21 a',
     905        'P n c 2','P c n 2','P 2 n a','P 2 a n','P b 2 n','P n 2 b',
     906        'P m n 21','P n m 21','P 21 m n','P 21 n m','P n 21 m','P m 21 n',
     907        'P b a 2','P 2 c b','P c 2 a',
     908        'P n a 21','P b n 21','P 21 n b','P 21 c n','P c 21 n','P n 21 a',
     909        'P n n 2','P 2 n n','P n 2 n',
     910        'P m m m','P n n n',
     911        'P c c m','P m a a','P b m b',
     912        'P b a n','P n c b','P c n a',
     913        'P m m a','P m m b','P b m m','P c m m','P m c m','P m a m',
     914        'P n n a','P n n b','P b n n','P c n n','P n c n','P n a n',
     915        'P m n a','P n m b','P b m n','P c n m','P n c m','P m a n',
     916        'P c c a','P c c b','P b a a','P c a a','P b c b','P b a b',
     917        'P b a m','P m c b','P c m a',
     918        'P c c n','P n a a','P b n b',
     919        'P b c m','P c a m','P m c a','P m a b','P b m a','P c m b',
     920        'P n n m','P m n n','P n m n',
     921        'P m m n','P n m m','P m n m',
     922        'P b c n','P c a n','P n c a','P n a b','P b n a','P c n b',
     923        'P b c a','P c a b',
     924        'P n m a','P m n b','P b n m','P c m n','P m c n','P n a m',
     925        ),
     926    'Cmmm':('C 2 2 21','C 2 2 2','C m m 2','C m c 21','C c c 2','C m 2 m','C 2 m m',
     927        'C m 2 a','C 2 m b','C 2 c m','C c 2 m','C 2 c m','C c 2 m',
     928        'C m c a','C m m m','C c c m','C m m a','C c c a','C m c m',),
     929    'Immm':('I 2 2 2','I 21 21 21','I m m m',
     930        'I m m 2','I m 2 m','I 2 m m',
     931        'I b a 2','I 2 c b','I c 2 a',
     932        'I m a 2','I b m 2','I 2 m b','I 2 c m','I c 2 m','I m 2 a',
     933        'I b a m','I m c b','I c m a',
     934        'I b c a','I c a b',
     935        'I m m a','I m m b','I b m m ','I c m m','I m c m','I m a m',),
     936    'Fmmm':('F 2 2 2','F m m m', 'F d d d',
     937        'F m m 2','F m 2 m','F 2 m m',
     938        'F d d 2','F d 2 d','F d 2 d',),
     939    'P4/mmm':('P 4','P 41','P 42','P 43','P -4','P 4/m','P 42/m','P 4/n','P 42/n',
     940        'P 4 2 2','P 4 21 2','P 41 2 2','P 41 21 2','P 42 2 2',
     941        'P 42 21 2','P 43 2 2','P 43 21 2','P 4 m m','P 4 b m','P 42 c m',
     942        'P 42 n m','P 4 c c','P 4 n c','P 42 m c','P 42 b c','P -4 2 m',
     943        'P -4 2 c','P -4 21 m','P -4 21 c','P -4 m 2','P -4 c 2','P -4 b 2',
     944        'P -4 n 2','P 4/m m m','P 4/m c c','P 4/n b m','P 4/n n c','P 4/m b m',
     945        'P 4/m n c','P 4/n m m','P 4/n c c','P 42/m m c','P 42/m c m',
     946        'P 42/n b c','P 42/n n m','P 42/m b c','P 42/m n m','P 42/n m c',
     947        'P 42/n c m',),
     948    'I4/mmm':('I 4','I 41','I -4','I 4/m','I 41/a','I 4 2 2','I 41 2 2','I 4 m m',
     949        'I 4 c m','I 41 m d','I 41 c d',
     950        'I -4 m 2','I -4 c 2','I -4 2 m','I -4 2 d','I 4/m m m','I 4/m c m',
     951        'I 41/a m d','I 41/a c d'),
     952    'R3-H':('R 3','R -3','R 3 2','R 3 m','R 3 c','R -3 m','R -3 c',),
     953    'P6/mmm': ('P 3','P 31','P 32','P -3','P 3 1 2','P 3 2 1','P 31 1 2',
     954        'P 31 2 1','P 32 1 2','P 32 2 1', 'P 3 m 1','P 3 1 m','P 3 c 1',
     955        'P 3 1 c','P -3 1 m','P -3 1 c','P -3 m 1','P -3 c 1','P 6','P 61',
     956        'P 65','P 62','P 64','P 63','P -6','P 6/m','P 63/m','P 6 2 2',
     957        'P 61 2 2','P 65 2 2','P 62 2 2','P 64 2 2','P 63 2 2','P 6 m m',
     958        'P 6 c c','P 63 c m','P 63 m c','P -6 m 2','P -6 c 2','P -6 2 m',
     959        'P -6 2 c','P 6/m m m','P 6/m c c','P 63/m c m','P 63/m m c',),
     960    'Pm3m': ('P 2 3','P 21 3','P m -3','P n -3','P a -3','P 4 3 2','P 42 3 2',
     961        'P 43 3 2','P 41 3 2','P -4 3 m','P -4 3 n','P m -3 m','P n -3 n',
     962        'P m -3 n','P n -3 m',),
     963    'Im3m':('I 2 3','I 21 3','I m -3','I a -3', 'I 4 3 2','I 41 3 2',
     964        'I -4 3 m', 'I -4 3 d','I m -3 m','I a -3 d',),
     965    'Fm3m':('F 2 3','F m -3','F d -3','F 4 3 2','F 41 3 2','F -4 3 m',
     966        'F -4 3 c','F m -3 m','F m -3 c','F d -3 m','F d -3 c',),
    935967}
    936968'A few non-standard space groups for test use'
Note: See TracChangeset for help on using the changeset viewer.