Changeset 736
- Timestamp:
- Aug 25, 2012 12:27:08 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIgrid.py
r721 r736 603 603 help='Estimate initial Pawley intensities') 604 604 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') 606 606 self.PawleyEdit.Append(id=wxID_PAWLEYDELETE, kind=wx.ITEM_NORMAL,text='Pawley delete', 607 607 help='Delete Pawley reflection list') -
trunk/GSASIIlattice.py
r584 r736 590 590 HKL.append([h,k,l,rdsq2d(rdsq,6),-1]) 591 591 return sortHKLd(HKL,True,False) 592 592 593 593 def getHKLmax(dmin,SGData,A): 594 594 #finds maximum allowed hkl for given A within dmin -
trunk/GSASIImath.py
r727 r736 697 697 DH = [] 698 698 Dphi = [] 699 while i < 20 and len(DH) < 30:699 while i < 20 and len(DH) < 20: 700 700 F = Flist[i] 701 701 hkl = np.unravel_index(Fdict[F],hklShape) … … 938 938 rho[rMM[0]:rMP[0],rMM[1]:rMP[1],rMM[2]:rMP[2]] = peakFunc(x1,rX,rY,rZ,rhoPeak,res,SGData['SGLaue']) 939 939 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 940 953 return np.array(peaks),np.array([mags,]).T,np.array([dzeros,]).T 941 954 -
trunk/GSASIIphsGUI.py
r733 r736 4259 4259 G2frame.dataDisplay.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, OnPageChanged) 4260 4260 G2frame.dataDisplay.SetSelection(oldPage) 4261 4262 -
trunk/GSASIIpwd.py
r679 r736 24 24 GSASIIpath.SetVersionNumber("$Revision$") 25 25 import GSASIIlattice as G2lat 26 import GSASIIspc as G2spc 26 27 import GSASIIElem as G2elem 27 28 import GSASIIgrid as G2gd … … 820 821 dRdS[i] = (ellipseSize(H,dSij,GB)-lenR)/delt 821 822 return lenR,dRdS 823 824 def 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 822 832 823 833 def getPeakProfile(parmDict,xdata,varyList,bakType): -
trunk/GSASIIpwdGUI.py
r722 r736 1364 1364 def UpdateUnitCellsGrid(G2frame, data): 1365 1365 UnitCellsId = G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Unit Cells List') 1366 SPGlist = G2spc.spglist 1366 1367 bravaisSymb = ['Fm3m','Im3m','Pm3m','R3-H','P6/mmm','I4/mmm', 1367 1368 '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', 1369 1370 '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'] 1370 1371 inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters')) … … 1422 1423 1423 1424 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] 1425 1428 wx.CallAfter(UpdateUnitCellsGrid,G2frame,data) 1429 1430 def OnSpcSel(event): 1431 controls[13] = spcSel.GetString(spcSel.GetSelection()) 1426 1432 1427 1433 def OnCellChange(event): … … 1479 1485 A = G2lat.cell2A(cell) 1480 1486 ibrav = bravaisSymb.index(controls[5]) 1487 spc = controls[13] 1488 SGData = G2spc.SpcGroup(spc)[1] 1481 1489 dmin = wave/(2.0*sind(limits[1]/2.0)) 1482 G2frame.HKL = G2 lat.GenHBravais(dmin,ibrav,A)1490 G2frame.HKL = G2pwd.getHKLpeak(dmin,SGData,A) 1483 1491 for hkl in G2frame.HKL: 1484 1492 hkl.append(2.0*asind(wave/(2.*hkl[3]))+controls[1]+Inst['Zero']) … … 1511 1519 controls[6:12] = cell[1:8] 1512 1520 controls[12] = G2lat.calc_V(G2lat.cell2A(controls[6:12])) 1521 controls[13] = spaceGroups[bravaisSymb.index(controls[5])] 1513 1522 G2frame.PatternTree.SetItemPyData(UnitCellsId,[controls,bravais,cells,dmin]) 1514 1523 G2frame.dataFrame.RefineCell.Enable(True) … … 1542 1551 A = G2lat.cell2A(cell) 1543 1552 ibrav = bravaisSymb.index(controls[5]) 1553 SGData = G2spc.SpcGroup(controls[13])[1] 1544 1554 dmin = G2indx.getDmin(peaks)-0.005 1545 G2frame.HKL = G2 lat.GenHBravais(dmin,ibrav,A)1555 G2frame.HKL = G2pwd.getHKLpeak(dmin,SGData,A) 1546 1556 G2indx.IndexPeaks(peaks,G2frame.HKL) 1547 1557 Lhkl,M20,X20,Aref,Zero = G2indx.refinePeaksZ(peaks,wave,ibrav,A,controls[1],controls[0]) … … 1638 1648 cell = Cell[2:10] 1639 1649 sub = G2frame.PatternTree.AppendItem(parent=sub,text=PhaseName) 1640 E,SGData = G2spc.SpcGroup( spaceGroups[cell[0]])1650 E,SGData = G2spc.SpcGroup(controls[13]) 1641 1651 G2frame.PatternTree.SetItemPyData(sub, \ 1642 1652 G2IO.SetNewPhase(Name=PhaseName,SGData=SGData,cell=cell[1:])) … … 1658 1668 if len(controls) < 13: #add cell volume if missing 1659 1669 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])]) 1660 1672 G2frame.PatternTree.SetItemPyData(UnitCellsId,data) #update with volume 1661 1673 bravaisNames = ['Cubic-F','Cubic-I','Cubic-P','Trigonal-R','Trigonal/Hexagonal-P', … … 1729 1741 bravSel.Bind(wx.EVT_CHOICE,OnBravSel) 1730 1742 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) 1731 1748 littleSizer.Add(wx.StaticText(G2frame.dataDisplay,label=" Zero offset"),0,wx.ALIGN_CENTER_VERTICAL) 1732 1749 zero = wx.TextCtrl(G2frame.dataDisplay,value="%.4f"%(controls[1]),style=wx.TE_PROCESS_ENTER) … … 1738 1755 zeroVar.Bind(wx.EVT_CHECKBOX,OnZeroVar) 1739 1756 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") 1741 1758 hklShow.Bind(wx.EVT_BUTTON,OnHklShow) 1742 1759 littleSizer.Add(hklShow,0,wx.ALIGN_CENTER_VERTICAL) -
trunk/GSASIIspc.py
r661 r736 882 882 return np.array([[Uij[0],Uij[3],Uij[4]],[Uij[3],Uij[1],Uij[5]],[Uij[4],Uij[5],Uij[2]]]) 883 883 884 '''A listof space groups as ordered and named in the pre-2002 International884 '''A dictionary of space groups as ordered and named in the pre-2002 International 885 885 Tables Volume A, except that spaces are used following the GSAS convention to 886 886 separate the different crystallographic directions. 887 887 Note that the symmetry codes here will recognize many non-standard space group 888 symbols with different settings. 888 symbols with different settings. They are ordered by Laue group 889 889 ''' 890 890 spglist = { 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',), 935 967 } 936 968 'A few non-standard space groups for test use'
Note: See TracChangeset
for help on using the changeset viewer.