Changeset 3990 for trunk/GSASIIphsGUI.py
- Timestamp:
- May 22, 2019 2:04:11 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/GSASIIphsGUI.py ¶
r3982 r3990 40 40 import sys 41 41 import random as ran 42 import subprocess as subp 42 43 import GSASIIpath 43 44 GSASIIpath.SetVersionNumber("$Revision$") … … 2186 2187 2187 2188 def OnDysnomia(event): 2188 generalData['doDysnomia'] = not generalData['doDysnomia']2189 data['General']['doDysnomia'] = not data['General']['doDysnomia'] 2189 2190 pages = [G2frame.phaseDisplay.GetPageText(PageNum) for PageNum in range(G2frame.phaseDisplay.GetPageCount())] 2190 2191 if generalData['doDysnomia']: 2191 2192 if 'Dysnomia' not in pages: 2192 2193 G2frame.MEMData = wx.ScrolledWindow(G2frame.phaseDisplay) 2194 G2frame.Bind(wx.EVT_MENU, OnLoadDysnomia, id=G2G.wxID_LOADDYSNOMIA) 2195 G2frame.Bind(wx.EVT_MENU, OnSaveDysnomia, id=G2G.wxID_SAVEDYSNOMIA) 2196 G2frame.Bind(wx.EVT_MENU, OnRunDysnomia, id=G2G.wxID_RUNDYSNOMIA) 2193 2197 G2frame.phaseDisplay.InsertPage(7,G2frame.MEMData,'Dysnomia') 2194 2198 Id = wx.NewId() 2195 2199 TabSelectionIdDict[Id] = 'Dysnomia' 2200 2201 2196 2202 if 'Dysnomia' not in data: #set defaults here 2197 2203 data['Dysnomia'] = {'DenStart':'uniform','Optimize':'ZSPA','Lagrange':['user',0.001,0.05], 2198 'wt pwr':0,'E_factor':1.,'Ncyc':5000,'prior':'uniform','Lam frac':[1,0,0,0,0,0,0,0]} 2204 'wt pwr':0,'E_factor':1.,'Ncyc':5000,'prior':'uniform','Lam frac':[1,0,0,0,0,0,0,0], 2205 'overlap':1.0} 2199 2206 else: 2200 2207 if 'Dysnomia' in pages: … … 4125 4132 ''' Present the controls for running Dysnomia 4126 4133 ''' 4127 #data['Dys onmia'] = {'DenStart':'uniform','Optimize':'ZSPA','Lagrange':['user',0.001,0.05],4134 #data['Dysnomia'] = {'DenStart':'uniform','Optimize':'ZSPA','Lagrange':['user',0.001,0.05], 4128 4135 # 'wt pwr':0,'E_factor':1.,'Ncyc':5000,'prior':'uniform','Lam frac':[1,0,0,0,0,0,0,0]} 4129 4136 def OnOptMeth(event): … … 4145 4152 MEMData.GetSizer().Clear(True) 4146 4153 DysData = data['Dysnomia'] 4154 if 'overlap' not in DysData: 4155 DysData['overlap'] = 1.0 4147 4156 mainSizer = wx.BoxSizer(wx.VERTICAL) 4148 4157 mainSizer.Add(wx.StaticText(MEMData,label=' Maximum Entropy Method (Dysnomia) controls:')) … … 4153 4162 OptMeth.Bind(wx.EVT_COMBOBOX,OnOptMeth) 4154 4163 lineSizer.Add(OptMeth,0,WACV) 4164 lineSizer.Add(wx.StaticText(MEMData,label=' Peak overlap factor'),0,WACV) 4165 overlap = G2G.ValidatedTxtCtrl(MEMData,DysData,'overlap',nDig=(10,4),min=0.1,max=1.) 4166 lineSizer.Add(overlap,0,WACV) 4155 4167 mainSizer.Add(lineSizer) 4156 4168 if DysData['Optimize'] == 'ZSPA': … … 4206 4218 def OnRunDysnomia(event): 4207 4219 4208 4220 #data['Dysnomia'] = {'DenStart':'uniform','Optimize':'ZSPA','Lagrange':['user',0.001,0.05], 4221 # 'wt pwr':0,'E_factor':1.,'Ncyc':5000,'prior':'uniform','Lam frac':[1,0,0,0,0,0,0,0]} 4222 4209 4223 generalData = data['General'] 4210 4224 Map = generalData['Map'] 4211 Phase = generalData['Name'].replace(' ','_') 4212 DysData = data['Dysnomia'] 4213 prf = open(Phase+'.prf','w') 4214 prf.write(Phase+'.mem\n') #or .fos? 4215 prf.write(Phase+'.out\n') 4216 prf.write(Phase+'.pgrid\n') 4217 prf.write(Phase+'.fba\n') 4218 prf.write(Phase+'_eps.raw\n') 4219 4220 4221 4222 4223 prf.close() 4225 UseList = Map['RefList'] 4226 pId = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,UseList[0]) #only use 1st histogram 4227 reflSets = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(G2frame,pId,'Reflection Lists')) 4228 reflData = reflSets[generalData['Name']]['RefList'] 4229 Type = Map['Type'] 4230 MEMtype = 0 4231 if 'N' in Type: 4232 for el in generalData['Isotope']: 4233 isotope = generalData['Isotope'][el] 4234 if generalData['Isotopes'][el][isotope]['SL'][0] < 0.: 4235 MEMtype = 1 4236 prfName = str(G2pwd.makePRFfile(data,MEMtype)) 4237 if not G2pwd.makeMEMfile(data,reflData,MEMtype): 4238 print('non standard space groupsnot permitted in Dysnomia') 4239 return 4224 4240 4225 4241 wx.MessageBox(''' For use of Dysnomia, please cite: … … 4228 4244 K. Moma, T. Ikeda, A.A. Belik & F. Izumi, Powder Diffr. 2013, 28, 184-193. 4229 4245 doi:10.1017/S088571561300002X''',caption='Dysnomia (MEM)',style=wx.ICON_INFORMATION) 4246 4247 path2GSAS2 = os.path.dirname(os.path.abspath(os.path.expanduser(__file__))) 4248 DYSNOMIA = os.path.join(path2GSAS2,'Dysnomia','Dysnomia64.exe') 4249 print('Run '+DYSNOMIA) 4250 4251 subp.call([DYSNOMIA,prfName]) 4230 4252 4231 4253 … … 9629 9651 wx.CallAfter(G2plt.PlotStructure,G2frame,data,firstCall=True) 9630 9652 elif text == 'Dysnomia': 9631 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.MEM Data)9653 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.MEMMenu) 9632 9654 UpdateDysnomia() 9633 9655 elif text == 'Draw Options': … … 9719 9741 # Dysnomia (MEM) 9720 9742 if data['General']['doDysnomia']: 9721 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.MEM Data)9743 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.MEMMenu) 9722 9744 G2frame.Bind(wx.EVT_MENU, OnLoadDysnomia, id=G2G.wxID_LOADDYSNOMIA) 9723 9745 G2frame.Bind(wx.EVT_MENU, OnSaveDysnomia, id=G2G.wxID_SAVEDYSNOMIA) … … 9858 9880 G2frame.phaseDisplay.AddPage(MapPeaks,'Map peaks') 9859 9881 if data['General']['doDysnomia']: 9860 G2frame. Dysnomia = wx.ScrolledWindow(G2frame.phaseDisplay)9861 G2frame.phaseDisplay.AddPage(G2frame. Dysnomia,'Dysnomia')9882 G2frame.MEMData = wx.ScrolledWindow(G2frame.phaseDisplay) 9883 G2frame.phaseDisplay.AddPage(G2frame.MEMData,'Dysnomia') 9862 9884 Pages.append('Dysnomia') 9863 9885 Pages.append('Map peaks')
Note: See TracChangeset
for help on using the changeset viewer.