Changeset 2930 for branch


Ignore:
Timestamp:
Jul 12, 2017 3:54:39 PM (4 years ago)
Author:
vondreele
Message:

tweaks of basinhopping
replace more TextCtrl? with ValidatedTxtCtrl? in phaseGUI

Location:
branch/2frame
Files:
4 edited

Legend:

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

    r2927 r2930  
    45554555   
    45564556    def MCSAcallback(x, f, fmin,accept):
    4557         return not pgbar.Update(min(100.,fmin*1000),
    4558             newmsg='%s%8.4f%s'%('MC/SA Residual:',fmin*1000,'%'))[0]
    4559            
     4557        return not pgbar.Update(min(100.,fmin*100),
     4558            newmsg='%s%8.4f%s'%('MC/SA Residual:',fmin*100,'%'))[0]
    45604559
    45614560    sq8ln2 = np.sqrt(8*np.log(2))
     
    46914690    x0 = [parmDict[val] for val in varyList]
    46924691    ifInv = SGData['SGInv']
    4693     # consider replacing anneal with scipy.optimize.basinhopping
    46944692    if MCSA['Algorithm'] == 'Basin Hopping':
    46954693        import basinhopping as bs
    46964694        bounds = np.array(zip(lower,upper))
    46974695        take_step = RandomDisplacementBounds(np.array(lower), np.array(upper))
    4698         results = bs.basinhopping(mcsaCalc,x0,take_step=take_step,disp=True,T=MCSA['Annealing'][0],stepsize=0.1,
    4699                 interval=20,niter=MCSA['Annealing'][2],minimizer_kwargs={'method':'L-BFGS-B','bounds':bounds,
     4696        results = bs.basinhopping(mcsaCalc,x0,take_step=take_step,disp=True,T=MCSA['Annealing'][0],
     4697                interval=MCSA['Annealing'][2]/5,niter=MCSA['Annealing'][2],minimizer_kwargs={'method':'L-BFGS-B','bounds':bounds,
    47004698                'args':(refs,rcov,cosTable,ifInv,allFF,RBdata,varyList,parmDict)},callback=MCSAcallback)
    47014699        mcsaCalc(results['x'],refs,rcov,cosTable,ifInv,allFF,RBdata,varyList,parmDict)
  • branch/2frame/GSASIIphsGUI.py

    r2927 r2930  
    985985   
    986986def SetPhaseWindow(phasePage,mainSizer=None,size=None,Scroll=0):
     987    phasePage.SetAutoLayout(True)
    987988    if not mainSizer is None:
    988989        phasePage.SetSizer(mainSizer)
     
    993994    phasePage.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1)
    994995    phasePage.Scroll(0,Scroll)
     996    phasePage.GetTopLevelParent().dataWindow.SetDataSize()
    995997   
    996998def FindBondsDraw(data):   
     
    16091611                cellSizer.Add(wx.StaticText(General,label=txt),0,WACV)
    16101612                if ifEdit:          #a,b,c,etc.
    1611 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    16121613                    cellVal = wx.TextCtrl(General,value=(fmt%(cell[Id+1])),
    16131614                        style=wx.TE_PROCESS_ENTER)
     
    18851886                    dlg.Destroy()
    18861887                wx.CallAfter(UpdateGeneral,General.GetScrollPos(wx.VERTICAL))               
    1887                
    1888             def OnCutOff(event):
    1889                 event.Skip()
    1890                 try:
    1891                     res = float(cutOff.GetValue())
    1892                     if 1.0 <= res <= 100.:
    1893                         Map['cutOff'] = res
    1894                 except ValueError:
    1895                     pass
    1896                 cutOff.SetValue("%.1f"%(Map['cutOff']))          #reset in case of error
    1897            
     1888                           
    18981889            #patch
    18991890            if 'cutOff' not in Map:
     
    19251916            line2Sizer.Add(mapRes,0,WACV)
    19261917            line2Sizer.Add(wx.StaticText(General,label=' Peak cutoff %: '),0,WACV)
    1927 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    1928             cutOff =  wx.TextCtrl(General,value='%.1f'%(Map['cutOff']),style=wx.TE_PROCESS_ENTER)
    1929             cutOff.Bind(wx.EVT_TEXT_ENTER,OnCutOff)       
    1930             cutOff.Bind(wx.EVT_KILL_FOCUS,OnCutOff)
     1918            cutOff = G2G.ValidatedTxtCtrl(General,Map,'cutOff',nDig=(10,1),min=1.0,max=100.)
    19311919            line2Sizer.Add(cutOff,0,WACV)
    19321920            mapSizer.Add(line2Sizer,0,WACV)
     
    21222110            line3Sizer = wx.BoxSizer(wx.HORIZONTAL)
    21232111            line3Sizer.Add(wx.StaticText(General,label=' Annealing schedule: '),0,WACV)
    2124             names = [' Start temp: ',' Final temp: ',' No. trials: ']
    2125             fmts = ['%.1f','%.5f','%d']
    2126             for i,[name,fmt] in enumerate(zip(names,fmts)):
    2127                 if MCSAdata['Annealing'][i]:
    2128                     text = fmt%(MCSAdata['Annealing'][i])
    2129                 else:
    2130                     text = 'None'
    2131                 line3Sizer.Add(wx.StaticText(General,label=name),0,WACV)
    2132                 anneal =  wx.TextCtrl(General,-1,value=text,style=wx.TE_PROCESS_ENTER)
    2133                 anneal.Bind(wx.EVT_TEXT_ENTER,OnAnneal)       
    2134                 anneal.Bind(wx.EVT_KILL_FOCUS,OnAnneal)
    2135                 Indx[anneal.GetId()] = [i,fmt]
    2136                 line3Sizer.Add(anneal,0,WACV)
     2112            if 'Basin Hopping' in MCSAdata['Algorithm']:
     2113                line3Sizer.Add(wx.StaticText(General,label=' Test temp: '),0,WACV)
     2114                line3Sizer.Add(G2G.ValidatedTxtCtrl(General,MCSAdata['Annealing'],0,nDig=(10,5)),0,WACV)               
     2115            else:
     2116                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(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(wx.StaticText(General,label=' No. trials: '),0,WACV)
     2121            line3Sizer.Add(G2G.ValidatedTxtCtrl(General,MCSAdata['Annealing'],2),0,WACV)
    21372122            mcsaSizer.Add(line3Sizer)           
    21382123            return mcsaSizer
     
    37123697            for txt,fmt,ifEdit,Id in useGUI[2]:
    37133698                cellSizer.Add(wx.StaticText(layerData,label=txt),0,WACV)
    3714 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    37153699                cellVal = wx.TextCtrl(layerData,value=(fmt%(cell[Id+1])),
    37163700                    style=wx.TE_PROCESS_ENTER)
     
    41164100            if Layers['Stacking'][0] == 'recursive':
    41174101                topLine.Add(wx.StaticText(layerData,label=' number of layers (<1022 or "infinite"): '),0,WACV)
    4118 #        numLayers = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    41194102                numLayers = wx.TextCtrl(layerData,value=data['Layers']['Stacking'][1],style=wx.TE_PROCESS_ENTER)
    41204103                numLayers.Bind(wx.EVT_TEXT_ENTER,OnNumLayers)       
     
    46014584                        for ival,val in enumerate(wave[0]):
    46024585                            if np.any(CSI[Stype][0][ival]):
    4603 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    46044586                                waveVal = wx.TextCtrl(waveData,value='%.5f'%(val),style=wx.TE_PROCESS_ENTER)
    46054587                                waveVal.Bind(wx.EVT_TEXT_ENTER,OnWaveVal)
     
    57875769        def RadSizer():
    57885770           
    5789             def OnSizeHatoms(event):
    5790                 event.Skip()
    5791                 try:
    5792                     value = max(0.1,min(1.2,float(sizeH.GetValue())))
    5793                 except ValueError:
    5794                     value = 0.5
    5795                 drawingData['sizeH'] = value
    5796                 sizeH.SetValue("%.2f"%(value))
     5771            def OnSizeHatoms(invalid,value,tc):
    57975772                G2plt.PlotStructure(G2frame,data)
    57985773               
    5799             def OnRadFactor(event):
    5800                 event.Skip()
    5801                 try:
    5802                     value = max(0.1,min(1.2,float(radFactor.GetValue())))
    5803                 except ValueError:
    5804                     value = 0.85
    5805                 drawingData['radiusFactor'] = value
    5806                 radFactor.SetValue("%.2f"%(value))
     5774            def OnRadFactor(invalid,value,tc):
    58075775                FindBondsDraw(data)
    58085776                G2plt.PlotStructure(G2frame,data)
     
    58105778            radSizer = wx.BoxSizer(wx.HORIZONTAL)
    58115779            radSizer.Add(wx.StaticText(drawOptions,-1,' Hydrogen radius, A:  '),0,WACV)
    5812 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    5813             sizeH = wx.TextCtrl(drawOptions,-1,value='%.2f'%(drawingData['sizeH']),size=wx.Size(60,20),style=wx.TE_PROCESS_ENTER)
    5814             sizeH.Bind(wx.EVT_TEXT_ENTER,OnSizeHatoms)
    5815             sizeH.Bind(wx.EVT_KILL_FOCUS,OnSizeHatoms)
     5780            sizeH = G2G.ValidatedTxtCtrl(drawOptions,drawingData,'sizeH',nDig=(10,2),min=0.1,max=1.2,size=wx.Size(60,20),OnLeave=OnSizeHatoms)
    58165781            radSizer.Add(sizeH,0,WACV)
    58175782   
    58185783            radSizer.Add(wx.StaticText(drawOptions,-1,' Bond search factor:  '),0,WACV)
    5819 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    5820             radFactor = wx.TextCtrl(drawOptions,value='%.2f'%(drawingData['radiusFactor']),size=wx.Size(60,20),style=wx.TE_PROCESS_ENTER)
    5821             radFactor.Bind(wx.EVT_TEXT_ENTER,OnRadFactor)
    5822             radFactor.Bind(wx.EVT_KILL_FOCUS,OnRadFactor)
     5784            radFactor = G2G.ValidatedTxtCtrl(drawOptions,drawingData,'radiusFactor',nDig=(10,2),min=0.1,max=1.2,size=wx.Size(60,20),OnLeave=OnRadFactor)
    58235785            radSizer.Add(radFactor,0,WACV)
    58245786            return radSizer
     
    58475809                G2plt.PlotStructure(G2frame,data)
    58485810               
    5849             def OnPhase(event):
    5850                 event.Skip()
    5851                 try:
    5852                     val = float(phase.GetValue())
    5853                 except ValueError:
    5854                     val = drawingData['Plane'][3]
    5855                 drawingData['Plane'][3] = val
    5856                 phase.SetValue('%.2f'%(val))
     5811            def OnPhase(invalid,value,tc):
    58575812                G2plt.PlotStructure(G2frame,data)
    58585813           
     
    58805835            planeSizer2 = wx.BoxSizer(wx.HORIZONTAL)
    58815836            planeSizer2.Add(wx.StaticText(drawOptions,label=' Phase shift (deg): '),0,WACV)
    5882 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    5883             phase = wx.TextCtrl(drawOptions,value='%.2f'%(drawingData['Plane'][3]),
    5884                 style=wx.TE_PROCESS_ENTER)
    5885             phase.Bind(wx.EVT_TEXT_ENTER,OnPhase)
    5886             phase.Bind(wx.EVT_KILL_FOCUS,OnPhase)
     5837            phase = G2G.ValidatedTxtCtrl(drawOptions,drawingData['Plane'],3,nDig=(10,2),OnLeave=OnPhase)
    58875838            planeSizer2.Add(phase,0,WACV)
    58885839            planeSizer2.Add(wx.StaticText(drawOptions,-1,' Plane color: '),0,WACV)
     
    59695920            textureData[angIndx[Obj.GetId()]][0] = Obj.GetValue()
    59705921           
    5971         def OnAngValue(event):
    5972             event.Skip()
    5973             Obj = event.GetEventObject()
    5974             try:
    5975                 value =  float(Obj.GetValue())
    5976             except ValueError:
    5977                 value = textureData[valIndx[Obj.GetId()]][1]
    5978             Obj.SetValue('%8.2f'%(value))
    5979             textureData[valIndx[Obj.GetId()]][1] = value
    5980            
    5981         def OnODFValue(event):
    5982             event.Skip()
    5983             Obj = event.GetEventObject()
    5984             try:
    5985                 value =  float(Obj.GetValue())
    5986             except ValueError:
    5987                 value = textureData['SH Coeff'][1][ODFIndx[Obj.GetId()]]
    5988             Obj.SetValue('%8.3f'%(value))
    5989             textureData['SH Coeff'][1][ODFIndx[Obj.GetId()]] = value
     5922        def OnODFValue(invalid,value,tc):
    59905923            wx.CallAfter(G2plt.PlotTexture,G2frame,data)
    59915924           
     
    62266159            PTSizer.Add(wx.StaticText(Texture,-1,' Inverse pole figure XYZ: '),0,WACV)
    62276160            PX = textureData['PFxyz']
    6228 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    62296161            pfVal = wx.TextCtrl(Texture,-1,'%3.1f %3.1f %3.1f'%(PX[0],PX[1],PX[2]),style=wx.TE_PROCESS_ENTER)
    62306162        pfVal.Bind(wx.EVT_TEXT_ENTER,OnPFValue)
     
    62496181            mainSizer.Add((0,5),0)
    62506182            ODFSizer = wx.FlexGridSizer(0,8,2,2)
    6251             ODFIndx = {}
    62526183            ODFkeys = textureData['SH Coeff'][1].keys()
    62536184            ODFkeys.sort()
    62546185            for item in ODFkeys:
    62556186                ODFSizer.Add(wx.StaticText(Texture,-1,item),0,WACV)
    6256 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    6257                 ODFval = wx.TextCtrl(Texture,wx.ID_ANY,'%8.3f'%(textureData['SH Coeff'][1][item]),style=wx.TE_PROCESS_ENTER)
    6258                 ODFIndx[ODFval.GetId()] = item
    6259                 ODFval.Bind(wx.EVT_TEXT_ENTER,OnODFValue)
    6260                 ODFval.Bind(wx.EVT_KILL_FOCUS,OnODFValue)
     6187                ODFval = G2G.ValidatedTxtCtrl(Texture,textureData['SH Coeff'][1],item,nDig=(8,3),OnLeave=OnODFValue)
    62616188                ODFSizer.Add(ODFval,0,WACV)
    62626189            mainSizer.Add(ODFSizer,0,WACV)
     
    62676194        angSizer = wx.BoxSizer(wx.HORIZONTAL)
    62686195        angIndx = {}
    6269         valIndx = {}
    62706196        for item in ['Sample omega','Sample chi','Sample phi']:
    62716197            angRef = wx.CheckBox(Texture,-1,label=item+': ')
     
    62746200            angRef.Bind(wx.EVT_CHECKBOX, OnAngRef)
    62756201            angSizer.Add(angRef,0,WACV)
    6276 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    6277             angVal = wx.TextCtrl(Texture,wx.ID_ANY,'%8.2f'%(textureData[item][1]),style=wx.TE_PROCESS_ENTER)
    6278             valIndx[angVal.GetId()] = item
    6279             angVal.Bind(wx.EVT_TEXT_ENTER,OnAngValue)
    6280             angVal.Bind(wx.EVT_KILL_FOCUS,OnAngValue)
     6202            angVal = G2G.ValidatedTxtCtrl(Texture,textureData[item],1,nDig=(8,2))
    62816203            angSizer.Add(angVal,0,WACV|wx.LEFT,5)
    62826204        mainSizer.Add(angSizer,0,WACV|wx.LEFT,5)
     
    66276549        def ThermDataSizer(RBObj,rbType):
    66286550           
    6629             def OnThermval(event):
    6630                 event.Skip()
    6631                 Obj = event.GetEventObject()
    6632                 item = Indx[Obj.GetId()]
    6633                 try:
    6634                     val = float(Obj.GetValue())
    6635                     RBObj['ThermalMotion'][1][item] = val
    6636                 except ValueError:
    6637                     pass
    6638                 Obj.SetValue('%8.4f'%(RBObj['ThermalMotion'][1][item]))
     6551            def OnThermval(invalid,value,tc):
    66396552                Cart = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,rbType)[1]
    66406553                Uout = G2mth.UpdateRBUIJ(Bmat,Cart,RBObj)
     
    66646577            for i,name in enumerate(names):
    66656578                thermSizer.Add(wx.StaticText(RigidBodies,-1,name+': '),0,WACV)
    6666 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    6667                 thermVal = wx.TextCtrl(RigidBodies,-1,value='%8.4f'%(model[1][i]),
    6668                     style=wx.TE_PROCESS_ENTER)
    6669                 thermVal.Bind(wx.EVT_TEXT_ENTER,OnThermval)
    6670                 thermVal.Bind(wx.EVT_KILL_FOCUS,OnThermval)
    6671                 Indx[thermVal.GetId()] = i
     6579                thermVal = G2G.ValidatedTxtCtrl(RigidBodies,model[1],i,nDig=(8,4),OnLeave=OnThermval)
    66726580                thermSizer.Add(thermVal)
    66736581                Tcheck = wx.CheckBox(RigidBodies,-1,'Refine?')
     
    66866594                RBObj['Orient'][1] = Qcheck.GetValue()
    66876595               
    6688             def OnOrigX(event):
    6689                 event.Skip()
    6690                 Obj = event.GetEventObject()
    6691                 item = Indx[Obj.GetId()]
    6692                 try:
    6693                     val = float(Obj.GetValue())
    6694                     RBObj['Orig'][0][item] = val
    6695                     Obj.SetValue('%8.5f'%(val))
    6696                     newXYZ = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,rbType)[0]
    6697                     for i,id in enumerate(RBObj['Ids']):
    6698                         data['Atoms'][AtLookUp[id]][cx:cx+3] = newXYZ[i]
    6699                     data['Drawing']['Atoms'] = []
    6700                     UpdateDrawAtoms(atomStyle)
    6701                     G2plt.PlotStructure(G2frame,data)
    6702                 except ValueError:
    6703                     pass
     6596            def OnOrigX(invalid,value,tc):
     6597                newXYZ = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,rbType)[0]
     6598                for i,id in enumerate(RBObj['Ids']):
     6599                    data['Atoms'][AtLookUp[id]][cx:cx+3] = newXYZ[i]
     6600                data['Drawing']['Atoms'] = []
     6601                UpdateDrawAtoms(atomStyle)
     6602                G2plt.PlotStructure(G2frame,data)
    67046603               
    67056604            def OnOrien(event):
     
    67376636            topSizer.Add(wx.StaticText(RigidBodies,-1,'Origin x,y,z:'),0,WACV)
    67386637            for ix,x in enumerate(Orig):
    6739 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    6740                 origX = wx.TextCtrl(RigidBodies,-1,value='%8.5f'%(x),style=wx.TE_PROCESS_ENTER)
    6741                 origX.Bind(wx.EVT_TEXT_ENTER,OnOrigX)
    6742                 origX.Bind(wx.EVT_KILL_FOCUS,OnOrigX)
    6743                 Indx[origX.GetId()] = ix
     6638                origX = G2G.ValidatedTxtCtrl(RigidBodies,Orig,ix,nDig=(8,5),OnLeave=OnOrigX)
    67446639                topSizer.Add(origX,0,WACV)
    67456640            topSizer.Add((5,0),)
     
    67506645            topSizer.Add(wx.StaticText(RigidBodies,-1,'Rotation angle, vector:'),0,WACV)
    67516646            for ix,x in enumerate(Orien):
    6752 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    67536647                orien = wx.TextCtrl(RigidBodies,-1,value='%8.4f'%(x),style=wx.TE_PROCESS_ENTER)
    67546648                orien.Bind(wx.EVT_TEXT_ENTER,OnOrien)
     
    67706664                RBObj['Torsions'][item][1] = Obj.GetValue()               
    67716665               
    6772             def OnTorsion(event):
    6773                 event.Skip()
    6774                 Obj = event.GetEventObject()
    6775                 item = Indx[Obj.GetId()]
    6776                 try:
    6777                     val = float(Obj.GetValue())
    6778                     RBObj['Torsions'][item][0] = val
    6779                     newXYZ = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,'Residue')[0]
    6780                     for i,id in enumerate(RBObj['Ids']):
    6781                         data['Atoms'][AtLookUp[id]][cx:cx+3] = newXYZ[i]
    6782                 except ValueError:
    6783                     pass
    6784                 Obj.SetValue("%10.3f"%(RBObj['Torsions'][item][0]))               
     6666            def OnTorsion(invalid,value,tc):
     6667                newXYZ = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,'Residue')[0]
     6668                for i,id in enumerate(RBObj['Ids']):
     6669                    data['Atoms'][AtLookUp[id]][cx:cx+3] = newXYZ[i]
    67856670                data['Drawing']['Atoms'] = []
    67866671                UpdateDrawAtoms(atomStyle)
     
    68156700            for itors,tors in enumerate(RBObj['Torsions']):
    68166701                torSizer.Add(wx.StaticText(RigidBodies,-1,'Torsion '+'%d'%(itors)),0,WACV)
    6817 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    6818                 torsTxt = wx.TextCtrl(RigidBodies,-1,value='%.3f'%(tors[0]),style=wx.TE_PROCESS_ENTER)
    6819                 torsTxt.Bind(wx.EVT_TEXT_ENTER,OnTorsion)
    6820                 torsTxt.Bind(wx.EVT_KILL_FOCUS,OnTorsion)
    6821                 Indx[torsTxt.GetId()] = itors
     6702                torsTxt = G2G.ValidatedTxtCtrl(RigidBodies,RBObj['Torsions'][tors],0,nDig=(10,3),OnLeave=OnTorsion)
    68226703                torSizer.Add(torsTxt)
    68236704                torCheck = wx.CheckBox(RigidBodies,-1,'Refine?')
     
    74837364            model[item][1][ix] = Obj.GetValue()
    74847365           
    7485         def OnPosVal(event):
    7486             event.Skip()
    7487             Obj = event.GetEventObject()
    7488             model,item,ix = Indx[Obj.GetId()]
    7489             try:
    7490                 model[item][0][ix] = float(Obj.GetValue())
    7491             except ValueError:
    7492                 pass
    7493             Obj.SetValue("%.4f"%(model[item][0][ix]))
     7366        def OnPosVal(invalid,value,tc):
    74947367            G2plt.PlotStructure(G2frame,data)
    74957368           
     
    75187391                Indx[posRef.GetId()] = [model,'Pos',ix]
    75197392                atomsizer.Add(posRef,0,WACV)
    7520 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    7521                 posVal = wx.TextCtrl(G2frame.MCSA,-1,'%.4f'%(model['Pos'][0][ix]),style=wx.TE_PROCESS_ENTER)
    7522                 posVal.Bind(wx.EVT_TEXT_ENTER,OnPosVal)
    7523                 posVal.Bind(wx.EVT_KILL_FOCUS,OnPosVal)
    7524                 Indx[posVal.GetId()] = [model,'Pos',ix]
     7393                posVal = G2G.ValidatedTxtCtrl(G2frame.MCSA,model['Pos'][0],ix,nDig=(10,4),OnLeave=OnPosVal)
    75257394                atomsizer.Add(posVal,0,WACV)
    75267395            atomsizer.Add((5,5),0)
     
    75927461                Indx[posRef.GetId()] = [model,'Pos',ix]
    75937462                rbsizer1.Add(posRef,0,WACV)
    7594 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    7595                 posVal = wx.TextCtrl(G2frame.MCSA,-1,'%.4f'%(model['Pos'][0][ix]),style=wx.TE_PROCESS_ENTER)
    7596                 posVal.Bind(wx.EVT_TEXT_ENTER,OnPosVal)
    7597                 posVal.Bind(wx.EVT_KILL_FOCUS,OnPosVal)
    7598                 Indx[posVal.GetId()] = [model,'Pos',ix]
     7463                posVal = G2G.ValidatedTxtCtrl(G2frame.MCSA,model['Pos'][0],ix,nDig=(10,4),OnLeave=OnPosVal)
    75997464                rbsizer1.Add(posVal,0,WACV)
    76007465            molcent = wx.CheckBox(G2frame.MCSA,-1,label=' Use mol. center? ')
     
    76157480            Ori = model['Ori'][0]
    76167481            rbsizer2.Add(wx.StaticText(G2frame.MCSA,-1,'Oa: '),0,WACV)
    7617 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    76187482            angVal = wx.TextCtrl(G2frame.MCSA,-1,'%.5f'%(Ori[0]),style=wx.TE_PROCESS_ENTER)
    76197483            angVal.Bind(wx.EVT_TEXT_ENTER,OnOriVal)
     
    76637527                    Indx[torRef.GetId()] = [model,'Tor',it]
    76647528                    rbsizer3.Add(torRef,0,WACV)
    7665 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    7666                     torVal = wx.TextCtrl(G2frame.MCSA,-1,'%.4f'%(tor),style=wx.TE_PROCESS_ENTER)
    7667                     torVal.Bind(wx.EVT_TEXT_ENTER,OnPosVal)
    7668                     torVal.Bind(wx.EVT_KILL_FOCUS,OnPosVal)
    7669                     Indx[torVal.GetId()] = [model,'Tor',it]
     7529                    torVal = G2G.ValidatedTxtCtrl(G2frame.MCSA,model['Tor'][0],it,nDig=(10,4),OnLeave=OnPosVal)
    76707530                    rbsizer3.Add(torVal,0,WACV)
    76717531                    rbsizer3.Add(wx.StaticText(G2frame.MCSA,-1,' Range: '),0,WACV)
     
    77807640                    else:
    77817641                        resultsGrid.SetCellStyle(r,c,VERY_LIGHT_GREY,True)
    7782             resultsSizer.Add(resultsGrid)
     7642            resultsSizer.Add(resultsGrid,0,wx.EXPAND)
    77837643            return resultsSizer
    77847644       
     
    78307690            mainSizer.Add((5,5),0)
    78317691            Results = data['MCSA']['Results']
    7832             mainSizer.Add(ResultsSizer(Results))
     7692            mainSizer.Add(ResultsSizer(Results),0,wx.EXPAND)
    78337693           
    78347694        SetPhaseWindow(G2frame.MCSA,mainSizer)
  • branch/2frame/basinhopping.py

    r2927 r2930  
    365365        number of iterations.
    366366
    367 
    368367    Returns
    369368    -------
  • branch/2frame/config_example.py

    r2927 r2930  
    133133'''
    134134
    135 Main_Pos = (100,100)
     135Main_Pos = '(100,100)'
    136136'''Main window location - will be updated & saved when user moves
    137137it. If position is outside screen then it will be repositioned to default
    138138'''
    139 Plot_Pos = (200,200)
     139Plot_Pos = '(200,200)'
    140140'''Plot window location - will be updated & saved when user moves it
    141141these widows. If position is outside screen then it will be repositioned to default
Note: See TracChangeset for help on using the changeset viewer.