Changeset 687
- Timestamp:
- Jul 12, 2012 3:10:16 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r686 r687 499 499 Id = self.PatternTree.AppendItem(parent=self.root, 500 500 text='HKLF '+HistName) 501 self.PatternTree.SetItemPyData(Id,[ 'HKLF '+HistName,rd.RefList])501 self.PatternTree.SetItemPyData(Id,[{'wtFactor':1.0},rd.RefList]) 502 502 Sub = self.PatternTree.AppendItem(Id,text='Instrument Parameters') 503 503 self.PatternTree.SetItemPyData(Sub,rd.Parameters) … … 618 618 return Iparm 619 619 else: 620 print 'debug: open/read failed',instfile620 # print 'debug: open/read failed',instfile 621 621 pass # fail silently 622 622 … … 754 754 parent=self.root, 755 755 text='PWDR '+rd.idstring) 756 self.PatternTree.SetItemPyData(Id,[rd.powderentry,rd.powderdata]) 756 # self.PatternTree.SetItemPyData(Id,[rd.powderentry,rd.powderdata]) 757 self.PatternTree.SetItemPyData(Id,[{'wtFactor':1.0},rd.powderdata]) 757 758 self.PatternTree.SetItemPyData( 758 759 self.PatternTree.AppendItem(Id,text='Comments'), … … 1426 1427 if Id: 1427 1428 Sample = G2pdG.SetDefaultSample() 1428 self.PatternTree.SetItemPyData(Id,[ [''],[np.array(Xsum),np.array(Ysum),np.array(Wsum),1429 self.PatternTree.SetItemPyData(Id,[{'wtFactor':1.0},[np.array(Xsum),np.array(Ysum),np.array(Wsum), 1429 1430 np.array(YCsum),np.array(YBsum),np.array(YDsum)]]) 1430 1431 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),Comments) … … 1733 1734 dlg.Destroy() 1734 1735 1735 1736 1736 def OnFileClose(self, event): 1737 1737 if self.dataFrame: … … 1785 1785 self.dataFrame.Destroy() 1786 1786 self.Close() 1787 1788 def OnImportPattern(self,event):1789 dlg = wx.FileDialog(self, 'Choose nonGSAS powder file', '.', '',1790 '(*.*)|*.*',wx.OPEN|wx.CHANGE_DIR)1791 try:1792 if dlg.ShowModal() == wx.ID_OK:1793 self.powderfile = dlg.GetPath()1794 finally:1795 dlg.Destroy()1796 1797 def OnImportHKL(self,event):1798 dlg = wx.FileDialog(self, 'Choose structure factor file', '.', '',1799 '(*.*)|*.*',wx.OPEN|wx.CHANGE_DIR)1800 try:1801 if dlg.ShowModal() == wx.ID_OK:1802 self.HKLfile = dlg.GetPath()1803 finally:1804 dlg.Destroy()1805 1787 1806 1788 def OnExportPatterns(self,event): … … 2039 2021 Histograms,Phases = self.GetUsedHistogramsAndPhasesfromTree() 2040 2022 print Histograms.keys() 2041 Natoms, phaseVary,phaseDict,pawleyLookup,FFtable,BLtable = G2str.GetPhaseData(Phases,RestDict=None,Print=False)2023 Natoms,atomIndx,phaseVary,phaseDict,pawleyLookup,FFtable,BLtable = G2str.GetPhaseData(Phases,RestDict=None,Print=False) 2042 2024 hapVary,hapDict,controlDict = G2str.GetHistogramPhaseData(Phases,Histograms,Print=False) 2043 2025 histVary,histDict,controlDict = G2str.GetHistogramData(Histograms,Print=False) -
trunk/GSASIIgrid.py
r685 r687 1109 1109 Histograms,Phases = G2frame.GetUsedHistogramsAndPhasesfromTree() 1110 1110 AtomDict = dict([Phases[phase]['pId'],Phases[phase]['Atoms']] for phase in Phases) 1111 Natoms, phaseVary,phaseDict,pawleyLookup,FFtable,BLtable = G2str.GetPhaseData(Phases,Print=False)1111 Natoms,atomIndx,phaseVary,phaseDict,pawleyLookup,FFtable,BLtable = G2str.GetPhaseData(Phases,Print=False) 1112 1112 phaseList = [] 1113 1113 for item in phaseDict: … … 1908 1908 G2frame.dataDisplay.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, OnPageChanged) 1909 1909 1910 def UpdatePW DPlot(G2frame,item):1910 def UpdatePWHKPlot(G2frame,kind,item): 1911 1911 1912 1912 def OnErrorAnalysis(event): 1913 G2plt.PlotDeltSig(G2frame) 1914 1915 defWid = [250,150] 1913 G2plt.PlotDeltSig(G2frame,kind) 1914 1915 def OnWtFactor(event): 1916 try: 1917 val = float(wtval.GetValue()) 1918 except ValueError: 1919 val = data[0]['wtFactor'] 1920 data[0]['wtFactor'] = val 1921 wtval.SetValue('%.3f'%(val)) 1922 1923 data = G2frame.PatternTree.GetItemPyData(item) 1924 if 'wtFactor' not in data[0]: 1925 data[0] = {'wtFactor':1.0} 1916 1926 if G2frame.dataDisplay: 1917 1927 G2frame.dataDisplay.Destroy() 1918 1928 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.ErrorMenu) 1919 1929 G2frame.dataFrame.Bind(wx.EVT_MENU,OnErrorAnalysis, id=wxID_PWDANALYSIS) 1920 G2frame.dataFrame.setSizePosLeft(defWid) 1921 wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(), 1922 style=wx.TE_MULTILINE, 1923 value='See plot window for powder data display\nor select a data item in histogram') 1924 G2plt.PlotPatterns(G2frame,newPlot=True) 1925 1926 1930 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 1931 1932 mainSizer = wx.BoxSizer(wx.VERTICAL) 1933 mainSizer.Add((5,5),) 1934 wtSizer = wx.BoxSizer(wx.HORIZONTAL) 1935 wtSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Weight factor: '),0,wx.ALIGN_CENTER_VERTICAL) 1936 wtval = wx.TextCtrl(G2frame.dataDisplay,-1,'%.3f'%(data[0]['wtFactor']),style=wx.TE_PROCESS_ENTER) 1937 wtval.Bind(wx.EVT_TEXT_ENTER,OnWtFactor) 1938 wtval.Bind(wx.EVT_KILL_FOCUS,OnWtFactor) 1939 wtSizer.Add(wtval,0,wx.ALIGN_CENTER_VERTICAL) 1940 mainSizer.Add(wtSizer) 1941 mainSizer.Layout() 1942 G2frame.dataDisplay.SetSizer(mainSizer) 1943 G2frame.dataFrame.setSizePosLeft(mainSizer.Fit(G2frame.dataFrame)) 1944 G2frame.PatternTree.SetItemPyData(item,data) 1945 if kind == 'PWDR': 1946 G2plt.PlotPatterns(G2frame,newPlot=True) 1947 elif kind == 'HKLF': 1948 G2plt.PlotSngl(G2frame,newPlot=True) 1949 1927 1950 def UpdateHKLControls(G2frame,data): 1928 1951 … … 2123 2146 elif 'PWDR' in G2frame.PatternTree.GetItemText(item): 2124 2147 G2frame.ExportPattern.Enable(True) 2125 UpdatePW DPlot(G2frame,item)2148 UpdatePWHKPlot(G2frame,'PWDR',item) 2126 2149 elif 'HKLF' in G2frame.PatternTree.GetItemText(item): 2127 2150 G2frame.Sngl = item 2128 G2plt.PlotSngl(G2frame,newPlot=True)2151 UpdatePWHKPlot(G2frame,'HKLF',item) 2129 2152 elif 'PDF' in G2frame.PatternTree.GetItemText(item): 2130 2153 G2frame.PatternId = item … … 2267 2290 elif G2frame.PatternTree.GetItemText(item) == 'Reflection List': #HKLF reflections 2268 2291 G2frame.PatternId = G2frame.PatternTree.GetItemParent(item) 2292 name = G2frame.PatternTree.GetItemText(G2frame.PatternId) 2269 2293 data = G2frame.PatternTree.GetItemPyData(G2frame.PatternId) 2270 G2pdG.UpdateReflectionGrid(G2frame,data,HKLF=True )2294 G2pdG.UpdateReflectionGrid(G2frame,data,HKLF=True,Name=name) -
trunk/GSASIIplot.py
r683 r687 791 791 ################################################################################ 792 792 793 def PlotDeltSig(G2frame ):793 def PlotDeltSig(G2frame,kind): 794 794 try: 795 795 plotNum = G2frame.G2plotNB.plotList.index('Error analysis') … … 806 806 Pattern = G2frame.PatternTree.GetItemPyData(PatternId) 807 807 Pattern.append(G2frame.PatternTree.GetItemText(PatternId)) 808 limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Limits'))[1] 809 xye = np.array(Pattern[1]) 810 xmin = np.searchsorted(xye[0],limits[0]) 811 xmax = np.searchsorted(xye[0],limits[1]) 812 X = xye[0][xmin:xmax] 813 DS = xye[5][xmin:xmax]*np.sqrt(xye[2][xmin:xmax]) 808 wtFactor = Pattern[0]['wtFactor'] 809 if kind == 'PWDR': 810 limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Limits'))[1] 811 xye = np.array(Pattern[1]) 812 xmin = np.searchsorted(xye[0],limits[0]) 813 xmax = np.searchsorted(xye[0],limits[1]) 814 DS = xye[5][xmin:xmax]*np.sqrt(wtFactor*xye[2][xmin:xmax]) 815 elif kind == 'HKLF': 816 refl = Pattern[1] 817 DS = [] 818 for ref in refl: 819 if ref[6] > 0.: 820 DS.append((ref[5]-ref[7])/ref[6]) 814 821 Page.SetFocus() 815 822 G2frame.G2plotNB.status.DestroyChildren() -
trunk/GSASIIpwdGUI.py
r685 r687 1756 1756 ################################################################################ 1757 1757 1758 def UpdateReflectionGrid(G2frame,data,HKLF=False ):1758 def UpdateReflectionGrid(G2frame,data,HKLF=False,Name=''): 1759 1759 if not data: 1760 1760 print 'No phases, no reflections' … … 1762 1762 if HKLF: 1763 1763 G2frame.RefList = 1 1764 phaseName = data[0]1764 phaseName = Name 1765 1765 else: 1766 1766 phaseName = G2frame.RefList -
trunk/GSASIIstruct.py
r686 r687 128 128 if not Histograms: 129 129 return 'Error: no diffraction data','' 130 Natoms, phaseVary,phaseDict,pawleyLookup,FFtables,BLtables = GetPhaseData(Phases,RestDict=None,Print=False)130 Natoms,atomIndx,phaseVary,phaseDict,pawleyLookup,FFtables,BLtables = GetPhaseData(Phases,RestraintDict=None,Print=False) 131 131 hapVary,hapDict,controlDict = GetHistogramPhaseData(Phases,Histograms,Print=False) 132 132 histVary,histDict,controlDict = GetHistogramData(Histograms,Print=False) … … 146 146 datum = data[0] 147 147 if datum[0] == 'Restraints': 148 rest Dict = datum[1]148 restraintDict = datum[1] 149 149 fl.close() 150 return rest Dict150 return restraintDict 151 151 152 152 def GetPhaseNames(GPXfile): … … 215 215 if 'PWDR' in hist[:4]: 216 216 PWDRdata = {} 217 try: 218 PWDRdata.update(datum[1][0]) #weight factor 219 except ValueError: 220 PWDRdata['wtFactor'] = 1.0 #patch 217 221 PWDRdata['Data'] = datum[1][1] #powder data arrays 218 222 PWDRdata[data[2][0]] = data[2][1] #Limits … … 228 232 elif 'HKLF' in hist[:4]: 229 233 HKLFdata = {} 234 try: 235 HKLFdata.update(datum[1][0]) #weight factor 236 except ValueError: 237 HKLFdata['wtFactor'] = 1.0 #patch 230 238 HKLFdata['Data'] = datum[1][1] 231 239 HKLFdata[data[1][0]] = data[1][1] #Instrument parameters … … 402 410 print 'GPX file save successful' 403 411 404 def GetPWDRdata(GPXfile,PWDRname):405 ''' Returns powder data from GSASII gpx file406 input:407 GPXfile = .gpx full file name408 PWDRname = powder histogram name as obtained from GetHistogramNames409 return:410 PWDRdata = powder data dictionary with:411 Data - powder data arrays, Limits, Instrument Parameters, Sample Parameters412 413 '''414 fl = open(GPXfile,'rb')415 PWDRdata = {}416 while True:417 try:418 data = cPickle.load(fl)419 except EOFError:420 break421 datum = data[0]422 if datum[0] == PWDRname:423 PWDRdata['Data'] = datum[1][1] #powder data arrays424 PWDRdata[data[2][0]] = data[2][1] #Limits425 PWDRdata[data[3][0]] = data[3][1] #Background426 PWDRdata[data[4][0]] = data[4][1] #Instrument parameters427 PWDRdata[data[5][0]] = data[5][1] #Sample parameters428 try:429 PWDRdata[data[9][0]] = data[9][1] #Reflection lists might be missing430 except IndexError:431 PWDRdata['Reflection Lists'] = {}432 fl.close()433 return PWDRdata434 435 def GetHKLFdata(GPXfile,HKLFname):436 ''' Returns single crystal data from GSASII gpx file437 input:438 GPXfile = .gpx full file name439 HKLFname = single crystal histogram name as obtained from GetHistogramNames440 return:441 HKLFdata = single crystal data list of reflections: for each reflection:442 HKLF = [np.array([h,k,l]),FoSq,sigFoSq,FcSq,Fcp,Fcpp,phase]443 need this [h,k,l,mul,d,pos,0.0,0.0,0.0,0.0,0.0,Uniq,phi,0.0,{}]444 '''445 fl = open(GPXfile,'rb')446 HKLFdata = {}447 while True:448 try:449 data = cPickle.load(fl)450 except EOFError:451 break452 datum = data[0]453 if datum[0] == HKLFname:454 HKLFdata['Data'] = datum[1:][0]455 HKLFdata['Reflection Lists'] = None456 fl.close()457 return HKLFdata458 459 412 def ShowBanner(): 460 413 print 80*'*' … … 575 528 ################################################################################ 576 529 577 def GetPhaseData(PhaseData,Rest Dict=None,Print=True):530 def GetPhaseData(PhaseData,RestraintDict=None,Print=True): 578 531 579 532 def PrintFFtable(FFtable): … … 679 632 shModels = ['cylindrical','none','shear - 2/m','rolling - mmm'] 680 633 SamSym = dict(zip(shModels,['0','-1','2/m','mmm'])) 634 atomIndx = {} 681 635 for name in PhaseData: 682 636 General = PhaseData[name]['General'] … … 704 658 Natoms[pfx] = len(Atoms) 705 659 for i,at in enumerate(Atoms): 660 atomIndx[at[-1]] = [pfx,i] #lookup table for restraints 706 661 phaseDict.update({pfx+'Atype:'+str(i):at[1],pfx+'Afrac:'+str(i):at[6],pfx+'Amul:'+str(i):at[8], 707 662 pfx+'Ax:'+str(i):at[3],pfx+'Ay:'+str(i):at[4],pfx+'Az:'+str(i):at[5], … … 747 702 # elif General['Type'] == 'magnetic': 748 703 # elif General['Type'] == 'macromolecular': 749 750 704 textureData = General['SH Texture'] 751 705 if textureData['Order']: … … 773 727 '%.3f'%(cell[6]),' volume =','%.3f'%(cell[7]),' Refine?',cell[0] 774 728 PrintTexture(textureData) 775 if name in Rest Dict:776 PrintRestraints(Rest Dict[name])729 if name in RestraintDict: 730 PrintRestraints(RestraintDict[name]) 777 731 778 732 elif PawleyRef: … … 786 740 phaseVary += pawleyVary 787 741 788 return Natoms, phaseVary,phaseDict,pawleyLookup,FFtables,BLtables742 return Natoms,atomIndx,phaseVary,phaseDict,pawleyLookup,FFtables,BLtables 789 743 790 744 def cellFill(pfx,SGData,parmDict,sigDict): … … 1503 1457 print ' Final refinement RF, RF^2 = %.2f%%, %.2f%% on %d reflections' \ 1504 1458 %(Histogram[pfx+'Rf'],Histogram[pfx+'Rf^2'],Histogram[pfx+'Nref']) 1459 print ' HKLF histogram weight factor = ','%.3f'%(Histogram['wtFactor']) 1505 1460 ScalExtSig = {} 1506 1461 for item in ['Scale','Ep','Eg','Es']: … … 1687 1642 hId = Histogram['hId'] 1688 1643 pfx = ':'+str(hId)+':' 1644 controlDict[pfx+'wtFactor'] =Histogram['wtFactor'] 1689 1645 controlDict[pfx+'Limits'] = Histogram['Limits'][1] 1690 1646 … … 1710 1666 histDict.update(sampDict) 1711 1667 histVary += sampVary 1668 1712 1669 1713 1670 if Print: … … 1726 1683 hId = Histogram['hId'] 1727 1684 pfx = ':'+str(hId)+':' 1685 controlDict[pfx+'wtFactor'] =Histogram['wtFactor'] 1728 1686 Inst = Histogram['Instrument Parameters'] 1729 1687 controlDict[pfx+'histType'] = Inst[1][0] … … 1908 1866 print 135*'-' 1909 1867 print ' Final refinement wR = %.2f%% on %d observations in this histogram'%(Histogram['wR'],Histogram['Nobs']) 1868 print ' PWDR histogram weight factor = '+'%.3f'%(Histogram['wtFactor']) 1910 1869 if Print: 1911 1870 print ' Instrument type: ',Sample['Type'] … … 2949 2908 parmdict.update(zip(varylist,values)) 2950 2909 G2mv.Dict2Map(parmdict,varylist) 2951 Histograms,Phases,rest Dict = HistoPhases2910 Histograms,Phases,restraintDict = HistoPhases 2952 2911 nvar = len(varylist) 2953 2912 dMdv = np.empty(0) … … 2959 2918 hId = Histogram['hId'] 2960 2919 hfx = ':%d:'%(hId) 2920 wtFactor = calcControls[hfx+'wtFactor'] 2961 2921 Limits = calcControls[hfx+'Limits'] 2962 2922 x,y,w,yc,yb,yd = Histogram['Data'] 2923 W = wtFactor*w 2963 2924 xB = np.searchsorted(x,Limits[0]) 2964 2925 xF = np.searchsorted(x,Limits[1]) 2965 dMdvh = np.sqrt( w[xB:xF])*getPowderProfileDerv(parmdict,x[xB:xF],2926 dMdvh = np.sqrt(W[xB:xF])*getPowderProfileDerv(parmdict,x[xB:xF], 2966 2927 varylist,Histogram,Phases,calcControls,pawleyLookup) 2967 2928 elif 'HKLF' in histogram[:4]: … … 2972 2933 hId = Histogram['hId'] 2973 2934 hfx = ':%d:'%(hId) 2935 wtFactor = calcControls[hfx+'wtFactor'] 2974 2936 pfx = '%d::'%(Phase['pId']) 2975 2937 phfx = '%d:%d:'%(Phase['pId'],hId) … … 3014 2976 parmdict.update(zip(varylist,values)) 3015 2977 G2mv.Dict2Map(parmdict,varylist) 3016 Histograms,Phases,rest Dict = HistoPhases2978 Histograms,Phases,restraintDict = HistoPhases 3017 2979 nvar = len(varylist) 3018 2980 Hess = np.empty(0) … … 3024 2986 hId = Histogram['hId'] 3025 2987 hfx = ':%d:'%(hId) 2988 wtFactor = calcControls[hfx+'wtFactor'] 3026 2989 Limits = calcControls[hfx+'Limits'] 3027 2990 x,y,w,yc,yb,yd = Histogram['Data'] 2991 W = wtFactor*w 3028 2992 dy = y-yc 3029 2993 xB = np.searchsorted(x,Limits[0]) 3030 2994 xF = np.searchsorted(x,Limits[1]) 3031 dMdvh = np.sqrt( w[xB:xF])*getPowderProfileDerv(parmdict,x[xB:xF],2995 dMdvh = np.sqrt(W[xB:xF])*getPowderProfileDerv(parmdict,x[xB:xF], 3032 2996 varylist,Histogram,Phases,calcControls,pawleyLookup) 3033 2997 if dlg: 3034 2998 dlg.Update(Histogram['wR'],newmsg='Hessian for histogram %d Rw=%8.3f%s'%(hId,Histogram['wR'],'%'))[0] 3035 2999 if len(Hess): 3036 Vec += np.sum(dMdvh*np.sqrt( w[xB:xF])*dy[xB:xF],axis=1)3000 Vec += np.sum(dMdvh*np.sqrt(W[xB:xF])*dy[xB:xF],axis=1) 3037 3001 Hess += np.inner(dMdvh,dMdvh) 3038 3002 else: 3039 Vec = np.sum(dMdvh*np.sqrt( w[xB:xF])*dy[xB:xF],axis=1)3003 Vec = np.sum(dMdvh*np.sqrt(W[xB:xF])*dy[xB:xF],axis=1) 3040 3004 Hess = np.inner(dMdvh,dMdvh) 3041 3005 elif 'HKLF' in histogram[:4]: … … 3046 3010 hId = Histogram['hId'] 3047 3011 hfx = ':%d:'%(hId) 3012 wtFactor = calcControls[hfx+'wtFactor'] 3048 3013 pfx = '%d::'%(Phase['pId']) 3049 3014 phfx = '%d:%d:'%(Phase['pId'],hId) … … 3100 3065 Values2Dict(parmdict, varylist, values) 3101 3066 G2mv.Dict2Map(parmdict,varylist) 3102 Histograms,Phases,rest Dict = HistoPhases3067 Histograms,Phases,restraintDict = HistoPhases 3103 3068 M = np.empty(0) 3104 3069 SumwYo = 0 … … 3111 3076 hId = Histogram['hId'] 3112 3077 hfx = ':%d:'%(hId) 3078 wtFactor = calcControls[hfx+'wtFactor'] 3113 3079 Limits = calcControls[hfx+'Limits'] 3114 3080 x,y,w,yc,yb,yd = Histogram['Data'] 3081 W = wtFactor*w 3115 3082 yc *= 0.0 #zero full calcd profiles 3116 3083 yb *= 0.0 … … 3120 3087 Histogram['Nobs'] = xF-xB 3121 3088 Nobs += Histogram['Nobs'] 3122 Histogram['sumwYo'] = np.sum( w[xB:xF]*y[xB:xF]**2)3089 Histogram['sumwYo'] = np.sum(W[xB:xF]*y[xB:xF]**2) 3123 3090 SumwYo += Histogram['sumwYo'] 3124 3091 yc[xB:xF],yb[xB:xF] = getPowderProfile(parmdict,x[xB:xF], … … 3126 3093 yc[xB:xF] += yb[xB:xF] 3127 3094 yd[xB:xF] = y[xB:xF]-yc[xB:xF] 3128 Histogram['sumwYd'] = np.sum(np.sqrt( w[xB:xF])*(yd[xB:xF]))3129 wdy = -np.sqrt( w[xB:xF])*(yd[xB:xF])3095 Histogram['sumwYd'] = np.sum(np.sqrt(W[xB:xF])*(yd[xB:xF])) 3096 wdy = -np.sqrt(W[xB:xF])*(yd[xB:xF]) 3130 3097 Histogram['wR'] = min(100.,np.sqrt(np.sum(wdy**2)/Histogram['sumwYo'])*100.) 3131 3098 if dlg: … … 3139 3106 hId = Histogram['hId'] 3140 3107 hfx = ':%d:'%(hId) 3108 wtFactor = calcControls[hfx+'wtFactor'] 3141 3109 pfx = '%d::'%(Phase['pId']) 3142 3110 phfx = '%d:%d:'%(Phase['pId'],hId) … … 3218 3186 calcControls.update(Controls) 3219 3187 constrDict,fixedList = GetConstraints(GPXfile) 3220 rest Dict = GetRestraints(GPXfile)3188 restraintDict = GetRestraints(GPXfile) 3221 3189 Histograms,Phases = GetUsedHistogramsAndPhases(GPXfile) 3222 3190 if not Phases: … … 3228 3196 print ' *** Refine aborted ***' 3229 3197 raise Exception 3230 Natoms,phaseVary,phaseDict,pawleyLookup,FFtables,BLtables = GetPhaseData(Phases,restDict) 3198 Natoms,atomIndx,phaseVary,phaseDict,pawleyLookup,FFtables,BLtables = GetPhaseData(Phases,restraintDict) 3199 calcControls['atomIndx'] = atomIndx 3231 3200 calcControls['Natoms'] = Natoms 3232 3201 calcControls['FFtables'] = FFtables … … 3272 3241 result = so.leastsq(errRefine,values,Dfun=dervRefine,full_output=True, 3273 3242 ftol=Ftol,col_deriv=True,factor=Factor, 3274 args=([Histograms,Phases,rest Dict],parmDict,varyList,calcControls,pawleyLookup,dlg))3243 args=([Histograms,Phases,restraintDict],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3275 3244 ncyc = int(result[2]['nfev']/2) 3276 3245 elif 'Hessian' in Controls['deriv type']: 3277 3246 result = G2mth.HessianLSQ(errRefine,values,Hess=HessRefine,ftol=Ftol,maxcyc=maxCyc, 3278 args=([Histograms,Phases,rest Dict],parmDict,varyList,calcControls,pawleyLookup,dlg))3247 args=([Histograms,Phases,restraintDict],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3279 3248 ncyc = result[2]['num cyc']+1 3280 3249 Rvals['lamMax'] = result[2]['lamMax'] 3281 3250 else: #'numeric' 3282 3251 result = so.leastsq(errRefine,values,full_output=True,ftol=Ftol,epsfcn=1.e-8,factor=Factor, 3283 args=([Histograms,Phases,rest Dict],parmDict,varyList,calcControls,pawleyLookup,dlg))3252 args=([Histograms,Phases,restraintDict],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3284 3253 ncyc = int(result[2]['nfev']/len(varyList)) 3285 3254 # table = dict(zip(varyList,zip(values,result[0],(result[0]-values)))) … … 3371 3340 ShowControls(Controls) 3372 3341 constrDict,fixedList = GetConstraints(GPXfile) 3373 rest Dict = GetRestraints(GPXfile)3342 restraintDict = GetRestraints(GPXfile) 3374 3343 Histograms,Phases = GetUsedHistogramsAndPhases(GPXfile) 3375 3344 if not Phases: … … 3381 3350 print ' *** Refine aborted ***' 3382 3351 raise Exception 3383 Natoms, phaseVary,phaseDict,pawleyLookup,FFtables,BLtables = GetPhaseData(Phases,restDict,False)3352 Natoms,atomIndx,phaseVary,phaseDict,pawleyLookup,FFtables,BLtables = GetPhaseData(Phases,restraintDict,False) 3384 3353 if 'Seq Data' in Controls: 3385 3354 histNames = Controls['Seq Data'] … … 3396 3365 dlg.SetTitle('Residual for histogram '+str(ihst)) 3397 3366 calcControls = {} 3367 calcControls['atomIndx'] = atomIndx 3398 3368 calcControls['Natoms'] = Natoms 3399 3369 calcControls['FFtables'] = FFtables … … 3459 3429 result = so.leastsq(errRefine,values,Dfun=dervRefine,full_output=True, 3460 3430 ftol=Ftol,col_deriv=True,factor=Factor, 3461 args=([Histo,Phases,rest Dict],parmDict,varyList,calcControls,pawleyLookup,dlg))3431 args=([Histo,Phases,restraintDict],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3462 3432 ncyc = int(result[2]['nfev']/2) 3463 3433 elif 'Hessian' in Controls['deriv type']: 3464 3434 result = G2mth.HessianLSQ(errRefine,values,Hess=HessRefine,ftol=Ftol,maxcyc=maxCyc, 3465 args=([Histo,Phases,rest Dict],parmDict,varyList,calcControls,pawleyLookup,dlg))3435 args=([Histo,Phases,restraintDict],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3466 3436 ncyc = result[2]['num cyc']+1 3467 3437 else: #'numeric' 3468 3438 result = so.leastsq(errRefine,values,full_output=True,ftol=Ftol,epsfcn=1.e-8,factor=Factor, 3469 args=([Histo,Phases,rest Dict],parmDict,varyList,calcControls,pawleyLookup,dlg))3439 args=([Histo,Phases,restraintDict],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3470 3440 ncyc = int(result[2]['nfev']/len(varyList)) 3471 3441
Note: See TracChangeset
for help on using the changeset viewer.