Changeset 4759
- Timestamp:
- Jan 10, 2021 5:12:01 PM (3 years ago)
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
install/g2full/g2postinstall.sh.template
r4749 r4759 27 27 fi 28 28 echo "GSAS-II installer, version **Version** completed" 29 echo "*** Viewing GSAS-II app in Finder; you may wish to drag it to the dock.***"29 #MACOnly# echo "*** Viewing GSAS-II app in Finder; you may wish to drag it to the dock.***" -
install/setversion.py
r4749 r4759 80 80 out = out.replace('**wxversion**',wxversion) 81 81 out = out.replace('**mplversion**',mplversion) 82 if sys.platform == "darwin": out.replace('#MACOnly#','') 82 83 print('Creating',fil) 83 84 fp = open(fil,'w') -
trunk/GSASIIdataGUI.py
r4724 r4759 8578 8578 but.Bind(wx.EVT_BUTTON,onEditSimRange) 8579 8579 mainSizer.Add(simSizer) 8580 mainSizer.Add(but,0 ,WACV)8580 mainSizer.Add(but,0) 8581 8581 if 'Nobs' in data[0]: 8582 8582 mainSizer.Add(wx.StaticText(G2frame.dataWindow,-1, -
trunk/GSASIImath_new.py
r4699 r4759 2 2 #GSASIImath - major mathematics routines 3 3 ########### SVN repository information ################### 4 # $Date: 202 0-12-12 13:30:31 -0600 (Sat, 12 Dec 2020) $4 # $Date: 2021-01-04 10:41:46 -0600 (Mon, 04 Jan 2021) $ 5 5 # $Author: vondreele $ 6 # $Revision: 4 671$6 # $Revision: 4709 $ 7 7 # $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/GSASIImath.py $ 8 # $Id: GSASIImath.py 4 671 2020-12-12 19:30:31Z vondreele $8 # $Id: GSASIImath.py 4709 2021-01-04 16:41:46Z vondreele $ 9 9 ########### SVN repository information ################### 10 10 ''' … … 24 24 import copy 25 25 import GSASIIpath 26 GSASIIpath.SetVersionNumber("$Revision: 4 671$")26 GSASIIpath.SetVersionNumber("$Revision: 4709 $") 27 27 import GSASIIElem as G2el 28 28 import GSASIIlattice as G2lat … … 102 102 s = np.where(s>cutoff,1./s,0.) 103 103 nzero = s.shape[0]-np.count_nonzero(s) 104 # res = np.dot(np.transpose(vt), np.multiply(s[:, np.newaxis], np.transpose(u)))105 104 res = np.dot(vt.T,s[:,nxs]*u.T) 106 105 return res,nzero … … 125 124 out.append(np.delete(v,bad)) 126 125 return out 127 128 129 126 130 127 def setHcorr(info,Amat,xtol,problem=False): … … 233 230 G2fil.G2Print('ouch #1 dropping singularities for variable(s) #{}'.format( 234 231 psing), mode='warn') 235 Amat, indices, Xvec, Yvec, Adiag = dropTerms(psing, 236 Amat, indices, Xvec, Yvec, Adiag) 232 Amat, indices, Xvec, Yvec, Adiag = dropTerms(psing,Amat, indices, Xvec, Yvec, Adiag) 237 233 Anorm = np.outer(Adiag,Adiag) # normalize matrix & vector 238 234 Yvec /= Adiag … … 253 249 psing = [np.argmin(d)] 254 250 G2fil.G2Print('ouch #2 bad SVD inversion; dropping terms for for variable(s) #{}'. 255 format(psing), mode='warn') 256 Amat, indices, Xvec, Yvec, Adiag = dropTerms(psing, 257 Amat, indices, Xvec, Yvec, Adiag) 251 format(psing), mode='warn') 252 Amat, indices, Xvec, Yvec, Adiag = dropTerms(psing,Amat, indices, Xvec, Yvec, Adiag) 258 253 if loops < maxdrop: continue # try again, same lam but fewer vars 259 254 G2fil.G2Print('giving up with ouch #2', mode='error') … … 269 264 psing = [np.argmin(d)] 270 265 G2fil.G2Print('{} SVD Zeros: dropping terms for for variable(s) #{}'. 271 format(Nzeros,psing), mode='warn') 272 Amat, indices, Xvec, Yvec, Adiag = dropTerms(psing, 273 Amat, indices, Xvec, Yvec, Adiag) 266 format(Nzeros,psing), mode='warn') 267 Amat, indices, Xvec, Yvec, Adiag = dropTerms(psing,Amat, indices, Xvec, Yvec, Adiag) 274 268 Amatlam = Amat*(1.+np.eye(Amat.shape[0])*lam) 275 269 Ainv,nz = pinv(Amatlam,xtol) #do Moore-Penrose inversion (via SVD) 276 270 if nz > 0: G2fil.G2Print('Note: there are {} new SVD Zeros after drop'.format(nz), 277 271 mode='warn') 278 272 Xvec = np.inner(Ainv,Yvec)/Adiag #solve for LS terms 279 273 XvecAll[indices] = Xvec # expand … … 285 279 loops += 1 286 280 d = np.abs(np.diag(nl.qr(Amatlam)[1])) 287 G2fil.G2Print('ouch #3 unable to evaluate objective function;', 288 mode='error') 281 G2fil.G2Print('ouch #3 unable to evaluate objective function;',mode='error') 289 282 info = {'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':lamMax,'SVD0':Nzeros} 290 283 info['psing'] = [i for i in range(n) if i not in indices] … … 310 303 if Print: 311 304 G2fil.G2Print(('divergence: chi^2 %.5g on %d obs. (%d SVD zeros)\n'+ 312 305 '\tincreasing Marquardt lambda to %.1e')%(chisq1,Nobs,Nzeros,lam)) 313 306 if lam > 10.: 314 307 G2fil.G2Print('ouch #4 stuck: chisq-new %.4g > chisq0 %.4g with lambda %.1g'% 315 308 (chisq1,chisq0,lam), mode='warn') 316 309 try: # report highly correlated parameters from full Hessian, if we can 317 310 info = {'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':lamMax, … … 369 362 Bmat,Nzeros = setHcorr(info,Amat,xtol,problem=False) 370 363 info.update({'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':lamMax,'SVD0':Nzeros,'psing':psing_prev, 371 364 'Converged':ifConverged, 'DelChi2':deltaChi2, 'Xvec':XvecAll, 'chisq0':chisq00}) 372 365 return [x0,Bmat,info] 373 366 except nl.LinAlgError: … … 403 396 if Print: 404 397 G2fil.G2Print('Found %d SVD zeros w/o Lambda. '+ 405 'Likely problem with variable(s) #%s'% 406 (Nzeros,psing), mode='warn') 398 'Likely problem with variable(s) #%s'%(Nzeros,psing), mode='warn') 407 399 Amat, indices, Yvec = dropTerms(psing, Amat, indices, Yvec) 408 400 # expand Bmat by filling with zeros if columns have been dropped … … 412 404 Bmat = np.insert(np.insert(Bmat,ins,0,1),ins,0,0) 413 405 info.update({'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':lamMax,'SVD0':Nzeros, 414 406 'Converged':ifConverged, 'DelChi2':deltaChi2, 'Xvec':XvecAll, 'chisq0':chisq00}) 415 407 info['psing'] = [i for i in range(n) if i not in indices] 416 408 return [x0,Bmat,info] … … 492 484 Ainv,Nzeros = pinv(Amat,xtol) #do Moore-Penrose inversion (via SVD) 493 485 except nl.LinAlgError: 494 G2fil.G2Print('ouch #1 bad SVD inversion; change parameterization', mode=' error')486 G2fil.G2Print('ouch #1 bad SVD inversion; change parameterization', mode='warn') 495 487 psing = list(np.where(np.abs(np.diag(nl.qr(Amat)[1])) < 1.e-14)[0]) 496 488 return [x0,None,{'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':0.,'psing':psing,'SVD0':-1}] … … 518 510 Amat = Amat/Anorm 519 511 try: 520 Bmat,Nzeros = pinv(Amat,xtol) #Moore-Penrose inversion (via SVD) & count of zeros 521 G2fil.G2Print('Found %d SVD zeros'%(Nzeros), mode='warn') 512 Bmat,Nzero = pinv(Amat,xtol) #Moore-Penrose inversion (via SVD) & count of zeros 513 G2fil.G2Print('Found %d SVD zeros'%(Nzero), mode='warn') 514 # Bmat = nl.inv(Amatlam); Nzeros = 0 522 515 Bmat = Bmat/Anorm 523 516 return [x0,Bmat,{'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':0.,'psing':[], 524 'SVD0':Nzero s,'Converged': ifConverged, 'DelChi2':deltaChi2,517 'SVD0':Nzero,'Converged': ifConverged, 'DelChi2':deltaChi2, 525 518 'chisq0':chisq00}] 526 519 except nl.LinAlgError: … … 528 521 psing = [] 529 522 if maxcyc: 530 psing = list(np.where(np. abs(np.diag(nl.qr(Amat)[1])) < 1.e-14)[0])523 psing = list(np.where(np.diag(nl.qr(Amat)[1]) < 1.e-14)[0]) 531 524 return [x0,None,{'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':0.,'psing':psing,'SVD0':-1, 532 525 'chisq0':chisq00}] -
trunk/GSASIIphsGUI.py
r4719 r4759 8991 8991 topSizer = wx.BoxSizer(wx.HORIZONTAL) 8992 8992 topSizer.Add(wx.StaticText(drawOptions,label=' Drawing controls:'),0,WACV) 8993 # add help button to bring up help web page - at right s ede of window8994 topSizer.Add((-1,-1),1, WACV|wx.EXPAND)8993 # add help button to bring up help web page - at right side of window 8994 topSizer.Add((-1,-1),1,wx.EXPAND) 8995 8995 topSizer.Add(G2G.HelpButton(drawOptions,helpIndex=G2frame.dataWindow.helpKey)) 8996 mainSizer.Add(topSizer,0, WACV|wx.EXPAND)8996 mainSizer.Add(topSizer,0,wx.EXPAND) 8997 8997 mainSizer.Add(SlopSizer(),0) 8998 8998 G2G.HorizontalLine(mainSizer,drawOptions) … … 9309 9309 0,WACV) 9310 9310 # add help button to bring up help web page - at right sede of window 9311 titleSizer.Add((-1,-1),1, WACV|wx.EXPAND)9311 titleSizer.Add((-1,-1),1,wx.EXPAND) 9312 9312 titleSizer.Add(G2G.HelpButton(Texture,helpIndex=G2frame.dataWindow.helpKey)) 9313 9313 mainSizer.Add(titleSizer,0,wx.EXPAND) … … 11519 11519 topSizer.Add(wx.StaticText(G2frame.MCSA,label='MC/SA models:'),0,WACV) 11520 11520 # add help button to bring up help web page - at right sede of window 11521 topSizer.Add((-1,-1),1, WACV|wx.EXPAND)11521 topSizer.Add((-1,-1),1,wx.EXPAND) 11522 11522 topSizer.Add(G2G.HelpButton(G2frame.MCSA,helpIndex=G2frame.dataWindow.helpKey)) 11523 mainSizer.Add(topSizer,0, WACV|wx.EXPAND)11523 mainSizer.Add(topSizer,0,wx.EXPAND) 11524 11524 mainSizer.Add((5,5),0) 11525 11525 rbNames = [] -
trunk/GSASIIplot.py
r4752 r4759 10815 10815 #GSASIIpath.IPyBreak() 10816 10816 for txt in legend.get_texts(): 10817 if mplv[0] >= 3 and mplv[1] >= 3: 10817 try: # as of MPL 3.3.2 this has not changed 10818 txt.set_picker(4) 10819 except AttributeError: 10818 10820 txt.set_pickradius(4) 10819 else:10820 txt.set_picker(4)10821 10821 if new: 10822 10822 legend.figure.canvas.mpl_connect('pick_event',onLegendPick) -
trunk/GSASIIpwdGUI.py
r4697 r4759 1703 1703 topSizer = wx.BoxSizer(wx.HORIZONTAL) 1704 1704 topSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Background used in refinement'),0,WACV) 1705 # add help button to bring up help web page - at right s ede of window1706 topSizer.Add((-1,-1),1, WACV|wx.EXPAND)1705 # add help button to bring up help web page - at right side of window 1706 topSizer.Add((-1,-1),1,wx.EXPAND) 1707 1707 topSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex=G2frame.dataWindow.helpKey)) 1708 mainSizer.Add(topSizer,0, WACV|wx.EXPAND)1708 mainSizer.Add(topSizer,0,wx.EXPAND) 1709 1709 mainSizer.Add(BackSizer()) 1710 1710 mainSizer.Add((0,5),0) … … 1791 1791 topSizer = wx.BoxSizer(wx.HORIZONTAL) 1792 1792 topSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Data used in refinement'),0,WACV) 1793 # add help button to bring up help web page - at right s ede of window1794 topSizer.Add((-1,-1),1, WACV|wx.EXPAND)1793 # add help button to bring up help web page - at right side of window 1794 topSizer.Add((-1,-1),1,wx.EXPAND) 1795 1795 topSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex=G2frame.dataWindow.helpKey)) 1796 mainSizer.Add(topSizer,0, WACV|wx.EXPAND)1796 mainSizer.Add(topSizer,0,wx.EXPAND) 1797 1797 mainSizer.Add((5,5)) 1798 1798 mainSizer.Add(LimitSizer()) … … 2203 2203 text = ' Histogram Type: %s Bank: %d'%(insVal['Type'],insVal['Bank']) 2204 2204 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,text),0,WACV) 2205 # add help button to bring up help web page - at right s ede of window2206 subSizer.Add((-1,-1),1, WACV|wx.EXPAND)2205 # add help button to bring up help web page - at right side of window 2206 subSizer.Add((-1,-1),1,wx.EXPAND) 2207 2207 subSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex=G2frame.dataWindow.helpKey)) 2208 mainSizer.Add(subSizer,0, WACV|wx.EXPAND)2208 mainSizer.Add(subSizer,0,wx.EXPAND) 2209 2209 # mainSizer.Add(subSizer) 2210 2210 labelLst[:],elemKeysLst[:],dspLst[:],refFlgElem[:] = [],[],[],[] … … 2942 2942 topSizer = wx.BoxSizer(wx.HORIZONTAL) 2943 2943 topSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Sample and Experimental Parameters')) 2944 # add help button to bring up help web page - at right s ede of window2945 topSizer.Add((-1,-1),1, WACV|wx.EXPAND)2944 # add help button to bring up help web page - at right side of window 2945 topSizer.Add((-1,-1),1,wx.EXPAND) 2946 2946 topSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex=G2frame.dataWindow.helpKey)) 2947 mainSizer.Add(topSizer,0, WACV|wx.EXPAND)2947 mainSizer.Add(topSizer,0,wx.EXPAND) 2948 2948 nameSizer = wx.BoxSizer(wx.HORIZONTAL) 2949 2949 nameSizer.Add(wx.StaticText(G2frame.dataWindow,wx.ID_ANY,' Instrument Name '),0,WACV) … … 2953 2953 nameSizer.Add(instNameVal) 2954 2954 instNameVal.Bind(wx.EVT_CHAR,OnNameVal) 2955 mainSizer.Add(nameSizer,0 ,WACV)2955 mainSizer.Add(nameSizer,0) 2956 2956 mainSizer.Add((5,5),0) 2957 2957 labelLst.append('Instrument Name') … … 2972 2972 onChoice=OnHistoChange) 2973 2973 nameSizer.Add(histoType) 2974 mainSizer.Add(nameSizer,0 ,WACV)2974 mainSizer.Add(nameSizer,0) 2975 2975 mainSizer.Add((5,5),0) 2976 2976 … … 2981 2981 if 'list' in str(type(data[key])): 2982 2982 parmRef = G2G.G2CheckBox(G2frame.dataWindow,' '+lbl,data[key],1) 2983 parmSizer.Add(parmRef,0, WACV|wx.EXPAND)2983 parmSizer.Add(parmRef,0,wx.EXPAND) 2984 2984 parmVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data[key],0, 2985 2985 nDig=nDig,typeHint=float,OnLeave=AfterChange) … … 2988 2988 else: 2989 2989 parmSizer.Add(wx.StaticText(G2frame.dataWindow,label=' '+lbl), 2990 0, WACV|wx.EXPAND)2990 0,wx.EXPAND) 2991 2991 parmVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,key, 2992 2992 typeHint=float,OnLeave=AfterChange) … … 4414 4414 topSizer = wx.BoxSizer(wx.HORIZONTAL) 4415 4415 topSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Indexing controls: '),0,WACV) 4416 # add help button to bring up help web page - at right s ede of window4417 topSizer.Add((-1,-1),1, WACV|wx.EXPAND)4416 # add help button to bring up help web page - at right side of window 4417 topSizer.Add((-1,-1),1,wx.EXPAND) 4418 4418 topSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex=G2frame.dataWindow.helpKey)) 4419 mainSizer.Add(topSizer,0, WACV|wx.EXPAND)4419 mainSizer.Add(topSizer,0,wx.EXPAND) 4420 4420 mainSizer.Add((5,5),0) 4421 4421 littleSizer = wx.FlexGridSizer(0,5,5,5) … … 4436 4436 mainSizer.Add((5,5),0) 4437 4437 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Select Bravais Lattices for indexing: '), 4438 0 ,WACV)4438 0) 4439 4439 mainSizer.Add((5,5),0) 4440 4440 littleSizer = wx.FlexGridSizer(0,5,5,5) … … 4456 4456 hklShow.Bind(wx.EVT_BUTTON,OnHklShow) 4457 4457 littleSizer.Add(hklShow,0,WACV) 4458 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label=' cell step ',style=wx.ALIGN_RIGHT),0,WACV |wx.ALIGN_RIGHT)4458 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label=' cell step ',style=wx.ALIGN_RIGHT),0,WACV) 4459 4459 shiftChoices = [ '0.01%','0.05%','0.1%','0.5%', '1.0%','2.5%','5.0%'] 4460 4460 shiftSel = wx.Choice(G2frame.dataWindow,choices=shiftChoices) … … 6268 6268 elif 'Particle' in data['Current']: 6269 6269 G2frame.dataWindow.SasSeqFit.Enable(True) 6270 mainSizer.Add(PartSizer(),1,wx. ALIGN_LEFT|wx.EXPAND)6270 mainSizer.Add(PartSizer(),1,wx.EXPAND) 6271 6271 elif 'Pair' in data['Current']: 6272 6272 G2frame.dataWindow.SasSeqFit.Enable(False) 6273 mainSizer.Add(PairSizer(),1,wx. ALIGN_LEFT|wx.EXPAND)6273 mainSizer.Add(PairSizer(),1,wx.EXPAND) 6274 6274 elif 'Shape' in data['Current']: 6275 6275 G2frame.dataWindow.SasSeqFit.Enable(False) 6276 mainSizer.Add(ShapesSizer(),1,wx. ALIGN_LEFT|wx.EXPAND)6276 mainSizer.Add(ShapesSizer(),1,wx.EXPAND) 6277 6277 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 6278 6278 backSizer = wx.BoxSizer(wx.HORIZONTAL) … … 7221 7221 typeHint=float,OnLeave=AfterChangeNoRefresh) 7222 7222 bkBox.Add(backVal,0,WACV) 7223 sfgSizer.Add(bkBox,0,wx. ALIGN_LEFT|wx.EXPAND)7223 sfgSizer.Add(bkBox,0,wx.EXPAND) 7224 7224 7225 7225 if 'XC' in inst['Type'][0]: … … 7233 7233 typeHint=float,OnLeave=AfterChangeNoRefresh) 7234 7234 sqBox.Add(rulandWdt,0,WACV) 7235 sfgSizer.Add(sqBox,0,wx. ALIGN_LEFT|wx.EXPAND)7235 sfgSizer.Add(sqBox,0,wx.EXPAND) 7236 7236 7237 7237 sqBox = wx.BoxSizer(wx.HORIZONTAL) -
trunk/GSASIIrestrGUI.py
r4697 r4759 1917 1917 btn = wx.Button(GeneralRestr, wx.ID_ANY,"Add restraint") 1918 1918 btn.Bind(wx.EVT_BUTTON,OnAddRestraint) 1919 hSizer.Add(btn,0,wx. ALIGN_CENTER|wx.EXPAND|wx.ALL)1919 hSizer.Add(btn,0,wx.EXPAND|wx.ALL) 1920 1920 mainSizer.Add(hSizer,0) 1921 1921 mainSizer.Add((5,5),0) -
trunk/exports/G2export_CIF.py
r4661 r4759 2939 2939 fbox.Add(txt,(i+2,0)) 2940 2940 line = wx.StaticLine(self,wx.ID_ANY, size=(-1,3), style=wx.LI_HORIZONTAL) 2941 vbox.Add(line, 0, wx.EXPAND|wx.AL IGN_CENTER|wx.ALL, 10)2941 vbox.Add(line, 0, wx.EXPAND|wx.ALL, 10) 2942 2942 2943 2943 # post the non-looped CIF items
Note: See TracChangeset
for help on using the changeset viewer.