Changeset 4200
- Timestamp:
- Dec 13, 2019 8:37:00 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:global-ignores
-
old new 1 1 CifFile 2 2 binwin2.7 3 pdbparser 4 pdbparser - Copy
-
- Property svn:ignore
-
old new 3 3 basinhopping.py 4 4 binwin2.7 5 binwin2.7 5 pdbparser
-
- Property svn:global-ignores
-
trunk/GSASIIdataGUI.py
r4198 r4200 5717 5717 5718 5718 #Phase / fullrmc & RMCprofile (Reverse Monte Carlo method) tab 5719 G2G.Define_wxId('wxID_SETUPRMC','wxID_LOADRMC','wxID_SAVERMC','wxID_RUNRMC', )5719 G2G.Define_wxId('wxID_SETUPRMC','wxID_LOADRMC','wxID_SAVERMC','wxID_RUNRMC','wxID_VIEWRMC' ) 5720 5720 self.FRMCMenu = wx.MenuBar() 5721 5721 self.PrefillDataMenu(self.FRMCMenu) … … 5727 5727 self.FRMCDataEdit.Append(G2G.wxID_SAVERMC,'Save','Save fullrmc or RMCprofile file') 5728 5728 self.FRMCDataEdit.Append(G2G.wxID_RUNRMC,'Execute','Run fullrmc or RMCprofile file') 5729 self.FRMCDataEdit.Append(G2G.wxID_VIEWRMC,'View','View fullrmc or RMCprofile results') 5729 5730 self.PostfillDataMenu() 5730 5731 -
trunk/GSASIIphsGUI.py
r4196 r4200 1095 1095 self.Phase = Phase 1096 1096 self.SuperCell = [1,1,1] 1097 self.UseSampBrd = [True,True] 1097 1098 self.aTypes = self.Phase['General']['AtomTypes'] 1098 1099 self.atSeq = self.aTypes[:] … … 1116 1117 self.atSeq = G2lat.SwapItems(self.atSeq,itype,tid) 1117 1118 wx.CallAfter(self.Draw) 1119 1120 def OnSize(event): 1121 self.UseSampBrd[0] = samSize.GetValue() 1122 1123 def OnStrain(event): 1124 self.UseSampBrd[1] = strain.GetValue() 1118 1125 1119 1126 self.panel.Destroy() … … 1145 1152 histo.Bind(wx.EVT_COMBOBOX,OnHisto) 1146 1153 mainSizer.Add(histo,0,WACV) 1154 samSizer = wx.BoxSizer(wx.HORIZONTAL) 1155 samSize = wx.CheckBox(self.panel,label=' Use size broadening?') 1156 samSize.SetValue(self.UseSampBrd[0]) 1157 samSize.Bind(wx.EVT_CHECKBOX,OnSize) 1158 strain = wx.CheckBox(self.panel,label=' Use mustrain broadening?') 1159 strain.SetValue(self.UseSampBrd[1]) 1160 strain.Bind(wx.EVT_CHECKBOX,OnStrain) 1161 samSizer.Add(samSize,0,WACV) 1162 samSizer.Add(strain,0,WACV) 1163 mainSizer.Add(samSizer,0,WACV) 1147 1164 metalist = ['title','owner','material','comment','source'] 1148 1165 metaSizer = wx.FlexGridSizer(0,2,5,5) … … 1167 1184 def GetData(self): 1168 1185 'Returns the values from the dialog' 1169 return self.SuperCell,self.histogram,self.metadata,self.atSeq 1186 return self.SuperCell,self.histogram,self.metadata,self.atSeq,self.UseSampBrd 1170 1187 1171 1188 def OnOK(self,event): … … 4531 4548 RMCsel.Bind(wx.EVT_RADIOBOX, OnRMCselect) 4532 4549 mainSizer.Add(RMCsel,0,WACV) 4550 mainSizer.Add((5,5),0,WACV) 4533 4551 if G2frame.RMCchoice == 'fullrmc': 4534 4552 mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' fullrmc run.py file preparation:'),0,WACV) … … 4536 4554 G2frame.runtext = wx.TextCtrl(G2frame.FRMC,style=wx.TE_MULTILINE|wx.TE_DONTWRAP,size=(850,450)) 4537 4555 # G2frame.runtext.SetFont(font1) 4556 mainSizer.Add(G2frame.runtext) 4538 4557 else: 4539 4558 mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' RMCProfile input file preparation:'),0,WACV) 4540 4541 4542 mainSizer.Add((5,5),0,WACV)4543 mainSizer.Add(G2frame.runtext)4559 G2frame.runtext = wx.TextCtrl(G2frame.FRMC,style=wx.TE_MULTILINE|wx.TE_DONTWRAP,size=(850,450)) 4560 mainSizer.Add(G2frame.runtext) 4561 4562 4544 4563 SetPhaseWindow(G2frame.FRMC,mainSizer) 4545 4564 … … 4601 4620 dlg = SetUpRMCProfileDialog(G2frame,Name=pName,Phase=data) 4602 4621 if dlg.ShowModal() == wx.ID_OK: 4603 superCell,histoName,meta,atSeq = dlg.GetData()4622 superCell,histoName,meta,atSeq,useSamBrd = dlg.GetData() 4604 4623 PWId = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,histoName) 4605 4624 if PWId: 4606 4625 # Progress 4626 # print(useSamBrd) 4627 # print(data['Histograms'][histoName]['Size']) 4628 # print(data['Histograms'][histoName]['Mustrain']) 4607 4629 print(G2pwd.MakeInst(G2frame,pName,PWId)+ ' written') 4608 4630 backfile = G2pwd.MakeBack(G2frame,pName,PWId) … … 4701 4723 pName = generalData['Name'].replace(' ','_') 4702 4724 batch = open('runrmc.bat','w') 4703 batch.write('::PATH=%PATH%;'+rmcexe+';c:'+rmcexe+'\cygwin_libs\n') 4725 batch.write('ECHO OFF\n') 4726 batch.write('::PATH=%PATH%;'+rmcexe+'\n') 4704 4727 batch.write('SET RMCPROFILE_DIR='+G2frame.dirname+'\n') 4705 4728 batch.write('SET RMCPROFILE_DRIVE=%~d1\n') 4706 batch.write('::PATH=%PATH%;%RMCPROFILE_DIR%\exe ;%RMCPROFILE_DIR%\exe\cygwin_libs\n')4707 batch.write('PATH=%RMCPROFILE_DIR%\exe;% RMCPROFILE_DIR%\exe\cygwin_libs;%PATH%\n')4729 batch.write('::PATH=%PATH%;%RMCPROFILE_DIR%\exe\n') 4730 batch.write('PATH=%RMCPROFILE_DIR%\exe;%PATH%\n') 4708 4731 batch.write('PATH\n') 4709 4732 batch.write('Title RMCProfile\n') … … 4722 4745 # finally: 4723 4746 # dlg.Destroy() 4724 4747 4748 def OnViewRMC(event): 4749 if G2frame.RMCchoice == 'fullrmc': 4750 print('view fullrmc results - TBD') 4751 else: 4752 generalData = data['General'] 4753 pName = generalData['Name'].replace(' ','_') 4754 files = {'_PDF1.csv':[],'_PDFpartials.csv':[],'_SQ1.csv':[],'_XFQ1.csv':[], 4755 '_SQ1partials.csv':[],'_FQ1.csv':[],'_FT_XFQ1.csv':[], 4756 '_FQ1partials.csv':[],'_bragg.csv':[],'.chi2':[]} 4757 for item in files: 4758 if os.path.exists(pName+item): 4759 OutFile = open(pName+item,'r') 4760 files[item] = OutFile.readlines() 4761 OutFile.close() 4762 print('RMCProfile file %s read'%(pName+item)) 4763 else: 4764 print('RMCProfile file %s not found'%(pName+item)) 4765 #total result plots 4766 Labels = {'_PDF1.csv':[r'$\mathsf{R,\AA}$','G(R)','RMCprofile G(R) for '], 4767 '_SQ1.csv':[r'$\mathsf{Q,\AA^-1}$','S(Q)','RMCprofile S(Q) for '], 4768 '_FQ1.csv':[r'$\mathsf{Q,\AA^-1}$','F(Q)','RMCprofile F(Q) for '], 4769 '_FT_XFQ1.csv':[r'$\mathsf{R,\AA}$','G(R)','RMCprofile x-ray G(R) for '], 4770 '_XFQ1.csv':[r'$\mathsf{Q,\AA^-1}$','F(Q)','RMCprofile x-ray F(Q) for '], 4771 '_bragg.csv':[r'$\mathsf{TOF,\mu s}$','Normalized Intensity','RMCprofile bragg for ']} 4772 for label in Labels: 4773 X = [] 4774 Yobs = [] 4775 Ycalc = [] 4776 if len(files[label]): 4777 Names = files[label][0][:-1].split(',') 4778 for line in files[label][1:]: 4779 items = line.split(',') 4780 X.append(float(items[0])) 4781 Yobs.append(float(items[1])) 4782 Ycalc.append(float(items[2])) 4783 Yobs = np.array([X,Yobs]) 4784 Ycalc = np.array([X,Ycalc]) 4785 G2plt.PlotXY(G2frame,[Yobs,Ycalc],labelX=Labels[label][0], 4786 labelY=Labels[label][1],newPlot=True,Title=Labels[label][2]+pName, 4787 lines=True,names=Names[1:]) 4788 #partials plots 4789 Labels = {'_PDFpartials.csv':[r'$\mathsf{R,\AA}$','G(R)','RMCprofile G(R) partials for '], 4790 '_SQ1partials.csv':[r'$\mathsf{Q,\AA^-1}$','S(Q)','RMCprofile S(Q) partials for '], 4791 '_FQ1partials.csv':[r'$\mathsf{Q,\AA^-1}$','F(Q)','RMCprofile F(Q) partials for ']} 4792 for label in Labels: 4793 X = [] 4794 Partials = [] 4795 if len(files[label]): 4796 Names = files[label][0][:-1].split(',') 4797 for line in files[label][1:]: 4798 items = line.split(',')[:-1] 4799 X.append(float(items[0])) 4800 Partials.append([float(item) for item in items[1:]]) 4801 X = np.array(X) 4802 Partials = np.array(Partials).T 4803 XY = [[X.T,Y.T] for Y in Partials] 4804 G2plt.PlotXY(G2frame,XY,labelX=Labels[label][0], 4805 labelY=Labels[label][1],newPlot=True,Title=Labels[label][2]+pName, 4806 lines=True,names=Names[1:]) 4807 #chi**2 plot 4808 X = [] 4809 Chi = [] 4810 Names = files['.chi2'][0][:-1].split() 4811 if len(files['.chi2']) > 2: 4812 for line in files['.chi2'][1:]: 4813 items = line[:-1].split() 4814 X.append(float(items[1])) 4815 Chi.append([float(item) for item in items[3:]]) 4816 X = np.array(X) 4817 Chi = np.array(Chi).T 4818 XY = [[X.T,Y.T] for Y in Chi] 4819 G2plt.PlotXY(G2frame,XY,labelX='no. generated', 4820 labelY=r'$\mathsf{\chi^2}$',newPlot=True,Title='RMCProfile Chi^2 for '+pName, 4821 lines=True,names=Names[3:]) 4725 4822 4726 4823 ################################################################################ … … 10299 10396 G2frame.Bind(wx.EVT_MENU, OnSaveRMC, id=G2G.wxID_SAVERMC) 10300 10397 G2frame.Bind(wx.EVT_MENU, OnRunRMC, id=G2G.wxID_RUNRMC) 10398 G2frame.Bind(wx.EVT_MENU, OnViewRMC, id=G2G.wxID_VIEWRMC) 10301 10399 except: 10302 10400 pass -
trunk/GSASIIpwd.py
r4199 r4200 2095 2095 prms = ['Bank', 2096 2096 'difC','difA','Zero','2-theta', 2097 'alpha','beta-0','beta-1','sig-0', 2098 'sig-1','sig-2','X','Y'] 2097 'alpha','beta-0','beta-1', 2098 'sig-0','sig-1','sig-2', 2099 'Z','X','Y'] 2099 2100 fname = Name+'.inst' 2100 2101 fl = open(fname,'w') … … 2102 2103 fl.write('%d\n'%int(inst[prms[0]][1])) 2103 2104 fl.write('%10.3f%10.3f%10.3f%10.3f\n'%(inst[prms[1]][1],inst[prms[2]][1],inst[prms[3]][1],inst[prms[4]][1])) 2104 fl.write('%10.3f%10.6f%10.6f%10.3f\n'%(inst[prms[5]][1],inst[prms[6]][1],inst[prms[7]][1],inst[prms[8]][1])) 2105 fl.write('%10.3f%10.3f%10.3f%10.4f\n'%(inst[prms[9]][1],inst[prms[10]][1],0.0,inst[prms[12]][1])) 2106 fl.write('%10.4f%10.3f%10.3f%10.3f\n'%(inst[prms[11]][1],0.0,0.0,0.0)) 2107 fl.write('%10.4f%10.3f%10.3f%10.3f\n'%(0.0,0.0,0.0,0.0)) 2105 fl.write('%10.3f%10.6f%10.6f\n'%(inst[prms[5]][1],inst[prms[6]][1],inst[prms[7]][1])) 2106 fl.write('%10.3f%10.3f%10.3f\n'%(inst[prms[8]][1],inst[prms[9]][1],inst[prms[10]][1])) 2107 fl.write('%10.4f%10.3f%10.3f%10.3f%10.3f\n'%(inst[prms[11]][1],inst[prms[12]][1],inst[prms[13]][1],0.0,0.0)) 2108 2108 fl.close() 2109 2109 else: 2110 2110 prms = ['Bank', 2111 'Lam','Zero', 2111 'Lam','Zero','Polariz.', 2112 2112 'U','V','W', 2113 'X','Y' ,]2113 'X','Y'] 2114 2114 fname = Name+'.inst' 2115 2115 fl = open(fname,'w') 2116 2116 fl.write('1\n') 2117 2117 fl.write('%d\n'%int(inst[prms[0]][1])) 2118 fl.write('%10. 3f%10.3f%10.3f%10.3f\n'%(inst[prms[1]][1],inst[prms[2]][1],0.0,0.0))2119 fl.write('%10.3f%10. 6f%10.6f%10.3f\n'%(inst[prms[3]][1],inst[prms[4]][1],inst[prms[5]][1],0.0))2120 fl.write('%10.3f%10.3f%10.3f %10.3f\n'%(inst[prms[6]][1],inst[prms[7]][1],0.0,0.0))2121 fl.write('%10.3f%10.3f%10.3f %10.3f\n'%(0.0,0.0,0.0,0.0))2118 fl.write('%10.5f%10.5f%10.4f%10d\n'%(inst[prms[1]][1],inst[prms[2]][1]/100.,inst[prms[3]][1],0)) 2119 fl.write('%10.3f%10.3f%10.3f\n'%(inst[prms[4]][1],inst[prms[5]][1],inst[prms[6]][1])) 2120 fl.write('%10.3f%10.3f%10.3f\n'%(inst[prms[7]][1],inst[prms[8]][1],0.0)) 2121 fl.write('%10.3f%10.3f%10.3f\n'%(0.0,0.0,0.0)) 2122 2122 fl.close() 2123 2123 return fname … … 2126 2126 PWDdata = G2frame.GetPWDRdatafromTree(PWId) 2127 2127 Back = PWDdata['Background'][0] 2128 inst = PWDdata['Instrument Parameters'][0] 2128 2129 if 'chebyschev' not in Back[0]: 2129 2130 return None … … 2134 2135 fl.write('%10d\n'%Nback) 2135 2136 for val in BackVals: 2136 fl.write('%12.6g\n'%val) 2137 if 'T' in inst['Type'][1]: 2138 fl.write('%12.6g\n'%(float(val))) 2139 else: 2140 fl.write('%12.6g\n'%val) 2137 2141 fl.close() 2138 2142 return fname
Note: See TracChangeset
for help on using the changeset viewer.