Ignore:
Timestamp:
Jul 19, 2017 4:14:08 PM (4 years ago)
Author:
vondreele
Message:

put a self.SetAutoLayout?(True) in SetDataSize?
cleanup anneal - remove boltzmann & cauchy option & parameters - fundamentlly flawed
add new function (makeTsched) to generate anneal T schedule - show plot if coeff changed
add a final 'L-BFGS-B' refinement of each anneal result - gives much improved results
show plot of reflection covariances for MC/SA runs
cleanup MC/SA GUI stuff
cleanup Index list stuff - fix bug as well

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branch/2frame/GSASIIphsGUI.py

    r2930 r2937  
    16931693                    else:
    16941694                        gfacTxt = G2G.ValidatedTxtCtrl(General,generalData['Lande g'],ig,
    1695                             min=0.5,max=3.0,nDig=(10,2),typeHint=float)
     1695                            min=0.5,max=3.0,nDig=(10,2))
    16961696                        elemSizer.Add(gfacTxt,0,WACV)
    16971697            return elemSizer
     
    17811781            pawleySizer.Add(wx.StaticText(General,label=' Pawley dmin: '),0,WACV)
    17821782            pawlVal = G2G.ValidatedTxtCtrl(General,generalData,'Pawley dmin',
    1783                 min=0.25,max=20.,nDig=(10,5),typeHint=float)
     1783                min=0.25,max=20.,nDig=(10,5))
    17841784            pawleySizer.Add(pawlVal,0,WACV)
    17851785            pawleySizer.Add(wx.StaticText(General,label=' Pawley neg. wt.: '),0,WACV)
    17861786            pawlNegWt = G2G.ValidatedTxtCtrl(General,generalData,'Pawley neg wt',
    1787                 min=0.,max=1.,nDig=(10,4),typeHint=float)
     1787                min=0.,max=1.,nDig=(10,4))
    17881788            pawleySizer.Add(pawlNegWt,0,WACV)
    17891789            return pawleySizer
     
    20112011            def OnAlist(event):
    20122012                MCSAdata['Algorithm'] = Alist.GetValue()
     2013                OnShowTsched()               
    20132014                wx.CallAfter(UpdateGeneral,General.GetScrollPos(wx.VERTICAL))
    20142015               
     
    20392040                        MCSAdata['Annealing'][ind] = None                   
    20402041                        Obj.SetValue(str(MCSAdata['Annealing'][ind]))
     2042                       
     2043            def ShowTsched(invalid,value,tc):
     2044                OnShowTsched()
     2045               
     2046            def OnShowTsched():
     2047                if MCSAdata['Algorithm'] in ['fast','log']:
     2048                    Y = G2mth.makeTsched(MCSAdata)
     2049                    XY = [np.arange(len(Y)),np.log10(Y)]
     2050                    G2plt.PlotXY(G2frame,[XY,],labelX='T-step',labelY='log(T)',newPlot=True,lines=True,Title='Annealing schedule')
    20412051                       
     2052#            OnShowTsched()
    20422053            refList = []
    20432054            if len(data['Pawley ref']):
     
    20742085            line2Sizer.Add(ranRange,0,WACV)
    20752086            line2Sizer.Add(wx.StaticText(General,label='% of ranges. '),0,WACV)
    2076 #            autoRan = wx.CheckBox(General,-1,label=' Do auto range reduction? ')
    2077 #            autoRan.Bind(wx.EVT_CHECKBOX, OnAutoRan)
    2078 #            autoRan.SetValue(MCSAdata.get('autoRan',False))
    2079 #            line2Sizer.Add(autoRan,0,WACV)
    20802087            mcsaSizer.Add(line2Sizer)
    20812088            mcsaSizer.Add((5,5),)
    20822089            line3Sizer = wx.BoxSizer(wx.HORIZONTAL)
    2083             Achoice = ['log','fast','Basin Hopping']                #these work
    2084 #            Achoice = ['log','fast','cauchy','boltzmann']
     2090            Achoice = ['log','fast','Basin Hopping']                #these work not 'boltzmann','cauchy',
    20852091            line3Sizer.Add(wx.StaticText(General,label=' MC/SA schedule: '),0,WACV)
    20862092            Alist = wx.ComboBox(General,-1,value=MCSAdata['Algorithm'],choices=Achoice,
     
    20882094            Alist.Bind(wx.EVT_COMBOBOX,OnAlist)
    20892095            line3Sizer.Add(Alist,0,WACV)
    2090             if MCSAdata['Algorithm'] in ['fast','boltzmann','cauchy']:
    2091                 Names = [' A-jump: ',' B-jump: ']
    2092                 parms = 'Jump coeff'
    2093                 if MCSAdata['Algorithm'] in ['boltzmann','cauchy']:
    2094                     Names = [' A-jump: ']
    2095                 elif 'fast' in MCSAdata['Algorithm']:
    2096                     Names = [' quench: ',' m-factor: ',' n-factor: ']
    2097                     parms = 'fast parms'
     2096            if MCSAdata['Algorithm'] in ['fast',]:
     2097                Names = [' quench: ',' c-factor: ']
     2098                parms = 'fast parms'
    20982099                for i,name in enumerate(Names):
    20992100                    line3Sizer.Add(wx.StaticText(General,label=name),0,WACV)
    2100                     Ajump = G2G.ValidatedTxtCtrl(General,MCSAdata[parms],i,nDig=(10,2),min=0.,max=1.)
     2101                    Ajump = G2G.ValidatedTxtCtrl(General,MCSAdata[parms],i,nDig=(10,2),min=0.1,max=1.,OnLeave=ShowTsched)
    21012102                    line3Sizer.Add(Ajump,0,WACV)
    21022103            elif 'log' in MCSAdata['Algorithm']:
    21032104                line3Sizer.Add(wx.StaticText(General,label=' slope: '),0,WACV)
    2104                 slope = G2G.ValidatedTxtCtrl(General,MCSAdata,'log slope',nDig=(10,3),min=0.25,max=1.0)
     2105                slope = G2G.ValidatedTxtCtrl(General,MCSAdata,'log slope',nDig=(10,3),min=0.25,max=1.0,OnLeave=ShowTsched)
    21052106                line3Sizer.Add(slope,0,WACV)
    21062107            elif 'Basin Hopping' in MCSAdata['Algorithm']:
     
    21152116            else:
    21162117                line3Sizer.Add(wx.StaticText(General,label=' Start temp: '),0,WACV)
    2117                 line3Sizer.Add(G2G.ValidatedTxtCtrl(General,MCSAdata['Annealing'],0,nDig=(10,5)),0,WACV)
     2118                line3Sizer.Add(G2G.ValidatedTxtCtrl(General,MCSAdata['Annealing'],0,nDig=(10,5),OnLeave=ShowTsched),0,WACV)
    21182119                line3Sizer.Add(wx.StaticText(General,label=' Final temp: '),0,WACV)
    2119                 line3Sizer.Add(G2G.ValidatedTxtCtrl(General,MCSAdata['Annealing'],1,nDig=(10,5)),0,WACV)
     2120                line3Sizer.Add(G2G.ValidatedTxtCtrl(General,MCSAdata['Annealing'],1,nDig=(10,5),OnLeave=ShowTsched),0,WACV)
    21202121            line3Sizer.Add(wx.StaticText(General,label=' No. trials: '),0,WACV)
    21212122            line3Sizer.Add(G2G.ValidatedTxtCtrl(General,MCSAdata['Annealing'],2),0,WACV)
     
    67006701            for itors,tors in enumerate(RBObj['Torsions']):
    67016702                torSizer.Add(wx.StaticText(RigidBodies,-1,'Torsion '+'%d'%(itors)),0,WACV)
    6702                 torsTxt = G2G.ValidatedTxtCtrl(RigidBodies,RBObj['Torsions'][tors],0,nDig=(10,3),OnLeave=OnTorsion)
     6703                torsTxt = G2G.ValidatedTxtCtrl(RigidBodies,RBObj['Torsions'][itors],0,nDig=(10,3),OnLeave=OnTorsion)
    67036704                torSizer.Add(torsTxt)
    67046705                torCheck = wx.CheckBox(RigidBodies,-1,'Refine?')
     
    70547055                val = float(Obj.GetValue())/10.
    70557056                Tors[0] = val
    7056                 ang.SetValue('%8.3f'%(val))
     7057                ang.SetValue(val)
    70577058                G2plt.PlotStructure(G2frame,data)
    70587059
     
    74427443                    ObjV.SetValue('%.3f %.3f %.3f'%(V[0],V[1],V[2]))
    74437444                G2plt.PlotStructure(G2frame,data)
    7444 #                UpdateMCSA()
    74457445
    74467446            def OnMolCent(event):
     
    76347634            resultsGrid.Bind(wg.EVT_GRID_CELL_LEFT_CLICK, OnCellChange)
    76357635            resultsGrid.AutoSizeColumns(True)
     7636            resultsGrid.SetMargins(0,0)
    76367637            for r in range(resultsGrid.GetNumberRows()):
    76377638                for c in range(resultsGrid.GetNumberCols()):
     
    77787779                for i in range(nCyc):
    77797780                    pgbar.SetTitle('MC/SA run '+str(i+1)+' of '+str(nCyc))
    7780                     Result,tsum = G2mth.mcsaSearch(data,RBdata,reflType,reflData,covData,pgbar)
     7781                    Result,tsum,rcov = G2mth.mcsaSearch(data,RBdata,reflType,reflData,covData,pgbar)
    77817782                    MCSAdata['Results'].append(Result)
    77827783                    print ' MC/SA run completed: %d residual: %.3f%% SFcalc time: %.2fs'%(i,100*Result[2],tsum)
    77837784                    tsf += tsum
    77847785                print ' Structure factor time: %.2f'%(tsf)
     7786                XY = np.mgrid[0:rcov.shape[0],0:rcov.shape[1]]
     7787                G2plt.PlotXYZ(G2frame,XY,rcov,labelX='ref No.',labelY='ref No.',newPlot=False,Title='Reflection covariance matrix')
    77857788            else:
    77867789                MCSAdata['Results'] = G2mth.MPmcsaSearch(nCyc,data,RBdata,reflType,reflData,covData)
Note: See TracChangeset for help on using the changeset viewer.