Changeset 1240
- Timestamp:
- Mar 7, 2014 4:18:27 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIgrid.py
r1236 r1240 58 58 59 59 htmlFirstUse = True 60 WACV = wx.ALIGN_CENTER_VERTICAL 60 61 61 62 [ wxID_FOURCALC, wxID_FOURSEARCH, wxID_FOURCLEAR, wxID_PEAKSMOVE, wxID_PEAKSCLEAR, … … 995 996 self.force = wx.RadioBox(panel,-1,'Force to unit cell?',choices=choice) 996 997 self.force.Bind(wx.EVT_RADIOBOX, self.OnOpSelect) 997 mainSizer.Add(self.force,0, wx.ALIGN_CENTER_VERTICAL)998 mainSizer.Add(self.force,0,WACV) 998 999 mainSizer.Add((5,5),0) 999 1000 if SGData['SGInv']: … … 1001 1002 self.inv = wx.RadioBox(panel,-1,'Choose inversion?',choices=choice) 1002 1003 self.inv.Bind(wx.EVT_RADIOBOX, self.OnOpSelect) 1003 mainSizer.Add(self.inv,0, wx.ALIGN_CENTER_VERTICAL)1004 mainSizer.Add(self.inv,0,WACV) 1004 1005 mainSizer.Add((5,5),0) 1005 1006 if SGData['SGLatt'] != 'P': … … 1007 1008 self.latt = wx.RadioBox(panel,-1,'Choose cell centering?',choices=LattOp) 1008 1009 self.latt.Bind(wx.EVT_RADIOBOX, self.OnOpSelect) 1009 mainSizer.Add(self.latt,0, wx.ALIGN_CENTER_VERTICAL)1010 mainSizer.Add(self.latt,0,WACV) 1010 1011 mainSizer.Add((5,5),0) 1011 1012 if SGData['SGLaue'] in ['-1','2/m','mmm','4/m','4/mmm']: … … 1019 1020 majorDimension=Ncol) 1020 1021 self.oprs.Bind(wx.EVT_RADIOBOX, self.OnOpSelect) 1021 mainSizer.Add(self.oprs,0, wx.ALIGN_CENTER_VERTICAL)1022 mainSizer.Add(self.oprs,0,WACV) 1022 1023 mainSizer.Add((5,5),0) 1023 mainSizer.Add(wx.StaticText(panel,-1," Choose unit cell?"),0, wx.ALIGN_CENTER_VERTICAL)1024 mainSizer.Add(wx.StaticText(panel,-1," Choose unit cell?"),0,WACV) 1024 1025 mainSizer.Add((5,5),0) 1025 1026 cellSizer = wx.BoxSizer(wx.HORIZONTAL) … … 1032 1033 self.cell[-1].SetValue(0) 1033 1034 self.cell[-1].Bind(wx.EVT_SPINCTRL, self.OnOpSelect) 1034 cellSizer.Add(self.cell[-1],0, wx.ALIGN_CENTER_VERTICAL)1035 cellSizer.Add(self.cell[-1],0,WACV) 1035 1036 mainSizer.Add(cellSizer,0,) 1036 1037 if self.New: … … 1038 1039 self.new = wx.RadioBox(panel,-1,'Generate new positions?',choices=choice) 1039 1040 self.new.Bind(wx.EVT_RADIOBOX, self.OnOpSelect) 1040 mainSizer.Add(self.new,0, wx.ALIGN_CENTER_VERTICAL)1041 mainSizer.Add(self.new,0,WACV) 1041 1042 mainSizer.Add((5,5),0) 1042 1043 … … 1128 1129 mainSizer = wx.BoxSizer(wx.VERTICAL) 1129 1130 mainSizer.Add(wx.StaticText(self.panel,-1,'Controls for phase '+data['Name']), 1130 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT,10)1131 0,WACV|wx.LEFT,10) 1131 1132 mainSizer.Add((10,10),1) 1132 1133 1133 1134 radiiSizer = wx.FlexGridSizer(2,3,5,5) 1134 radiiSizer.Add(wx.StaticText(self.panel,-1,' Type'),0, wx.ALIGN_CENTER_VERTICAL)1135 radiiSizer.Add(wx.StaticText(self.panel,-1,'Bond radii'),0, wx.ALIGN_CENTER_VERTICAL)1136 radiiSizer.Add(wx.StaticText(self.panel,-1,'Angle radii'),0, wx.ALIGN_CENTER_VERTICAL)1135 radiiSizer.Add(wx.StaticText(self.panel,-1,' Type'),0,WACV) 1136 radiiSizer.Add(wx.StaticText(self.panel,-1,'Bond radii'),0,WACV) 1137 radiiSizer.Add(wx.StaticText(self.panel,-1,'Angle radii'),0,WACV) 1137 1138 self.objList = {} 1138 1139 for id,item in enumerate(self.data['AtomTypes']): 1139 radiiSizer.Add(wx.StaticText(self.panel,-1,' '+item),0, wx.ALIGN_CENTER_VERTICAL)1140 radiiSizer.Add(wx.StaticText(self.panel,-1,' '+item),0,WACV) 1140 1141 bRadii = wx.TextCtrl(self.panel,-1,value='%.3f'%(data['BondRadii'][id]),style=wx.TE_PROCESS_ENTER) 1141 1142 self.objList[bRadii.GetId()] = ['BondRadii',id] 1142 1143 bRadii.Bind(wx.EVT_TEXT_ENTER,self.OnRadiiVal) 1143 1144 bRadii.Bind(wx.EVT_KILL_FOCUS,self.OnRadiiVal) 1144 radiiSizer.Add(bRadii,0, wx.ALIGN_CENTER_VERTICAL)1145 radiiSizer.Add(bRadii,0,WACV) 1145 1146 aRadii = wx.TextCtrl(self.panel,-1,value='%.3f'%(data['AngleRadii'][id]),style=wx.TE_PROCESS_ENTER) 1146 1147 self.objList[aRadii.GetId()] = ['AngleRadii',id] 1147 1148 aRadii.Bind(wx.EVT_TEXT_ENTER,self.OnRadiiVal) 1148 1149 aRadii.Bind(wx.EVT_KILL_FOCUS,self.OnRadiiVal) 1149 radiiSizer.Add(aRadii,0, wx.ALIGN_CENTER_VERTICAL)1150 radiiSizer.Add(aRadii,0,WACV) 1150 1151 mainSizer.Add(radiiSizer,0,wx.EXPAND) 1151 1152 factorSizer = wx.FlexGridSizer(2,2,5,5) 1152 1153 Names = ['Bond','Angle'] 1153 1154 for i,name in enumerate(Names): 1154 factorSizer.Add(wx.StaticText(self.panel,-1,name+' search factor'),0, wx.ALIGN_CENTER_VERTICAL)1155 factorSizer.Add(wx.StaticText(self.panel,-1,name+' search factor'),0,WACV) 1155 1156 bondFact = wx.TextCtrl(self.panel,-1,value='%.3f'%(data['Factors'][i]),style=wx.TE_PROCESS_ENTER) 1156 1157 self.objList[bondFact.GetId()] = ['Factors',i] … … 1787 1788 else: 1788 1789 ch = HelpButton(panel,G2obj.fmtVarDescr(name)) 1789 subSizer.Add(ch,0,wx.LEFT|wx.RIGHT| wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER,1)1790 subSizer.Add(ch,0,wx.LEFT|wx.RIGHT|WACV|wx.ALIGN_CENTER,1) 1790 1791 subSizer.Add(wx.StaticText(panel,wx.ID_ANY,str(name))) 1791 1792 if name in varyList: … … 3230 3231 if 'FreePrm3' not in data: 3231 3232 data['FreePrm3'] = 'Applied load (MN)' 3233 if 'Copy2Next' not in data: 3234 data['Copy2Next'] = False 3235 if 'Reverse Seq' not in data: 3236 data['Reverse Seq'] = False 3237 3238 3232 3239 #end patch 3233 3240 … … 3254 3261 def OnReverse(event): 3255 3262 data['Reverse Seq'] = reverseSel.GetValue() 3263 3264 def OnCopySel(event): 3265 data['Copy2Next'] = copySel.GetValue() 3256 3266 3257 seqSizer = wx.BoxSizer(wx.HORIZONTAL) 3258 seqSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Sequential Refinement Powder Data: '),0,wx.ALIGN_CENTER_VERTICAL) 3267 seqSizer = wx.BoxSizer(wx.VERTICAL) 3268 dataSizer = wx.BoxSizer(wx.HORIZONTAL) 3269 dataSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Sequential Refinement Powder Data: '),0,WACV) 3259 3270 selSeqData = wx.Button(G2frame.dataDisplay,-1,label=' Select data') 3260 3271 selSeqData.Bind(wx.EVT_BUTTON,OnSelectData) 3261 seqSizer.Add(selSeqData,0,wx.ALIGN_CENTER_VERTICAL) 3262 seqSizer.Add((5,0),0) 3263 reverseSel = wx.CheckBox(G2frame.dataDisplay,-1,label=' Reverse order?') 3264 reverseSel.Bind(wx.EVT_CHECKBOX,OnReverse) 3265 if 'Seq Data' not in data: 3266 reverseSel.Enable(False) 3267 if 'Reverse Seq' in data: 3272 dataSizer.Add(selSeqData,0,WACV) 3273 seqSizer.Add(dataSizer,0) 3274 if 'Seq Data' in data: 3275 selSizer = wx.BoxSizer(wx.HORIZONTAL) 3276 reverseSel = wx.CheckBox(G2frame.dataDisplay,-1,label=' Reverse order?') 3277 reverseSel.Bind(wx.EVT_CHECKBOX,OnReverse) 3268 3278 reverseSel.SetValue(data['Reverse Seq']) 3269 seqSizer.Add(reverseSel,0,wx.ALIGN_CENTER_VERTICAL) 3279 selSizer.Add(reverseSel,0,WACV) 3280 copySel = wx.CheckBox(G2frame.dataDisplay,-1,label=' Copy results to next histogram?') 3281 copySel.Bind(wx.EVT_CHECKBOX,OnCopySel) 3282 copySel.SetValue(data['Copy2Next']) 3283 selSizer.Add(copySel,0,WACV) 3284 seqSizer.Add(selSizer,0) 3270 3285 return seqSizer 3271 3286 … … 3309 3324 3310 3325 LSSizer = wx.FlexGridSizer(cols=4,vgap=5,hgap=5) 3311 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Refinement derivatives: '),0, wx.ALIGN_CENTER_VERTICAL)3326 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Refinement derivatives: '),0,WACV) 3312 3327 Choice=['analytic Jacobian','numeric','analytic Hessian'] 3313 3328 derivSel = wx.ComboBox(parent=G2frame.dataDisplay,value=data['deriv type'],choices=Choice, … … 3316 3331 derivSel.Bind(wx.EVT_COMBOBOX, OnDerivType) 3317 3332 3318 LSSizer.Add(derivSel,0, wx.ALIGN_CENTER_VERTICAL)3319 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Min delta-M/M: '),0, wx.ALIGN_CENTER_VERTICAL)3333 LSSizer.Add(derivSel,0,WACV) 3334 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Min delta-M/M: '),0,WACV) 3320 3335 Cnvrg = wx.TextCtrl(G2frame.dataDisplay,-1,value='%.2g'%(data['min dM/M']),style=wx.TE_PROCESS_ENTER) 3321 3336 Cnvrg.Bind(wx.EVT_TEXT_ENTER,OnConvergence) 3322 3337 Cnvrg.Bind(wx.EVT_KILL_FOCUS,OnConvergence) 3323 LSSizer.Add(Cnvrg,0, wx.ALIGN_CENTER_VERTICAL)3338 LSSizer.Add(Cnvrg,0,WACV) 3324 3339 if 'Hessian' in data['deriv type']: 3325 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Max cycles: '),0, wx.ALIGN_CENTER_VERTICAL)3340 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Max cycles: '),0,WACV) 3326 3341 Choice = ['0','1','2','3','5','10','15','20'] 3327 3342 maxCyc = wx.ComboBox(parent=G2frame.dataDisplay,value=str(data['max cyc']),choices=Choice, … … 3329 3344 maxCyc.SetValue(str(data['max cyc'])) 3330 3345 maxCyc.Bind(wx.EVT_COMBOBOX, OnMaxCycles) 3331 LSSizer.Add(maxCyc,0, wx.ALIGN_CENTER_VERTICAL)3346 LSSizer.Add(maxCyc,0,WACV) 3332 3347 else: 3333 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Initial shift factor: '),0, wx.ALIGN_CENTER_VERTICAL)3348 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Initial shift factor: '),0,WACV) 3334 3349 Factr = wx.TextCtrl(G2frame.dataDisplay,-1,value='%.5f'%(data['shift factor']),style=wx.TE_PROCESS_ENTER) 3335 3350 Factr.Bind(wx.EVT_TEXT_ENTER,OnFactor) 3336 3351 Factr.Bind(wx.EVT_KILL_FOCUS,OnFactor) 3337 LSSizer.Add(Factr,0, wx.ALIGN_CENTER_VERTICAL)3352 LSSizer.Add(Factr,0,WACV) 3338 3353 if G2frame.Sngl: 3339 3354 LSSizer.Add((1,0),) … … 3342 3357 fsqRef.SetValue(data['F**2']) 3343 3358 fsqRef.Bind(wx.EVT_CHECKBOX,OnFsqRef) 3344 LSSizer.Add(fsqRef,0, wx.ALIGN_CENTER_VERTICAL)3345 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,label='Min obs/sig (0-5): '),0, wx.ALIGN_CENTER_VERTICAL)3359 LSSizer.Add(fsqRef,0,WACV) 3360 LSSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,label='Min obs/sig (0-5): '),0,WACV) 3346 3361 minSig = wx.TextCtrl(G2frame.dataDisplay,-1,value='%.2f'%(data['minF/sig']),style=wx.TE_PROCESS_ENTER) 3347 3362 minSig.Bind(wx.EVT_TEXT_ENTER,OnMinSig) 3348 3363 minSig.Bind(wx.EVT_KILL_FOCUS,OnMinSig) 3349 LSSizer.Add(minSig,0, wx.ALIGN_CENTER_VERTICAL)3364 LSSizer.Add(minSig,0,WACV) 3350 3365 return LSSizer 3351 3366 … … 3357 3372 Author = data['Author'] 3358 3373 authSizer = wx.BoxSizer(wx.HORIZONTAL) 3359 authSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' CIF Author (last, first):'),0, wx.ALIGN_CENTER_VERTICAL)3374 authSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' CIF Author (last, first):'),0,WACV) 3360 3375 auth = wx.TextCtrl(G2frame.dataDisplay,-1,value=Author,style=wx.TE_PROCESS_ENTER) 3361 3376 auth.Bind(wx.EVT_TEXT_ENTER,OnAuthor) 3362 3377 auth.Bind(wx.EVT_KILL_FOCUS,OnAuthor) 3363 authSizer.Add(auth,0, wx.ALIGN_CENTER_VERTICAL)3378 authSizer.Add(auth,0,WACV) 3364 3379 return authSizer 3365 3380 … … 3375 3390 mainSizer = wx.BoxSizer(wx.VERTICAL) 3376 3391 mainSizer.Add((5,5),0) 3377 mainSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Refinement Controls:'),0, wx.ALIGN_CENTER_VERTICAL)3392 mainSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Refinement Controls:'),0,WACV) 3378 3393 mainSizer.Add(LSSizer()) 3379 3394 mainSizer.Add((5,5),0) … … 3640 3655 mainSizer.Add((5,5),) 3641 3656 wtSizer = wx.BoxSizer(wx.HORIZONTAL) 3642 wtSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Weight factor: '),0, wx.ALIGN_CENTER_VERTICAL)3657 wtSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Weight factor: '),0,WACV) 3643 3658 wtval = wx.TextCtrl(G2frame.dataDisplay,-1,'%.3f'%(data[0]['wtFactor']),style=wx.TE_PROCESS_ENTER) 3644 3659 wtval.Bind(wx.EVT_TEXT_ENTER,OnWtFactor) 3645 3660 wtval.Bind(wx.EVT_KILL_FOCUS,OnWtFactor) 3646 wtSizer.Add(wtval,0, wx.ALIGN_CENTER_VERTICAL)3661 wtSizer.Add(wtval,0,WACV) 3647 3662 mainSizer.Add(wtSizer) 3648 3663 if data[0].get('Dummy'): … … 3657 3672 lbl = lbl.format(Tmin,Tmax,t,step,num) 3658 3673 simSizer.Add(wx.StaticText(G2frame.dataDisplay,wx.ID_ANY,lbl), 3659 0, wx.ALIGN_CENTER_VERTICAL)3674 0,WACV) 3660 3675 but = wx.Button(G2frame.dataDisplay,wx.ID_ANY,"Edit range") 3661 3676 but.Bind(wx.EVT_BUTTON,onEditSimRange) 3662 simSizer.Add(but,0, wx.ALIGN_CENTER_VERTICAL)3677 simSizer.Add(but,0,WACV) 3663 3678 mainSizer.Add(simSizer) 3664 3679 if 'Nobs' in data[0]: … … 3737 3752 scaleSizer = wx.BoxSizer(wx.HORIZONTAL) 3738 3753 scaleSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Scale'),0, 3739 wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)3754 WACV|wx.EXPAND) 3740 3755 scaleSel = wx.Slider(parent=G2frame.dataDisplay,maxValue=1000,minValue=1, 3741 3756 style=wx.SL_HORIZONTAL,value=int(data['Scale']*10)) 3742 scaleSizer.Add(scaleSel,1,wx.EXPAND|wx.RIGHT| wx.ALIGN_CENTER_VERTICAL)3757 scaleSizer.Add(scaleSel,1,wx.EXPAND|wx.RIGHT|WACV) 3743 3758 scaleSel.SetLineSize(10) 3744 3759 scaleSel.SetPageSize(10) … … 3749 3764 zoneSizer = wx.BoxSizer(wx.HORIZONTAL) 3750 3765 zoneSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Zone '),0, 3751 wx.ALIGN_CENTER_VERTICAL)3766 WACV) 3752 3767 zoneSel = wx.ComboBox(parent=G2frame.dataDisplay,value=data['Zone'],choices=['100','010','001'], 3753 3768 style=wx.CB_READONLY|wx.CB_DROPDOWN) 3754 3769 zoneSel.Bind(wx.EVT_COMBOBOX, OnSelZone) 3755 zoneSizer.Add(zoneSel,0, wx.ALIGN_CENTER_VERTICAL)3770 zoneSizer.Add(zoneSel,0,WACV) 3756 3771 zoneSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Plot type '),0, 3757 wx.ALIGN_CENTER_VERTICAL)3772 WACV) 3758 3773 typeSel = wx.ComboBox(parent=G2frame.dataDisplay,value=data['Type'],choices=typeChoices, 3759 3774 style=wx.CB_READONLY|wx.CB_DROPDOWN) 3760 3775 typeSel.Bind(wx.EVT_COMBOBOX, OnSelType) 3761 zoneSizer.Add(typeSel,0, wx.ALIGN_CENTER_VERTICAL)3776 zoneSizer.Add(typeSel,0,WACV) 3762 3777 zoneSizer.Add((10,0),0) 3763 3778 mainSizer.Add(zoneSizer,0,wx.EXPAND|wx.RIGHT) … … 3767 3782 layerSizer = wx.BoxSizer(wx.HORIZONTAL) 3768 3783 layerSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Layer'),0, 3769 wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)3784 WACV|wx.EXPAND) 3770 3785 layerSel = wx.Slider(parent=G2frame.dataDisplay,maxValue=HKLmax[izone],minValue=HKLmin[izone], 3771 3786 style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS|wx.SL_LABELS,value=0) … … 3773 3788 layerSel.SetPageSize(1) 3774 3789 layerSel.Bind(wx.EVT_SLIDER, OnLayerSlider) 3775 layerSizer.Add(layerSel,1,wx.EXPAND|wx.RIGHT| wx.ALIGN_CENTER_VERTICAL)3790 layerSizer.Add(layerSel,1,wx.EXPAND|wx.RIGHT|WACV) 3776 3791 layerSizer.Add((10,0),0) 3777 3792 mainSizer.Add(layerSizer,1,wx.EXPAND|wx.RIGHT) -
trunk/GSASIIstrMain.py
r1239 r1240 177 177 rigidbodyDict,parmDict,varyList,calcControls,pawleyLookup,ifPrint,printFile,dlg) 178 178 179 # G2mv.Map2Dict(parmDict,varyList)180 # Rvals = {}181 # while True:182 # begin = time.time()183 # values = np.array(G2stMth.Dict2Values(parmDict, varyList))184 # Ftol = Controls['min dM/M']185 # Factor = Controls['shift factor']186 # maxCyc = Controls['max cyc']187 # if 'Jacobian' in Controls['deriv type']:188 # result = so.leastsq(G2stMth.errRefine,values,Dfun=G2stMth.dervRefine,full_output=True,189 # ftol=Ftol,col_deriv=True,factor=Factor,190 # args=([Histograms,Phases,restraintDict,rigidbodyDict],parmDict,varyList,calcControls,pawleyLookup,dlg))191 # ncyc = int(result[2]['nfev']/2)192 # elif 'Hessian' in Controls['deriv type']:193 # result = G2mth.HessianLSQ(G2stMth.errRefine,values,Hess=G2stMth.HessRefine,ftol=Ftol,maxcyc=maxCyc,Print=True,194 # args=([Histograms,Phases,restraintDict,rigidbodyDict],parmDict,varyList,calcControls,pawleyLookup,dlg))195 # ncyc = result[2]['num cyc']+1196 # Rvals['lamMax'] = result[2]['lamMax']197 # else: #'numeric'198 # result = so.leastsq(G2stMth.errRefine,values,full_output=True,ftol=Ftol,epsfcn=1.e-8,factor=Factor,199 # args=([Histograms,Phases,restraintDict,rigidbodyDict],parmDict,varyList,calcControls,pawleyLookup,dlg))200 # ncyc = int(result[2]['nfev']/len(varyList))201 ## table = dict(zip(varyList,zip(values,result[0],(result[0]-values))))202 ## for item in table: print item,table[item] #useful debug - are things shifting?203 # runtime = time.time()-begin204 # Rvals['chisq'] = np.sum(result[2]['fvec']**2)205 # G2stMth.Values2Dict(parmDict, varyList, result[0])206 # G2mv.Dict2Map(parmDict,varyList)207 # Rvals['Nobs'] = Histograms['Nobs']208 # Rvals['Rwp'] = np.sqrt(Rvals['chisq']/Histograms['sumwYo'])*100. #to %209 # Rvals['GOF'] = Rvals['chisq']/(Histograms['Nobs']-len(varyList))210 # print >>printFile,135*'-'211 # print >>printFile,' Number of function calls:',result[2]['nfev'],' Number of observations: ',Histograms['Nobs'],' Number of parameters: ',len(varyList)212 # print >>printFile,' Refinement time = %8.3fs, %8.3fs/cycle, for %d cycles'%(runtime,runtime/ncyc,ncyc)213 # print >>printFile,' wR = %7.2f%%, chi**2 = %12.6g, reduced chi**2 = %6.2f'%(Rvals['Rwp'],Rvals['chisq'],Rvals['GOF'])214 # try:215 # covMatrix = result[1]*Rvals['GOF']216 # sig = np.sqrt(np.diag(covMatrix))217 # if np.any(np.isnan(sig)):218 # print '*** Least squares aborted - some invalid esds possible ***'219 ## table = dict(zip(varyList,zip(values,result[0],(result[0]-values)/sig)))220 ## for item in table: print item,table[item] #useful debug - are things shifting?221 # break #refinement succeeded - finish up!222 # except TypeError,FloatingPointError: #result[1] is None on singular matrix223 # print '**** Refinement failed - singular matrix ****'224 # if 'Hessian' in Controls['deriv type']:225 # num = len(varyList)-1226 # for i,val in enumerate(np.flipud(result[2]['psing'])):227 # if val:228 # print 'Removing parameter: ',varyList[num-i]229 # del(varyList[num-i])230 # else:231 # Ipvt = result[2]['ipvt']232 # for i,ipvt in enumerate(Ipvt):233 # if not np.sum(result[2]['fjac'],axis=1)[i]:234 # print 'Removing parameter: ',varyList[ipvt-1]235 # del(varyList[ipvt-1])236 # break237 238 # print 'dependentParmList: ',G2mv.dependentParmList239 # print 'arrayList: ',G2mv.arrayList240 # print 'invarrayList: ',G2mv.invarrayList241 # print 'indParmList: ',G2mv.indParmList242 # print 'fixedDict: ',G2mv.fixedDict243 # print 'test1'244 179 G2stMth.GetFobsSq(Histograms,Phases,parmDict,calcControls) 245 180 sigDict = dict(zip(varyList,sig)) … … 316 251 SeqResult = {'histNames':histNames} 317 252 makeBack = True 253 Histo = {} 254 NewparmDict = {} 318 255 for ihst,histogram in enumerate(histNames): 319 256 ifPrint = False … … 385 322 parmDict.update(hapDict) 386 323 parmDict.update(histDict) 324 if Controls['Copy2Next']: 325 parmDict.update(NewparmDict) 387 326 G2stIO.GetFprime(calcControls,Histo) 388 327 # do constraint processing … … 410 349 rigidbodyDict,parmDict,varyList,calcControls,pawleyLookup,ifPrint,printFile,dlg) 411 350 412 # G2mv.Map2Dict(parmDict,varyList)413 # print 'parmDict:',parmDict ######### show dict just before refinement414 # Rvals = {}415 # while True:416 # begin = time.time()417 # values = np.array(G2stMth.Dict2Values(parmDict,varyList))418 # Ftol = Controls['min dM/M']419 # Factor = Controls['shift factor']420 # maxCyc = Controls['max cyc']421 #422 # if 'Jacobian' in Controls['deriv type']:423 # result = so.leastsq(G2stMth.errRefine,values,Dfun=G2stMth.dervRefine,full_output=True,424 # ftol=Ftol,col_deriv=True,factor=Factor,425 # args=([Histo,Phases,restraintDict,rigidbodyDict],parmDict,varyList,calcControls,pawleyLookup,dlg))426 # ncyc = int(result[2]['nfev']/2)427 # elif 'Hessian' in Controls['deriv type']:428 # result = G2mth.HessianLSQ(G2stMth.errRefine,values,Hess=G2stMth.HessRefine,ftol=Ftol,maxcyc=maxCyc,429 # args=([Histo,Phases,restraintDict,rigidbodyDict],parmDict,varyList,calcControls,pawleyLookup,dlg))430 # ncyc = result[2]['num cyc']+1431 # else: #'numeric'432 # result = so.leastsq(G2stMth.errRefine,values,full_output=True,ftol=Ftol,epsfcn=1.e-8,factor=Factor,433 # args=([Histo,Phases,restraintDict,rigidbodyDict],parmDict,varyList,calcControls,pawleyLookup,dlg))434 # ncyc = int(result[2]['nfev']/len(varyList))435 #436 # runtime = time.time()-begin437 # Rvals['chisq'] = np.sum(result[2]['fvec']**2)438 # G2stMth.Values2Dict(parmDict, varyList, result[0])439 # G2mv.Dict2Map(parmDict,varyList)440 #441 # Rvals['Rwp'] = np.sqrt(Rvals['chisq']/Histo['sumwYo'])*100. #to %442 # Rvals['GOF'] = Rvals['Rwp']/(Histo['Nobs']-len(varyList))443 # Rvals['Nobs'] = Histo['Nobs']444 # print >>printFile,135*'-'445 # print >>printFile,' Number of function calls:',result[2]['nfev'],' Number of observations: ',Histo['Nobs'],' Number of parameters: ',len(varyList)446 # print >>printFile,' Refinement time = %8.3fs, %8.3fs/cycle, for %d cycles'%(runtime,runtime/ncyc,ncyc)447 # print >>printFile,' wRp = %7.2f%%, chi**2 = %12.6g, reduced chi**2 = %6.2f'%(Rvals['Rwp'],Rvals['chisq'],Rvals['GOF'])448 # try:449 # covMatrix = result[1]*Rvals['GOF']450 # sig = np.sqrt(np.diag(covMatrix))451 # if np.any(np.isnan(sig)):452 # print '*** Least squares aborted - some invalid esds possible ***'453 # ifPrint = True454 # break #refinement succeeded - finish up!455 # except TypeError: #result[1] is None on singular matrix456 # print '**** Refinement failed - singular matrix ****'457 # if 'Hessian' in Controls['deriv type']:458 # num = len(varyList)-1459 # for i,val in enumerate(np.flipud(result[2]['psing'])):460 # if val:461 # print 'Removing parameter: ',varyList[num-i]462 # del(varyList[num-i])463 # else:464 # Ipvt = result[2]['ipvt']465 # for i,ipvt in enumerate(Ipvt):466 # if not np.sum(result[2]['fjac'],axis=1)[i]:467 # print 'Removing parameter: ',varyList[ipvt-1]468 # del(varyList[ipvt-1])469 # break470 #471 351 G2stMth.GetFobsSq(Histo,Phases,parmDict,calcControls) 472 352 sigDict = dict(zip(varyList,sig)) … … 479 359 # add the uncertainties into the esd dictionary (sigDict) 480 360 G2stMth.ApplyRBModels(parmDict,Phases,rigidbodyDict,True) 481 # ??SetRigidBodyModels(parmDict,sigDict,rigidbodyDict,printFile)361 # G2stIO.SetRigidBodyModels(parmDict,sigDict,rigidbodyDict,printFile) 482 362 G2stIO.SetHistogramPhaseData(parmDict,sigDict,Phases,Histo,ifPrint,printFile) 483 363 G2stIO.SetHistogramData(parmDict,sigDict,Histo,ifPrint,printFile) … … 485 365 G2stIO.SetUsedHistogramsAndPhases(GPXfile,Histo,Phases,rigidbodyDict,covData,makeBack) 486 366 makeBack = False 367 NewparmDict = {} 368 if Controls['Copy2Next']: 369 for parm in parmDict: 370 items = parm.split(':',2) 371 if str(ihst) in items[1] and parm in varyList: 372 items[1] = str(ihst+1) #not correct! needs to point to next (or prev) histogram 373 newparm = ':'.join(items) 374 NewparmDict[newparm] = parmDict[parm] 487 375 G2stIO.SetSeqResult(GPXfile,Histograms,SeqResult) 488 376 printFile.close()
Note: See TracChangeset
for help on using the changeset viewer.