- Timestamp:
- Jul 12, 2017 3:54:39 PM (6 years ago)
- Location:
- branch/2frame
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branch/2frame/GSASIImath.py
r2927 r2930 4555 4555 4556 4556 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] 4560 4559 4561 4560 sq8ln2 = np.sqrt(8*np.log(2)) … … 4691 4690 x0 = [parmDict[val] for val in varyList] 4692 4691 ifInv = SGData['SGInv'] 4693 # consider replacing anneal with scipy.optimize.basinhopping4694 4692 if MCSA['Algorithm'] == 'Basin Hopping': 4695 4693 import basinhopping as bs 4696 4694 bounds = np.array(zip(lower,upper)) 4697 4695 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, 4700 4698 'args':(refs,rcov,cosTable,ifInv,allFF,RBdata,varyList,parmDict)},callback=MCSAcallback) 4701 4699 mcsaCalc(results['x'],refs,rcov,cosTable,ifInv,allFF,RBdata,varyList,parmDict) -
branch/2frame/GSASIIphsGUI.py
r2927 r2930 985 985 986 986 def SetPhaseWindow(phasePage,mainSizer=None,size=None,Scroll=0): 987 phasePage.SetAutoLayout(True) 987 988 if not mainSizer is None: 988 989 phasePage.SetSizer(mainSizer) … … 993 994 phasePage.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 994 995 phasePage.Scroll(0,Scroll) 996 phasePage.GetTopLevelParent().dataWindow.SetDataSize() 995 997 996 998 def FindBondsDraw(data): … … 1609 1611 cellSizer.Add(wx.StaticText(General,label=txt),0,WACV) 1610 1612 if ifEdit: #a,b,c,etc. 1611 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1612 1613 cellVal = wx.TextCtrl(General,value=(fmt%(cell[Id+1])), 1613 1614 style=wx.TE_PROCESS_ENTER) … … 1885 1886 dlg.Destroy() 1886 1887 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 1898 1889 #patch 1899 1890 if 'cutOff' not in Map: … … 1925 1916 line2Sizer.Add(mapRes,0,WACV) 1926 1917 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.) 1931 1919 line2Sizer.Add(cutOff,0,WACV) 1932 1920 mapSizer.Add(line2Sizer,0,WACV) … … 2122 2110 line3Sizer = wx.BoxSizer(wx.HORIZONTAL) 2123 2111 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) 2137 2122 mcsaSizer.Add(line3Sizer) 2138 2123 return mcsaSizer … … 3712 3697 for txt,fmt,ifEdit,Id in useGUI[2]: 3713 3698 cellSizer.Add(wx.StaticText(layerData,label=txt),0,WACV) 3714 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)3715 3699 cellVal = wx.TextCtrl(layerData,value=(fmt%(cell[Id+1])), 3716 3700 style=wx.TE_PROCESS_ENTER) … … 4116 4100 if Layers['Stacking'][0] == 'recursive': 4117 4101 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)4119 4102 numLayers = wx.TextCtrl(layerData,value=data['Layers']['Stacking'][1],style=wx.TE_PROCESS_ENTER) 4120 4103 numLayers.Bind(wx.EVT_TEXT_ENTER,OnNumLayers) … … 4601 4584 for ival,val in enumerate(wave[0]): 4602 4585 if np.any(CSI[Stype][0][ival]): 4603 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)4604 4586 waveVal = wx.TextCtrl(waveData,value='%.5f'%(val),style=wx.TE_PROCESS_ENTER) 4605 4587 waveVal.Bind(wx.EVT_TEXT_ENTER,OnWaveVal) … … 5787 5769 def RadSizer(): 5788 5770 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): 5797 5772 G2plt.PlotStructure(G2frame,data) 5798 5773 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): 5807 5775 FindBondsDraw(data) 5808 5776 G2plt.PlotStructure(G2frame,data) … … 5810 5778 radSizer = wx.BoxSizer(wx.HORIZONTAL) 5811 5779 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) 5816 5781 radSizer.Add(sizeH,0,WACV) 5817 5782 5818 5783 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) 5823 5785 radSizer.Add(radFactor,0,WACV) 5824 5786 return radSizer … … 5847 5809 G2plt.PlotStructure(G2frame,data) 5848 5810 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): 5857 5812 G2plt.PlotStructure(G2frame,data) 5858 5813 … … 5880 5835 planeSizer2 = wx.BoxSizer(wx.HORIZONTAL) 5881 5836 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) 5887 5838 planeSizer2.Add(phase,0,WACV) 5888 5839 planeSizer2.Add(wx.StaticText(drawOptions,-1,' Plane color: '),0,WACV) … … 5969 5920 textureData[angIndx[Obj.GetId()]][0] = Obj.GetValue() 5970 5921 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): 5990 5923 wx.CallAfter(G2plt.PlotTexture,G2frame,data) 5991 5924 … … 6226 6159 PTSizer.Add(wx.StaticText(Texture,-1,' Inverse pole figure XYZ: '),0,WACV) 6227 6160 PX = textureData['PFxyz'] 6228 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6229 6161 pfVal = wx.TextCtrl(Texture,-1,'%3.1f %3.1f %3.1f'%(PX[0],PX[1],PX[2]),style=wx.TE_PROCESS_ENTER) 6230 6162 pfVal.Bind(wx.EVT_TEXT_ENTER,OnPFValue) … … 6249 6181 mainSizer.Add((0,5),0) 6250 6182 ODFSizer = wx.FlexGridSizer(0,8,2,2) 6251 ODFIndx = {}6252 6183 ODFkeys = textureData['SH Coeff'][1].keys() 6253 6184 ODFkeys.sort() 6254 6185 for item in ODFkeys: 6255 6186 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) 6261 6188 ODFSizer.Add(ODFval,0,WACV) 6262 6189 mainSizer.Add(ODFSizer,0,WACV) … … 6267 6194 angSizer = wx.BoxSizer(wx.HORIZONTAL) 6268 6195 angIndx = {} 6269 valIndx = {}6270 6196 for item in ['Sample omega','Sample chi','Sample phi']: 6271 6197 angRef = wx.CheckBox(Texture,-1,label=item+': ') … … 6274 6200 angRef.Bind(wx.EVT_CHECKBOX, OnAngRef) 6275 6201 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)) 6281 6203 angSizer.Add(angVal,0,WACV|wx.LEFT,5) 6282 6204 mainSizer.Add(angSizer,0,WACV|wx.LEFT,5) … … 6627 6549 def ThermDataSizer(RBObj,rbType): 6628 6550 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): 6639 6552 Cart = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,rbType)[1] 6640 6553 Uout = G2mth.UpdateRBUIJ(Bmat,Cart,RBObj) … … 6664 6577 for i,name in enumerate(names): 6665 6578 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) 6672 6580 thermSizer.Add(thermVal) 6673 6581 Tcheck = wx.CheckBox(RigidBodies,-1,'Refine?') … … 6686 6594 RBObj['Orient'][1] = Qcheck.GetValue() 6687 6595 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) 6704 6603 6705 6604 def OnOrien(event): … … 6737 6636 topSizer.Add(wx.StaticText(RigidBodies,-1,'Origin x,y,z:'),0,WACV) 6738 6637 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) 6744 6639 topSizer.Add(origX,0,WACV) 6745 6640 topSizer.Add((5,0),) … … 6750 6645 topSizer.Add(wx.StaticText(RigidBodies,-1,'Rotation angle, vector:'),0,WACV) 6751 6646 for ix,x in enumerate(Orien): 6752 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6753 6647 orien = wx.TextCtrl(RigidBodies,-1,value='%8.4f'%(x),style=wx.TE_PROCESS_ENTER) 6754 6648 orien.Bind(wx.EVT_TEXT_ENTER,OnOrien) … … 6770 6664 RBObj['Torsions'][item][1] = Obj.GetValue() 6771 6665 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] 6785 6670 data['Drawing']['Atoms'] = [] 6786 6671 UpdateDrawAtoms(atomStyle) … … 6815 6700 for itors,tors in enumerate(RBObj['Torsions']): 6816 6701 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) 6822 6703 torSizer.Add(torsTxt) 6823 6704 torCheck = wx.CheckBox(RigidBodies,-1,'Refine?') … … 7483 7364 model[item][1][ix] = Obj.GetValue() 7484 7365 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): 7494 7367 G2plt.PlotStructure(G2frame,data) 7495 7368 … … 7518 7391 Indx[posRef.GetId()] = [model,'Pos',ix] 7519 7392 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) 7525 7394 atomsizer.Add(posVal,0,WACV) 7526 7395 atomsizer.Add((5,5),0) … … 7592 7461 Indx[posRef.GetId()] = [model,'Pos',ix] 7593 7462 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) 7599 7464 rbsizer1.Add(posVal,0,WACV) 7600 7465 molcent = wx.CheckBox(G2frame.MCSA,-1,label=' Use mol. center? ') … … 7615 7480 Ori = model['Ori'][0] 7616 7481 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)7618 7482 angVal = wx.TextCtrl(G2frame.MCSA,-1,'%.5f'%(Ori[0]),style=wx.TE_PROCESS_ENTER) 7619 7483 angVal.Bind(wx.EVT_TEXT_ENTER,OnOriVal) … … 7663 7527 Indx[torRef.GetId()] = [model,'Tor',it] 7664 7528 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) 7670 7530 rbsizer3.Add(torVal,0,WACV) 7671 7531 rbsizer3.Add(wx.StaticText(G2frame.MCSA,-1,' Range: '),0,WACV) … … 7780 7640 else: 7781 7641 resultsGrid.SetCellStyle(r,c,VERY_LIGHT_GREY,True) 7782 resultsSizer.Add(resultsGrid )7642 resultsSizer.Add(resultsGrid,0,wx.EXPAND) 7783 7643 return resultsSizer 7784 7644 … … 7830 7690 mainSizer.Add((5,5),0) 7831 7691 Results = data['MCSA']['Results'] 7832 mainSizer.Add(ResultsSizer(Results) )7692 mainSizer.Add(ResultsSizer(Results),0,wx.EXPAND) 7833 7693 7834 7694 SetPhaseWindow(G2frame.MCSA,mainSizer) -
branch/2frame/basinhopping.py
r2927 r2930 365 365 number of iterations. 366 366 367 368 367 Returns 369 368 ------- -
branch/2frame/config_example.py
r2927 r2930 133 133 ''' 134 134 135 Main_Pos = (100,100)135 Main_Pos = '(100,100)' 136 136 '''Main window location - will be updated & saved when user moves 137 137 it. If position is outside screen then it will be repositioned to default 138 138 ''' 139 Plot_Pos = (200,200)139 Plot_Pos = '(200,200)' 140 140 '''Plot window location - will be updated & saved when user moves it 141 141 these widows. If position is outside screen then it will be repositioned to default
Note: See TracChangeset
for help on using the changeset viewer.