Changeset 1572
- Timestamp:
- Nov 17, 2014 4:37:02 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIIO.py
r1528 r1572 1154 1154 print 'index peak list saved' 1155 1155 1156 def SetNewPhase(Name='New Phase',SGData=None,cell=None ):1156 def SetNewPhase(Name='New Phase',SGData=None,cell=None,Super=None): 1157 1157 '''Create a new phase dict with default values for various parameters 1158 1158 … … 1195 1195 'RBModels':{}, 1196 1196 } 1197 if Super.get('Use',False): 1198 phaseData['General'].update({'Type':'modulated','Super':1,'SuperSg':Super['ssSymb']}) 1199 phaseData['General']['SSGData'] = G2spc.SSpcGroup(SGData,Super['ssSymb']) 1200 phaseData['General']['SuperVec'] = [[Super['ModVec'],False,Super['maxH']], 1201 [[0,0,.1],False,4],[[0.,0.,.1],False,4]] 1202 1197 1203 return phaseData 1198 1204 -
trunk/GSASIIindex.py
r1571 r1572 230 230 import bisect 231 231 N = len(HKL) 232 if N == 0: return False 232 if N == 0: return False,peaks 233 233 hklds = list(np.array(HKL).T[-2])+[1000.0,0.0,] 234 234 hklds.sort() # ascending sort - upper bound at end … … 265 265 peak[3] = True 266 266 if hklmax[0]*hklmax[1]*hklmax[2] > 0: 267 return True 268 else: 269 return False 267 return True,peaks 268 else: 269 return False,peaks #nothing indexed! 270 270 271 271 def Values2A(ibrav,values): … … 443 443 tries = 0 444 444 HKL = G2lat.GenHBravais(dmin,ibrav,A) 445 while len(HKL) > 2 and IndexPeaks(peaks,HKL) :445 while len(HKL) > 2 and IndexPeaks(peaks,HKL)[0]: 446 446 Pwr = pwr - (tries % 2) 447 447 HKL = [] … … 494 494 HKL = G2lat.GenHBravais(dmin,ibrav,A[:]) 495 495 if len(HKL) > mHKL[ibrav]: 496 IndexPeaks(peaks,HKL)496 peaks = IndexPeaks(peaks,HKL)[1] 497 497 Asave.append([calc_M20(peaks,HKL),A[:]]) 498 498 tries = 0 … … 506 506 HKL = G2lat.GenHBravais(dmin,ibrav,Abeg) 507 507 508 if IndexPeaks(peaks,HKL) and len(HKL) > mHKL[ibrav]:508 if IndexPeaks(peaks,HKL)[0] and len(HKL) > mHKL[ibrav]: 509 509 Lhkl,M20,X20,Aref = refinePeaks(peaks,ibrav,Abeg) 510 510 Asave.append([calc_M20(peaks,HKL),Aref[:]]) … … 514 514 Lhkl,M20,X20,Aref = refinePeaks(peaks,ibrav,Abeg) 515 515 HKL = G2lat.GenHBravais(dmin,ibrav,Aref) 516 IndexPeaks(peaks,HKL)516 peaks = IndexPeaks(peaks,HKL)[1] 517 517 Asave.append([calc_M20(peaks,HKL),Aref[:]]) 518 518 elif ibrav == 11: #C-centered monoclinic … … 520 520 Lhkl,M20,X20,Aref = refinePeaks(peaks,ibrav,Abeg) 521 521 HKL = G2lat.GenHBravais(dmin,ibrav,Aref) 522 IndexPeaks(peaks,HKL)522 peaks = IndexPeaks(peaks,HKL)[1] 523 523 Asave.append([calc_M20(peaks,HKL),Aref[:]]) 524 524 else: … … 625 625 A = monoCellReduce(ibrav,A[:]) 626 626 HKL = G2lat.GenHBravais(dmin,ibrav,A) 627 IndexPeaks(peaks,HKL)627 peaks = IndexPeaks(peaks,HKL)[1] 628 628 a,b,c,alp,bet,gam = G2lat.A2cell(A) 629 629 V = G2lat.calc_V(A) -
trunk/GSASIIpwd.py
r1571 r1572 808 808 def getHKLMpeak(dmin,SGData,SSGData,Vec,maxH,A): 809 809 'needs a doc string' 810 HKL = G2lat.GenHLaue(dmin,SGData,A)811 810 HKLs = [] 812 811 vec = np.array(Vec) 812 vstar = np.sqrt(G2lat.calc_rDsq(vec,A)) #find extra needed for -n SS reflections 813 dvec = 1./(maxH*vstar+1./dmin) 814 HKL = G2lat.GenHLaue(dvec,SGData,A) 813 815 SSdH = [vec*h for h in range(-maxH,maxH+1)] 814 816 SSdH = dict(zip(range(-maxH,maxH+1),SSdH)) 815 817 for h,k,l,d in HKL: 816 818 ext = G2spc.GenHKLf([h,k,l],SGData)[0] 817 if not ext :819 if not ext and d >= dmin: 818 820 HKLs.append([h,k,l,0,d,-1]) 819 821 for dH in SSdH: … … 823 825 d = 1/np.sqrt(G2lat.calc_rDsq(H,A)) 824 826 if d >= dmin: 825 HKLs.append([h,k,l,dH,d,-1]) 827 HKLM = np.array([h,k,l,dH]) 828 if G2spc.checkSSextc(HKLM,SSGData[1]): 829 HKLs.append([h,k,l,dH,d,-1]) 826 830 return HKLs 827 831 -
trunk/GSASIIpwdGUI.py
r1571 r1572 2099 2099 dmin = cells[3] 2100 2100 G2frame.HKL = [] 2101 # if ssopt.get('Use',False): 2102 # SSGData = G2spc.SSpcGroup(SGData,ssopt['ssSymb']) 2103 # Vec = ssopt['ModVec'] 2104 # maxH = ssopt['maxH'] 2105 # G2frame.HKL = G2pwd.getHKLMpeak(dmin,SGData,SSGData,Vec,maxH,A) 2101 2106 for i,cell in enumerate(cellist): 2102 2107 if cell[-1]: #selected cell from table - no SS … … 2104 2109 A = G2lat.cell2A(cell[3:9]) 2105 2110 G2frame.HKL = G2lat.GenHBravais(dmin,ibrav,A) 2106 G2indx.IndexPeaks(data[0],G2frame.HKL)2111 peaks = G2indx.IndexPeaks(data[0],G2frame.HKL)[1] 2107 2112 for hkl in G2frame.HKL: 2108 2113 hkl.append(G2lat.Dsp2pos(Inst,hkl[3])) … … 2112 2117 Types = [wg.GRID_VALUE_FLOAT+':10,4',wg.GRID_VALUE_FLOAT+':10,1',]+2*[wg.GRID_VALUE_BOOL,]+ \ 2113 2118 3*[wg.GRID_VALUE_LONG,]+2*[wg.GRID_VALUE_FLOAT+':10,5',] 2114 if len(data[0] [0]) > 9:2119 if len(data[0]) and len(data[0][0]) > 9: 2115 2120 colLabels = ['position','intensity','use','indexed','h','k','l','m','d-obs','d-calc'] 2116 2121 Types = [wg.GRID_VALUE_FLOAT+':10,4',wg.GRID_VALUE_FLOAT+':10,1',]+2*[wg.GRID_VALUE_BOOL,]+ \ … … 2243 2248 ObjId = Obj.GetId() 2244 2249 Id,valObj = Indx[ObjId] 2245 move = Obj.GetValue()*0.00 22250 move = Obj.GetValue()*0.0005 2246 2251 Obj.SetValue(0) 2247 2252 value = min(1.0,max(.0,float(valObj.GetValue())+move)) … … 2328 2333 PatternId = G2frame.PatternId 2329 2334 PickId = G2frame.PickId 2330 peaks = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Index Peak List')) [0]2335 peaks = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Index Peak List')) 2331 2336 limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Limits'))[1] 2332 2337 controls,bravais,cells,dmin,ssopt = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Unit Cells List')) … … 2347 2352 else: 2348 2353 G2frame.HKL = G2pwd.getHKLpeak(dmin,SGData,A) 2349 G2indx.IndexPeaks(peaks,G2frame.HKL)2350 for peak in peaks: print peak2354 peaks = [G2indx.IndexPeaks(peaks[0],G2frame.HKL)[1],peaks[1]] #keep esds from peak fit 2355 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Index Peak List'),peaks) 2351 2356 for hkl in G2frame.HKL: 2352 2357 hkl.append(G2lat.Dsp2pos(Inst,hkl[-2])+controls[1]) … … 2384 2389 wx.CallAfter(UpdateUnitCellsGrid,G2frame,data) 2385 2390 2386 def RefineCell(event): 2391 def RefineCell(event): #want this to do modulation vector as well 2387 2392 def cellPrint(ibrav,A): 2388 2393 cell = G2lat.A2cell(A) … … 2414 2419 dmin = G2indx.getDmin(peaks[0])-0.005 2415 2420 G2frame.HKL = G2pwd.getHKLpeak(dmin,SGData,A) 2416 G2indx.IndexPeaks(peaks[0],G2frame.HKL)2421 peaks = [G2indx.IndexPeaks(peaks[0],G2frame.HKL)[1],peaks[1]] #put peak fit esds back in peaks 2417 2422 if 'C' in Inst['Type'][0]: 2418 2423 Lhkl,M20,X20,Aref,Zero = G2indx.refinePeaksZ(peaks[0],wave,ibrav,A,controls[1],controls[0]) 2419 else: #'T'OF 2424 else: #'T'OF - doesn't seem to work 2420 2425 Lhkl,M20,X20,Aref,Zero = G2indx.refinePeaksT(peaks[0],difC,ibrav,A,controls[1],controls[0]) 2421 2426 controls[1] = Zero … … 2531 2536 E,SGData = G2spc.SpcGroup(controls[13]) 2532 2537 G2frame.PatternTree.SetItemPyData(sub, \ 2533 G2IO.SetNewPhase(Name=PhaseName,SGData=SGData,cell=cell[1:] ))2538 G2IO.SetNewPhase(Name=PhaseName,SGData=SGData,cell=cell[1:],Super=ssopt)) 2534 2539 Status.SetStatusText('Change space group from '+str(controls[13])+' if needed') 2535 2540 finally: -
trunk/GSASIIspc.py
r1571 r1572 1145 1145 1146 1146 return iabsnt,mulp,Uniq,phi 1147 1148 def checkSSextc(HKL,SSGData): 1149 Ops = SSGData['SSGOps'] 1150 OpM = np.array([op[0] for op in Ops]) 1151 OpT = np.array([op[1] for op in Ops]) 1152 HKLS = np.array([HKL,-HKL]) 1153 DHKL = np.reshape(np.inner(HKLS,OpM)-HKL,(-1,4)) 1154 PHKL = np.reshape(np.inner(HKLS,OpT),(-1,)) 1155 for dhkl,phkl in zip(DHKL,PHKL)[1:]: 1156 if dhkl.any(): 1157 continue 1158 else: 1159 if phkl: 1160 return False 1161 return True 1147 1162 1148 1163 def GetOprPtrName(key): … … 1975 1990 'P 21 n m':[], 1976 1991 #32 1977 'P b a 2':[], 1978 'P 2 c b':[], 1979 'P c 2 a':[], 1992 'P b a 2':['(00g)','(00g)s0s','(00g)0ss','(00g)ss0','(1/21/2g)qq0', 1993 '(a00)','(a01/2)','(0b0)','(0b1/2)',], 1994 'P 2 c b':['(a00)','(a00)ss0','(a00)s0s','(a00)0ss','(a1/21/2)0qq', 1995 '(0b0)','(1/2b0)','(00g)','(1/20g)',], 1996 'P c 2 a':['(0b0)','(0b0)ss0','(0b0)0ss','(0b0)s0s','(1/2b1/2)q0q', 1997 '(00g)','01/2g)','(a00)','(a1/20)',], 1980 1998 #33 1981 1999 'P n a 21':[], … … 1986 2004 'P 21 c n':[], 1987 2005 #34 1988 'P n n 2':[], 1989 'P 2 n n':[], 1990 'P n 2 n':[], 2006 'P n n 2':['(00g)','(00g)s0s','(00g)0ss','(1/21/2g)qq0', 2007 '(a00)','(a1/21/2)0q0','(a1/21/2)00q','(0b0)','(1/2b1/2)q00','(1/2b1/2)00q',], 2008 'P 2 n n':['(a00)','(a00)ss0','(a00)s0s','(a1/21/2)0qq', 2009 '(0b0)','(1/2b1/2)q00','(1/2b1/2)00q','(00g)','(1/21/2b)0q0','(1/21/2g)q00',], 2010 'P n 2 n':['(0b0)','(0b0)ss0','(0b0)0ss','(1/2b1/2)q0q', 2011 '(00g)','(1/21/2g)0q0','(1/21/2g)q00','(a00)','(a1/21/2)00q','(b1/21/2)0q0',], 1991 2012 #35 1992 2013 'C m m 2':[], … … 2081 2102 '(a00)','(a00)00s','(a00)0s0','(a00)0ss','(a01/2)','(a01/2)0s0',], 2082 2103 #50 o@i qq0,0qq,q0q ->000 2083 'P b a n':[], 2084 'P n c b':[], 2085 'P c n a':[], 2104 'P b a n':['(00g)','(00g)s00','(00g)0s0','(00g)ss0','(1/21/2g)', 2105 '(a00)','(a00)0s0','(a01/2)','(0b0)','(0b0)s00','(0b1/2)',], 2106 'P n c b':['(a00)','(a00)0s0','(a00)00s','(a00)0ss','(a1/21/2)', 2107 '(0b0)','(0b0)00s','(1/2b0)','(00g)','(00g)0s0','(1/20g)',], 2108 'P c n a':['(0b0)','(0b0)s00','(0b0)00s','(0b0)s0s','(1/2b1/2)', 2109 '(00g)','(00g)s00','(01/2a)','(a00)','(a00)00s','(a1/20)',], 2086 2110 #51 2087 2111 'P m m a':[], … … 2091 2115 'P m m b':[], 2092 2116 'P c m m':[], 2093 #52 2094 'P n n a':[], 2095 'P b n n':[], 2096 'P n c n':[], 2097 'P n a n':[], 2098 'P n n b':[], 2099 'P c n n':[], 2117 #52 o@i qq0,0qq,q0q ->000 2118 'P n n a':['(00g)','(00g)s00','(00g)0s0','(a00)','(a00)00s', 2119 '(0b0)','(0b0)00s','(a1/21/2)','(1/2b1/2)',], 2120 'P b n n':['(a00)','(a00)0s0','(a00)00s','(0b0)','(0b0)s00', 2121 '(00g)','(00g)s00','(1/2b1/2)','(1/21/2g)',], 2122 'P n c n':['(0b0)','(0b0)s00','(0b0)00s','(00g)','(00g)0s0', 2123 '(a00)','(a00)0s0','(1/21/2g)','(a1/21/2)',], 2124 'P n a n':['(0b0)','(0b0)s00','(0b0)00s','(00g)','(00g)0s0', 2125 '(a00)','(a00)0s0','(1/21/2g)','(a1/21/2)',], 2126 'P n n b':['(00g)','(00g)s00','(00g)0s0','(a00)','(a00)00s', 2127 '(0b0)','(0b0)00s','(a1/21/2)','(1/2b1/2)',], 2128 'P c n n':['(a00)','(a00)0s0','(a00)00s','(0b0)','(0b0)s00', 2129 '(00g)','(00g)s00','(1/2b1/2)','(1/21/2g)',], 2100 2130 #53 2101 2131 'P m n a':[],
Note: See TracChangeset
for help on using the changeset viewer.