Changeset 384
- Timestamp:
- Oct 7, 2011 1:12:38 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r380 r384 545 545 sub = self.PatternTree.AppendItem(parent=self.root,text='Notebook') 546 546 self.PatternTree.SetItemPyData(sub,['']) 547 if not G2gd.GetPatternTreeItemId(self,self.root,'Controls'): 547 548 sub = self.PatternTree.AppendItem(parent=self.root,text='Controls') 548 549 self.PatternTree.SetItemPyData(sub,{}) 550 if not G2gd.GetPatternTreeItemId(self,self.root,'Covariance'): 549 551 sub = self.PatternTree.AppendItem(parent=self.root,text='Covariance') 552 self.PatternTree.SetItemPyData(sub,{}) 553 if not G2gd.GetPatternTreeItemId(self,self.root,'Constraints'): 554 sub = self.PatternTree.AppendItem(parent=self.root,text='Constraints') 555 self.PatternTree.SetItemPyData(sub,{}) 556 if not G2gd.GetPatternTreeItemId(self,self.root,'Restraints'): 557 sub = self.PatternTree.AppendItem(parent=self.root,text='Restraints') 550 558 self.PatternTree.SetItemPyData(sub,{}) 551 559 … … 1052 1060 self.dirname = dlg.GetDirectory() 1053 1061 G2IO.ProjFileOpen(self) 1054 #patch1055 if not G2gd.GetPatternTreeItemId(self,self.root,'Covariance'):1056 sub = self.PatternTree.AppendItem(parent=self.root,text='Covariance')1057 self.PatternTree.SetItemPyData(sub,{})1058 #end patch1059 1062 self.PatternTree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile) 1060 1063 self.PatternTree.Expand(self.root) … … 1073 1076 if Id: 1074 1077 self.PatternTree.SelectItem(Id) 1078 self.CheckNotebook() 1075 1079 finally: 1076 1080 dlg.Destroy() 1081 1077 1082 1078 1083 def OnFileClose(self, event): -
trunk/GSASIIIO.py
r348 r384 882 882 self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Index Peak List'),[]) 883 883 self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Unit Cells List'),[]) 884 self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Reflection Lists'),{}) 884 885 else: 885 886 Id = self.PatternTree.AppendItem(parent=self.root,text=name+" Azm= %.2f"%(azm)) … … 892 893 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[]) 893 894 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Unit Cells List'),[]) 895 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Reflection Lists'),{}) 894 896 self.PatternTree.SetItemPyData(Id,[[''],[np.array(X),np.array(Y),np.array(W),np.zeros(N),np.zeros(N),np.zeros(N)]]) 895 897 self.PatternTree.SelectItem(Id) -
trunk/GSASIIgrid.py
r383 r384 52 52 ] = [wx.NewId() for _init_coll_INDEX_Items in range(4)] 53 53 54 [ wxID_CONSTRAINTADD, 55 ] = [wx.NewId() for _init_coll_Constraint_Items in range(1)] 56 57 [ wxID_RESTRAINTADD, 58 ] = [wx.NewId() for _init_coll_Restraint_Items in range(1)] 59 54 60 [ wxID_SELECTPHASE, 55 61 ] = [wx.NewId() for _init_coll_Refl_Items in range(1)] … … 70 76 def _init_coll_AtomsMenu(self,parent): 71 77 parent.Append(menu=self.AtomEdit, title='Edit') 78 79 def _init_coll_ConstraintMenu(self,parent): 80 parent.Append(menu=self.ConstraintEdit, title='Edit') 81 82 def _init_coll_RestraintMenu(self,parent): 83 parent.Append(menu=self.RestraintEdit, title='Edit') 72 84 73 85 def _init_coll_DataMenu(self,parent): … … 127 139 help='Reload atom drawing list') 128 140 141 def _init_coll_Constraint_Items(self,parent): 142 parent.Append(id=wxID_CONSTRAINTADD, kind=wx.ITEM_NORMAL,text='Add constraint', 143 help='constraint dummy menu item') 144 145 def _init_coll_Restraint_Items(self,parent): 146 parent.Append(id=wxID_RESTRAINTADD, kind=wx.ITEM_NORMAL,text='Add restraint', 147 help='restraint dummy menu item') 148 129 149 def _init_coll_Data_Items(self,parent): 130 150 parent.Append(id=wxID_PWDRADD, kind=wx.ITEM_NORMAL,text='Add powder histograms', … … 253 273 254 274 self.AtomsMenu = wx.MenuBar() 275 self.ConstraintMenu = wx.MenuBar() 276 self.RestraintMenu = wx.MenuBar() 255 277 self.DataMenu = wx.MenuBar() 256 278 self.TextureMenu = wx.MenuBar() … … 266 288 self.PDFMenu = wx.MenuBar() 267 289 self.AtomEdit = wx.Menu(title='') 290 self.ConstraintEdit = wx.Menu(title='') 291 self.RestraintEdit = wx.Menu(title='') 268 292 self.DataEdit = wx.Menu(title='') 269 293 self.TextureEdit = wx.Menu(title='') … … 280 304 self._init_coll_AtomsMenu(self.AtomsMenu) 281 305 self._init_coll_Atom_Items(self.AtomEdit) 306 self._init_coll_ConstraintMenu(self.ConstraintMenu) 307 self._init_coll_Constraint_Items(self.ConstraintEdit) 308 self._init_coll_RestraintMenu(self.RestraintMenu) 309 self._init_coll_Restraint_Items(self.RestraintEdit) 282 310 self._init_coll_DataMenu(self.DataMenu) 283 311 self._init_coll_Data_Items(self.DataEdit) … … 600 628 else: 601 629 self.dataDisplay.AppendText(line+'\n') 630 631 def UpdateConstraints(self,data): 632 633 634 if self.dataDisplay: 635 self.dataDisplay.Destroy() 636 self.dataFrame.SetLabel('Constraints') 637 self.dataDisplay = wx.Panel(self.dataFrame) 638 self.dataFrame.SetMenuBar(self.dataFrame.ConstraintMenu) 639 mainSizer = wx.BoxSizer(wx.VERTICAL) 640 mainSizer.Add((5,5),0) 641 mainSizer.Add(wx.StaticText(self.dataDisplay,label=' Refinement constraints:'),0,wx.ALIGN_CENTER_VERTICAL) 642 643 644 mainSizer.Layout() 645 self.dataDisplay.SetSizer(mainSizer) 646 self.dataDisplay.SetSize(mainSizer.Fit(self.dataFrame)) 647 self.dataFrame.setSizePosLeft(mainSizer.Fit(self.dataFrame)) 648 649 650 def UpdateRestraints(self,data): 651 652 653 if self.dataDisplay: 654 self.dataDisplay.Destroy() 655 self.dataFrame.SetLabel('Restraints') 656 self.dataDisplay = wx.Panel(self.dataFrame) 657 self.dataFrame.SetMenuBar(self.dataFrame.RestraintMenu) 658 mainSizer = wx.BoxSizer(wx.VERTICAL) 659 mainSizer.Add((5,5),0) 660 mainSizer.Add(wx.StaticText(self.dataDisplay,label=' Refinement restraints:'),0,wx.ALIGN_CENTER_VERTICAL) 661 662 663 mainSizer.Layout() 664 self.dataDisplay.SetSizer(mainSizer) 665 self.dataDisplay.SetSize(mainSizer.Fit(self.dataFrame)) 666 self.dataFrame.setSizePosLeft(mainSizer.Fit(self.dataFrame)) 602 667 603 668 def UpdateHKLControls(self,data): … … 713 778 self.dataDisplay.Clear() 714 779 Id = GetPatternTreeItemId(self,self.root, 'Notebook') 715 if Id: self.PatternTree.SetItemPyData(Id,data)716 if self.dataFrame.GetLabel() == 'Covariance':717 data = [self.dataDisplay.GetValue()]718 self.dataDisplay.Clear()719 Id = GetPatternTreeItemId(self,self.root, 'Covariance')720 780 if Id: self.PatternTree.SetItemPyData(Id,data) 721 781 if 'Phase Data for' in self.dataFrame.GetLabel(): … … 760 820 data = self.PatternTree.GetItemPyData(item) 761 821 G2plt.PlotCovariance(self) 822 elif self.PatternTree.GetItemText(item) == 'Constraints': 823 data = self.PatternTree.GetItemPyData(item) 824 UpdateConstraints(self,data) 825 elif self.PatternTree.GetItemText(item) == 'Restraints': 826 data = self.PatternTree.GetItemPyData(item) 827 UpdateRestraints(self,data) 762 828 elif 'IMG' in self.PatternTree.GetItemText(item): 763 829 self.Image = item -
trunk/GSASIIlattice.py
r380 r384 233 233 Convert Uij to beta-ij tensors 234 234 input: 235 Uij - numpy array [Uij]236 G - reciprocal metric tensor235 Uij - numpy array [Uij] 236 G - reciprocal metric tensor 237 237 returns: 238 238 beta-ij - numpy array [beta-ij] … … 1131 1131 ]), 1132 1132 ] 1133 global LaueTestData #generated by GSAS 1134 LaueTestData = { 1135 'R 3 m':[(4.,4.,6.,90.,90.,120.),((1,0,1,6),(1,0,-2,6),(0,0,3,2),(1,1,0,6),(2,0,-1,6),(2,0,2,6), 1136 (1,1,3,12),(1,0,4,6),(2,1,1,12),(2,1,-2,12),(3,0,0,6),(1,0,-5,6),(2,0,-4,6),(3,0,-3,6),(3,0,3,6), 1137 (0,0,6,2),(2,2,0,6),(2,1,4,12),(2,0,5,6),(3,1,-1,12),(3,1,2,12),(1,1,6,12),(2,2,3,12),(2,1,-5,12))], 1138 'R 3':[(4.,4.,6.,90.,90.,120.),((1,0,1,6),(1,0,-2,6),(0,0,3,2),(1,1,0,6),(2,0,-1,6),(2,0,2,6),(1,1,3,6), 1139 (1,1,-3,6),(1,0,4,6),(3,-1,1,6),(2,1,1,6),(3,-1,-2,6),(2,1,-2,6),(3,0,0,6),(1,0,-5,6),(2,0,-4,6), 1140 (2,2,0,6),(3,0,3,6),(3,0,-3,6),(0,0,6,2),(3,-1,4,6),(2,0,5,6),(2,1,4,6),(4,-1,-1,6),(3,1,-1,6), 1141 (3,1,2,6),(4,-1,2,6),(2,2,-3,6),(1,1,-6,6),(1,1,6,6),(2,2,3,6),(2,1,-5,6),(3,-1,-5,6))], 1142 'P 3':[(4.,4.,6.,90.,90.,120.),((0,0,1,2),(1,0,0,6),(1,0,1,6),(0,0,2,2),(1,0,-1,6),(1,0,2,6),(1,0,-2,6), 1143 (1,1,0,6),(0,0,3,2),(1,1,1,6),(1,1,-1,6),(1,0,3,6),(1,0,-3,6),(2,0,0,6),(2,0,-1,6),(1,1,-2,6), 1144 (1,1,2,6),(2,0,1,6),(2,0,-2,6),(2,0,2,6),(0,0,4,2),(1,1,-3,6),(1,1,3,6),(1,0,-4,6),(1,0,4,6), 1145 (2,0,-3,6),(2,1,0,6),(2,0,3,6),(3,-1,0,6),(2,1,1,6),(3,-1,-1,6),(2,1,-1,6),(3,-1,1,6),(1,1,4,6), 1146 (3,-1,2,6),(3,-1,-2,6),(1,1,-4,6),(0,0,5,2),(2,1,2,6),(2,1,-2,6),(3,0,0,6),(3,0,1,6),(2,0,4,6), 1147 (2,0,-4,6),(3,0,-1,6),(1,0,-5,6),(1,0,5,6),(3,-1,-3,6),(2,1,-3,6),(2,1,3,6),(3,-1,3,6),(3,0,-2,6), 1148 (3,0,2,6),(1,1,5,6),(1,1,-5,6),(2,2,0,6),(3,0,3,6),(3,0,-3,6),(0,0,6,2),(2,0,-5,6),(2,1,-4,6), 1149 (2,2,-1,6),(3,-1,-4,6),(2,2,1,6),(3,-1,4,6),(2,1,4,6),(2,0,5,6),(1,0,-6,6),(1,0,6,6),(4,-1,0,6), 1150 (3,1,0,6),(3,1,-1,6),(3,1,1,6),(4,-1,-1,6),(2,2,2,6),(4,-1,1,6),(2,2,-2,6),(3,1,2,6),(3,1,-2,6), 1151 (3,0,4,6),(3,0,-4,6),(4,-1,-2,6),(4,-1,2,6),(2,2,-3,6),(1,1,6,6),(1,1,-6,6),(2,2,3,6),(3,-1,5,6), 1152 (2,1,5,6),(2,1,-5,6),(3,-1,-5,6))], 1153 'P 3 m 1':[(4.,4.,6.,90.,90.,120.),((0,0,1,2),(1,0,0,6),(1,0,-1,6),(1,0,1,6),(0,0,2,2),(1,0,-2,6), 1154 (1,0,2,6),(1,1,0,6),(0,0,3,2),(1,1,1,12),(1,0,-3,6),(1,0,3,6),(2,0,0,6),(1,1,2,12),(2,0,1,6), 1155 (2,0,-1,6),(0,0,4,2),(2,0,-2,6),(2,0,2,6),(1,1,3,12),(1,0,-4,6),(1,0,4,6),(2,0,3,6),(2,1,0,12), 1156 (2,0,-3,6),(2,1,1,12),(2,1,-1,12),(1,1,4,12),(2,1,2,12),(0,0,5,2),(2,1,-2,12),(3,0,0,6),(1,0,-5,6), 1157 (3,0,1,6),(3,0,-1,6),(1,0,5,6),(2,0,4,6),(2,0,-4,6),(2,1,3,12),(2,1,-3,12),(3,0,-2,6),(3,0,2,6), 1158 (1,1,5,12),(3,0,-3,6),(0,0,6,2),(2,2,0,6),(3,0,3,6),(2,1,4,12),(2,2,1,12),(2,0,5,6),(2,1,-4,12), 1159 (2,0,-5,6),(1,0,-6,6),(1,0,6,6),(3,1,0,12),(3,1,-1,12),(3,1,1,12),(2,2,2,12),(3,1,2,12), 1160 (3,0,4,6),(3,1,-2,12),(3,0,-4,6),(1,1,6,12),(2,2,3,12))], 1161 'P 3 1 m':[(4.,4.,6.,90.,90.,120.),((0,0,1,2),(1,0,0,6),(0,0,2,2),(1,0,1,12),(1,0,2,12),(1,1,0,6), 1162 (0,0,3,2),(1,1,-1,6),(1,1,1,6),(1,0,3,12),(2,0,0,6),(2,0,1,12),(1,1,2,6),(1,1,-2,6),(2,0,2,12), 1163 (0,0,4,2),(1,1,-3,6),(1,1,3,6),(1,0,4,12),(2,1,0,12),(2,0,3,12),(2,1,1,12),(2,1,-1,12),(1,1,-4,6), 1164 (1,1,4,6),(0,0,5,2),(2,1,-2,12),(2,1,2,12),(3,0,0,6),(1,0,5,12),(2,0,4,12),(3,0,1,12),(2,1,-3,12), 1165 (2,1,3,12),(3,0,2,12),(1,1,5,6),(1,1,-5,6),(3,0,3,12),(0,0,6,2),(2,2,0,6),(2,1,-4,12),(2,0,5,12), 1166 (2,2,-1,6),(2,2,1,6),(2,1,4,12),(3,1,0,12),(1,0,6,12),(2,2,2,6),(3,1,-1,12),(2,2,-2,6),(3,1,1,12), 1167 (3,1,-2,12),(3,0,4,12),(3,1,2,12),(1,1,-6,6),(2,2,3,6),(2,2,-3,6),(1,1,6,6))], 1168 } 1169 1133 1170 global FLnhTestData 1134 1171 FLnhTestData = [{ … … 1315 1352 #for hkllist,dref in sgtbxlattinp.sgtbx8[key][1]: print ' ',hkllist,dref 1316 1353 #print center, Laue, Axis, system 1354 1355 def test9(): 1356 import GSASIIspc as G2spc 1357 if NeedTestData: TestData() 1358 for spc in LaueTestData: 1359 data = LaueTestData[spc] 1360 cell = data[0] 1361 hklm = np.array(data[1]) 1362 H = hklm[-1][:3] 1363 hklO = hklm.T[:3].T 1364 A = cell2A(cell) 1365 dmin = 1./np.sqrt(calc_rDsq(H,A)) 1366 SGData = G2spc.SpcGroup(spc)[1] 1367 hkls = np.array(GenHLaue(dmin,SGData,A)) 1368 hklN = hkls.T[:3].T 1369 print spc,hklO.shape,hklN.shape 1370 for H in hklO: 1371 if H not in hklN: 1372 print H,' missing from hkl from GSASII' 1373 1374 1375 1317 1376 1318 1377 if __name__ == '__main__': -
trunk/GSASIIstruct.py
r383 r384 1256 1256 bij = Mast*Uij.T 1257 1257 for refl in refList: 1258 fb = [0,0]1258 fbs = np.array([0,0]) 1259 1259 H = refl[:3] 1260 1260 SQ = 1./(2.*refl[4])**2 … … 1273 1273 Tcorr = Tiso*Tuij 1274 1274 fa = np.array([(FF+FP)*occ*cosp*Tcorr,-FPP*occ*sinp*Tcorr]) 1275 fa = np.sum(np.sum(fa,axis=1),axis=1) #real1275 fas = np.sum(np.sum(fa,axis=1),axis=1) #real 1276 1276 if not SGData['SGInv']: 1277 1277 fb = np.array([(FF+FP)*occ*sinp*Tcorr,FPP*occ*cosp*Tcorr]) 1278 fb = np.sum(np.sum(fb,axis=1),axis=1) #imaginary 1279 refl[9] = fa[0]**2+fb[1]**2+fb[0]+fa[1]**2 1280 refl[10] = atan2d(fb[0],fa[0]) 1278 fbs = np.sum(np.sum(fb,axis=1),axis=1) 1279 fasq = fas**2 1280 fbsq = fbs**2 #imaginary 1281 refl[9] = np.sum(fasq)+np.sum(fbsq) 1282 refl[10] = atan2d(fbs[0],fas[0]) 1281 1283 return refList 1282 1284 … … 1373 1375 ''' takes atom x,y,z shift and applies it to corresponding atom x,y,z value 1374 1376 ''' 1375 for vary in varyList:1376 if 'dA' in vary:1377 parm = ''.join( vary.split('d'))1378 parmDict[parm] += parmDict[ vary]1377 for item in parmDict: 1378 if 'dA' in item: 1379 parm = ''.join(item.split('d')) 1380 parmDict[parm] += parmDict[item] 1379 1381 1380 1382 def SHPOcal(refl,g,phfx,hfx,SGData,calcControls,parmDict): … … 1918 1920 def errRefine(values,HistoPhases,parmdict,varylist,calcControls,pawleyLookup,dlg): 1919 1921 parmdict.update(zip(varylist,values)) 1922 Values2Dict(parmdict, varylist, values) 1920 1923 G2mv.Dict2Map(parmDict) 1921 1924 Histograms,Phases = HistoPhases … … 2006 2009 chisq = np.sum(result[2]['fvec']**2) 2007 2010 Values2Dict(parmDict, varyList, result[0]) 2011 G2mv.Dict2Map(parmDict) 2008 2012 ApplyXYZshifts(parmDict,varyList) 2009 G2mv.Dict2Map(parmDict)2010 2013 2011 2014 Rwp = np.sqrt(chisq/Histograms['sumwYo'])*100. #to %
Note: See TracChangeset
for help on using the changeset viewer.