Changeset 4253
- Timestamp:
- Jan 14, 2020 7:21:01 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIphsGUI.py
r4248 r4253 1107 1107 'Xray real space data; G(r): ':['',0.01,'G(r)','RMC',], 1108 1108 'Xray reciprocal space data; F(Q): ':['',0.01,'F(Q)','RMC',],} 1109 runTimes = [10.,1.] 1109 1110 metadata = {'title':'none','owner':'no one','date':str(time.ctime()),'temperature':'300K', 1110 1111 'material':'nothing','phase':'vacuum','comment':'none ','source':'nowhere'} 1111 1112 Phase['RMC']['RMCProfile'] = {'SuperCell':[1,1,1],'UseSampBrd':[True,True],'aTypes':aTypes, 1112 'atSeq':atSeq,'Pairs':Pairs,'histogram':['',1.0],'files':files,'metadata':metadata} 1113 'atSeq':atSeq,'Pairs':Pairs,'histogram':['',1.0],'files':files,'metadata':metadata, 1114 'runTimes':runTimes,'ReStart':False} 1113 1115 self.RMCPdict = Phase['RMC']['RMCProfile'] 1114 1116 self.Phase = Phase … … 1155 1157 fil = Indx[Obj.GetId()] 1156 1158 self.RMCPdict['files'][fil][3] = Obj.GetStringSelection() 1159 1160 def SetRestart(invalid,value,tc): 1161 self.RMCPdict['ReStart'] = True 1162 self.OKBtn.SetLabel('Restart') 1157 1163 1158 1164 Indx = {} 1165 if 'runTimes' not in self.RMCPdict: 1166 self.RMCPdict['runTimes'] = [10.0,1.0] 1159 1167 lenA = len(self.RMCPdict['atSeq']) 1160 1168 Pairs= [] … … 1172 1180 metaSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['metadata'],item),0,WACV) 1173 1181 mainSizer.Add(metaSizer,0,WACV) 1174 mainSizer.Add(wx.StaticText(self.panel,label=' Lattice multipliers:'),0,WACV) 1182 timeSizer = wx.BoxSizer(wx.HORIZONTAL) 1183 timeSizer.Add(wx.StaticText(self.panel,label=' Total running time (min): '),0,WACV) 1184 timeSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['runTimes'],0,min=0.),0,WACV) 1185 timeSizer.Add(wx.StaticText(self.panel,label=' Save interval time (min): '),0,WACV) 1186 timeSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['runTimes'],1,min=0.1,max=20.),0,WACV) 1187 mainSizer.Add(timeSizer,0,WACV) 1188 mainSizer.Add(wx.StaticText(self.panel,label=' Lattice multipliers; if changed will force restart of RMCProfile:'),0,WACV) 1175 1189 superSizer = wx.BoxSizer(wx.HORIZONTAL) 1176 1190 axes = ['X','Y','Z'] 1177 1191 for i,ax in enumerate(axes): 1178 1192 superSizer.Add(wx.StaticText(self.panel,label=' %s-axis: '%ax),0,WACV) 1179 superSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['SuperCell'],i,min=1,max=20,size=(50,25) ),0,WACV)1193 superSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['SuperCell'],i,min=1,max=20,size=(50,25),OnLeave=SetRestart),0,WACV) 1180 1194 mainSizer.Add(superSizer,0,WACV) 1181 1195 nTypes = len(self.RMCPdict['aTypes']) … … 1263 1277 mainSizer.Add(wx.StaticText(self.panel,label=' WARNING: this can take time - be patient'),0,WACV) 1264 1278 btnSizer = wx.BoxSizer(wx.HORIZONTAL) 1265 OKBtn = wx.Button(self.panel,-1,"OK") 1266 OKBtn.Bind(wx.EVT_BUTTON, self.OnOK) 1267 btnSizer.Add(OKBtn) 1279 self.OKBtn = wx.Button(self.panel,-1,"OK") 1280 self.OKBtn.Bind(wx.EVT_BUTTON, self.OnOK) 1281 btnSizer.Add(self.OKBtn) 1282 CancelBtn = wx.Button(self.panel,-1,'Cancel') 1283 CancelBtn.Bind(wx.EVT_BUTTON, self.OnCancel) 1284 btnSizer.Add(CancelBtn) 1285 1268 1286 1269 1287 mainSizer.Add(btnSizer,0,wx.EXPAND|wx.BOTTOM|wx.TOP, 10) … … 1284 1302 parent.Raise() 1285 1303 self.EndModal(wx.ID_OK) 1304 1305 def OnCancel(self,event): 1306 parent = self.GetParent() 1307 parent.Raise() 1308 self.EndModal(wx.ID_CANCEL) 1309 1286 1310 1287 1311 class SetUpFullrmcDialog(wx.Dialog): … … 1340 1364 atmChoice.Add(atmSel,0,WACV) 1341 1365 mainSizer.Add(atmChoice,0,WACV) 1342 # histograms = self.Phase['Histograms']1343 # histNames = list(histograms.keys())1344 # mainSizer.Add(wx.StaticText(self.panel,label=' Select one histogram for processing:'),0,WACV)1345 # histo = wx.ComboBox(self.panel,choices=histNames,style=wx.CB_DROPDOWN|wx.TE_READONLY)1346 # histo.Bind(wx.EVT_COMBOBOX,OnHisto)1347 # mainSizer.Add(histo,0,WACV)1348 # metalist = ['title','owner','material','comment','source']1349 # metaSizer = wx.FlexGridSizer(0,2,5,5)1350 # for item in metalist:1351 # metaSizer.Add(wx.StaticText(self.panel,label=' Metadata item: '+item+' '),0,WACV)1352 # metaSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.metadata,item),0,WACV)1353 # mainSizer.Add(metaSizer,0,WACV)1354 1366 mainSizer.Add(wx.StaticText(self.panel,label=' WARNING: this can take time - be patient'),0,WACV) 1355 1367 btnSizer = wx.BoxSizer(wx.HORIZONTAL) … … 3371 3383 for i in range(colU11-1,colU11+6): 3372 3384 Atoms.SetColSize(i,50) 3373 for row in range(Atoms.GetNumberRows()): 3385 for row in range(Atoms.GetNumberRows()): #this is slow for large numbers of atoms 3374 3386 atId = atomData[row][colIA+8] 3375 3387 rbExcl = rbAtmDict.get(atId,'') … … 3406 3418 if not SGData['SGGray']: 3407 3419 CSI = G2spc.GetCSpqinel(SpnFlp,dupDir) 3408 # print (SytSym,Nop,SpnFlp[Nop],CSI,dupDir)3409 # print('CSI:',CSI)3410 3420 saveCSI = 0 3411 3421 for i in range(3): … … 3428 3438 SetPhaseWindow(Atoms) 3429 3439 3430 3440 # FillAtomsGrid executable code starts here 3431 3441 if not data['Drawing']: #if new drawing - no drawing data! 3432 3442 SetupDrawingData() 3433 3443 generalData = data['General'] 3434 3444 SpnFlp = generalData['SGData'].get('SpnFlp',[]) 3435 # OprNames = generalData['SGData'].get('OprNames',[])3436 # print OprNames3437 # print SpnFlp3438 # print generalData['SGData'].get('MagMom',[])3439 3445 atomData = data['Atoms'] 3440 3446 resRBData = data['RBModels'].get('Residue',[]) … … 4635 4641 4636 4642 G2frame.GetStatusBar().SetStatusText('',1) 4643 if G2frame.RMCchoice == 'RMCProfile': 4644 G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_LOADRMC,False) 4645 G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_SAVERMC,False) 4646 elif G2frame.RMCchoice == 'fullrmc': 4647 G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_LOADRMC,True) 4648 G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_SAVERMC,True) 4637 4649 mainSizer = wx.BoxSizer(wx.VERTICAL) 4638 4650 runFile = ' ' … … 4650 4662 mainSizer.Add(G2frame.runtext) 4651 4663 else: 4652 mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' RMCProfile input file preparation:'),0,WACV) 4653 G2frame.runtext = wx.TextCtrl(G2frame.FRMC,style=wx.TE_MULTILINE|wx.TE_DONTWRAP,size=(850,450)) 4654 mainSizer.Add(G2frame.runtext) 4664 pass 4655 4665 4656 4666 … … 4725 4735 print(backfile+ ' written') 4726 4736 print(G2pwd.MakeBragg(G2frame,pName,data,PWId)+ ' written') 4727 print(G2pwd.MakeRMC6f(G2frame,pName,data,RMCPdict['metadata'],RMCPdict['atSeq'], 4728 RMCPdict['SuperCell'],PWId)+ ' written') 4729 print(G2pwd.MakeRMCPdat(G2frame,pName,data,RMCPdict['metadata'],RMCPdict['atSeq'], 4737 if RMCPdict.get('ReStart',False): 4738 print(G2pwd.MakeRMC6f(G2frame,pName,data,RMCPdict['metadata'],RMCPdict['atSeq'], 4739 RMCPdict['SuperCell'],PWId)+ ' written') 4740 print(G2pwd.MakeRMCPdat(G2frame,pName,data,RMCPdict['metadata'],RMCPdict['runTimes'],RMCPdict['atSeq'], 4730 4741 RMCPdict['aTypes'],RMCPdict['Pairs'],RMCPdict['SuperCell'],RMCPdict['files'],PWId,RMCPdict['histogram'][1])+ ' written') 4731 4742 print('RMCProfile file build completed') … … 4895 4906 labelY=Labels[label][1],newPlot=True,Title=Labels[label][2]+pName, 4896 4907 lines=True,names=Names[1:]) 4908 print(' %s scale Ycalc/Yobs: %.4f'%(label,np.sum(Ycalc[1])/np.sum(Yobs[1]))) 4897 4909 #partials plots 4898 4910 Labels = {'_PDFpartials.csv':[r'$\mathsf{R,\AA}$','G(R)','RMCP G(R) partials for '], -
trunk/GSASIIpwd.py
r4248 r4253 2187 2187 NAstr = ['%d'%i for i in NAtype] 2188 2188 Cell = newPhase['General']['Cell'][1:7] 2189 if os.path.exists(Name+'.his6f'): 2190 os.remove(Name+'.his6f') 2191 if os.path.exists(Name+'.neigh'): 2192 os.remove(Name+'.neigh') 2189 2193 fname = Name+'.rmc6f' 2190 2194 fl = open(fname,'w') … … 2243 2247 return fname 2244 2248 2245 def MakeRMCPdat(G2frame,Name,Phase,Meta, Atseq,Atypes,atPairs,Supercell,Files,PWId,BraggWt):2249 def MakeRMCPdat(G2frame,Name,Phase,Meta,Times,Atseq,Atypes,atPairs,Supercell,Files,PWId,BraggWt): 2246 2250 PWDdata = G2frame.GetPWDRdatafromTree(PWId) 2247 2251 inst = PWDdata['Instrument Parameters'][0] … … 2283 2287 fl.write('R_SPACING :: 0.0200 Angstrom\n') 2284 2288 fl.write('PRINT_PERIOD :: 100\n') 2285 fl.write('TIME_LIMIT :: 10.00 MINUTES\n')2286 fl.write('SAVE_PERIOD :: 1.00 MINUTES\n')2289 fl.write('TIME_LIMIT :: %.2f MINUTES\n'%Times[0]) 2290 fl.write('SAVE_PERIOD :: %.2f MINUTES\n'%Times[1]) 2287 2291 fl.write('\n') 2288 2292 fl.write('ATOMS :: '+' '.join(Atseq)+'\n') -
trunk/GSASIIspc.py
r4213 r4253 3289 3289 3290 3290 ''' 3291 if SGData['SpGrp'] == 'P 1': 3292 return '1',1,1,{} 3291 3293 Mult = 1 3292 3294 Isym = 0
Note: See TracChangeset
for help on using the changeset viewer.