Changeset 4254
- Timestamp:
- Jan 17, 2020 8:41:23 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIElem.py
r3786 r4254 157 157 El['cmpb'] = Cmp5[6:] 158 158 return El 159 160 def GetBVS(Pair,atSeq,Valences): 161 Els = Pair.strip().split('-') 162 iAt = atSeq.index(Els[0]) 163 jAt = atSeq.index(Els[1]) 164 iVal = Valences[iAt][0] 165 if Els[1] in ['O','F','Cl']: 166 iEls = ['O','F','Cl'].index(Els[1]) 167 if iVal in atmdata.BVScoeff: 168 return atmdata.BVScoeff[iVal][iEls] 169 else: 170 return 0.0 171 elif Els[1] in ['Br','I','S','Se','Te','N','P','As','H','D']: 172 iEls = ['Br','I','S','Se','Te','N','P','As','H','D'].index(Els[1]) 173 if Els[0] in atmdata.BVSnotOFCl: 174 return atmdata.BVSnotOFCl[Els[0]][iEls] 175 else: 176 return 0.0 177 else: 178 return 0.0 159 179 160 180 def CheckElement(El): -
trunk/GSASIIphsGUI.py
r4253 r4254 63 63 import numpy as np 64 64 import numpy.linalg as nl 65 import atmdata 65 66 66 67 try: … … 1097 1098 aTypes = dict(zip(Atypes,len(Atypes)*[0.10,])) 1098 1099 atSeq = list(aTypes.keys()) 1100 atOxid = [[atmdata.BVSoxid[atm][0],0.001] for atm in atSeq] 1099 1101 lenA = len(atSeq) 1100 1102 Pairs= [] … … 1102 1104 Pairs += pair 1103 1105 Pairs = {pairs:[0.0,0.0,0.0] for pairs in Pairs} 1106 BVSpairs = [] 1107 if lenA > 1: 1108 for pair in [[' %s-%s'%(atSeq[i],atSeq[j]) for j in range(i+1,lenA)] for i in range(lenA)]: 1109 BVSpairs += pair 1110 BVS = {pairs:[0.0,0.0,0.0,0.0] for pairs in BVSpairs} 1104 1111 files = {'Neutron real space data; G(r): ':['',0.05,'G(r)','RMC',], 1105 1112 'Neutron reciprocal space data; F(Q): ':['',0.05,'F(Q)','RMC',], … … 1112 1119 Phase['RMC']['RMCProfile'] = {'SuperCell':[1,1,1],'UseSampBrd':[True,True],'aTypes':aTypes, 1113 1120 'atSeq':atSeq,'Pairs':Pairs,'histogram':['',1.0],'files':files,'metadata':metadata, 1114 'runTimes':runTimes,'ReStart':False} 1121 'runTimes':runTimes,'ReStart':False,'BVS':BVS,'Oxid':atOxid,'useBVS':False, 1122 'AveCN':[],'FxCN':[]} 1115 1123 self.RMCPdict = Phase['RMC']['RMCProfile'] 1116 1124 self.Phase = Phase … … 1125 1133 Obj = event.GetEventObject() 1126 1134 itype = Indx[Obj.GetId()] 1127 tid = Obj.GetSelection()1128 if itype < nTypes -1:1135 tid = self.RMCPdict['atSeq'].index(Obj.GetStringSelection()) 1136 if itype < nTypes: 1129 1137 if itype == tid: 1130 1138 tid += 1 … … 1132 1140 wx.CallAfter(self.Draw) 1133 1141 1142 def OnValSel(event): 1143 Obj = event.GetEventObject() 1144 itype = Indx[Obj.GetId()] 1145 self.RMCPdict['Oxid'][itype][0] = Obj.GetStringSelection() 1146 wx.CallAfter(self.Draw) 1147 1134 1148 def OnSize(event): 1135 1149 self.RMCPdict['UseSampBrd'][0] = samSize.GetValue() … … 1151 1165 dlg.Destroy() 1152 1166 return 1153 self.Draw()1167 wx.CallAfter(self.Draw) 1154 1168 1155 1169 def OnFileFormat(event): … … 1161 1175 self.RMCPdict['ReStart'] = True 1162 1176 self.OKBtn.SetLabel('Restart') 1177 1178 def OnUseBVS(event): 1179 self.RMCPdict['useBVS'] = not self.RMCPdict['useBVS'] 1180 wx.CallAfter(self.Draw) 1181 1182 def OnResetBVS(event): 1183 Obj = event.GetEventObject() 1184 pair = Indx[Obj.GetId()] 1185 pId = [key for key in self.RMCPdict['BVS']].index(pair)+1 1186 nId = len(self.RMCPdict['BVS'])+1 1187 dist = G2elem.GetBVS(pair,self.RMCPdict['atSeq'],self.RMCPdict['Oxid']) 1188 if dist: 1189 self.RMCPdict['BVS'][pair] = [dist,0.37,3.0] 1190 bvsCh = bvsSizer.GetChildren() 1191 addr = 2*nId+pId 1192 bvsCh[addr].Window.SetValue('%6.3f'%dist) 1193 bvsCh[addr+nId].Window.SetValue('0.37') 1194 bvsCh[addr+2*nId].Window.SetValue('3.00') 1195 1196 def OnAddFxCN(event): 1197 self.RMCPdict['FxCN'].append(['','',0.0,2.0,6,1.0,0.001]) 1198 wx.CallAfter(self.Draw) 1199 1200 def OnDelFxCN(event): 1201 Obj = event.GetEventObject() 1202 fxCN = Indx[Obj.GetId()] 1203 del self.RMCPdict['FxCN'][fxCN] 1204 wx.CallAfter(self.Draw) 1205 1206 def OnFxcnAtSel(event): 1207 Obj = event.GetEventObject() 1208 ifxCN,i = Indx[Obj.GetId()] 1209 self.RMCPdict['FxCN'][ifxCN][i] = Obj.GetStringSelection() 1210 1211 def OnAddAveCN(event): 1212 self.RMCPdict['AveCN'].append(['','',0.0,2.0,6.,0.001]) 1213 wx.CallAfter(self.Draw) 1163 1214 1215 def OnDelAvCN(event): 1216 Obj = event.GetEventObject() 1217 fxCN = Indx[Obj.GetId()] 1218 del self.RMCPdict['AveCN'][fxCN] 1219 wx.CallAfter(self.Draw) 1220 1221 def OnAvcnAtSel(event): 1222 Obj = event.GetEventObject() 1223 ifxCN,i = Indx[Obj.GetId()] 1224 self.RMCPdict['AveCN'][ifxCN][i] = Obj.GetStringSelection() 1225 1164 1226 Indx = {} 1227 #patches 1165 1228 if 'runTimes' not in self.RMCPdict: 1166 1229 self.RMCPdict['runTimes'] = [10.0,1.0] 1167 1230 lenA = len(self.RMCPdict['atSeq']) 1231 if 'Oxid' not in self.RMCPdict: 1232 self.RMCPdict['Oxid'] = [[atmdata.BVSoxid[atm][0],0.001] for atm in self.RMCPdict['atSeq']] 1168 1233 Pairs= [] 1169 1234 for pair in [[' %s-%s'%(self.RMCPdict['atSeq'][i],self.RMCPdict['atSeq'][j]) for j in range(i,lenA)] for i in range(lenA)]: 1170 1235 Pairs += pair 1171 1236 self.RMCPdict['Pairs'] = dict(zip(Pairs,[self.RMCPdict['Pairs'].get(pair,[0.0,0.0,0.0]) for pair in Pairs])) 1237 BVSpairs = [] 1238 if 'BVS' not in self.RMCPdict: 1239 self.RMCPdict['useBVS'] = False 1240 self.RMCPdict['BVS'] = {} 1241 if lenA > 1: 1242 for pair in [[' %s-%s'%(self.RMCPdict['atSeq'][i],self.RMCPdict['atSeq'][j]) for j in range(i+1,lenA)] for i in range(lenA)]: 1243 BVSpairs += pair 1244 self.RMCPdict['BVS'] = dict(zip(BVSpairs,[self.RMCPdict['BVS'].get(pair,[0.0,0.0,0.0]) for pair in BVSpairs])) 1245 if 'FxCN' not in self.RMCPdict: 1246 self.RMCPdict.update({'AveCN':[],'FxCN':[]}) 1247 1248 #end patches 1172 1249 self.panel.Destroy() 1173 1250 self.panel = wxscroll.ScrolledPanel(self,style = wx.DEFAULT_DIALOG_STYLE,size=(700,500)) … … 1180 1257 metaSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['metadata'],item),0,WACV) 1181 1258 mainSizer.Add(metaSizer,0,WACV) 1259 1260 G2G.HorizontalLine(mainSizer,self.panel) 1182 1261 timeSizer = wx.BoxSizer(wx.HORIZONTAL) 1183 1262 timeSizer.Add(wx.StaticText(self.panel,label=' Total running time (min): '),0,WACV) … … 1186 1265 timeSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['runTimes'],1,min=0.1,max=20.),0,WACV) 1187 1266 mainSizer.Add(timeSizer,0,WACV) 1188 mainSizer.Add(wx.StaticText(self.panel,label=' Lattice multipliers; if changed will force res tart of RMCProfile:'),0,WACV)1267 mainSizer.Add(wx.StaticText(self.panel,label=' Lattice multipliers; if changed will force reset of atom positions:'),0,WACV) 1189 1268 superSizer = wx.BoxSizer(wx.HORIZONTAL) 1190 1269 axes = ['X','Y','Z'] … … 1193 1272 superSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['SuperCell'],i,min=1,max=20,size=(50,25),OnLeave=SetRestart),0,WACV) 1194 1273 mainSizer.Add(superSizer,0,WACV) 1274 mainSizer.Add(wx.StaticText(self.panel,label=' NB: be sure to set cations first && anions last in atom ordering'),0,WACV) 1195 1275 nTypes = len(self.RMCPdict['aTypes']) 1196 1276 atmChoice = wx.FlexGridSizer(nTypes+1,5,5) … … 1203 1283 Indx[atmSel.GetId()] = iType 1204 1284 atmChoice.Add(atmSel,0,WACV) 1285 if self.RMCPdict['useBVS']: 1286 atmChoice.Add(wx.StaticText(self.panel,label=' Select valence: '),0,WACV) 1287 for itype in range(nTypes): 1288 valChoice = atmdata.BVSoxid[self.RMCPdict['atSeq'][itype]] 1289 valSel = wx.ComboBox(self.panel,choices=valChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY) 1290 valSel.SetStringSelection(self.RMCPdict['Oxid'][itype][0]) 1291 valSel.Bind(wx.EVT_COMBOBOX,OnValSel) 1292 Indx[valSel.GetId()] = itype 1293 atmChoice.Add(valSel,0,WACV) 1294 atmChoice.Add(wx.StaticText(self.panel,label=' BVS weight: '),0,WACV) 1295 for itype in range(nTypes): 1296 atmChoice.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['Oxid'][itype],1,min=0.),0,WACV) 1205 1297 atmChoice.Add(wx.StaticText(self.panel,label=' Set max shift: '),0,WACV) 1206 1298 for iType in range(nTypes): … … 1208 1300 atmChoice.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['aTypes'],atId,min=0.,max=1.),0,WACV) 1209 1301 mainSizer.Add(atmChoice,0,WACV) 1302 1303 G2G.HorizontalLine(mainSizer,self.panel) 1210 1304 mainSizer.Add(wx.StaticText(self.panel,label=' Enter constraints && restraints:'),0,WACV) 1211 1305 mainSizer.Add(wx.StaticText(self.panel,label=' Set minimum && maximum distances for:'),0,WACV) … … 1214 1308 for pair in self.RMCPdict['Pairs']: 1215 1309 pairSizer.Add(wx.StaticText(self.panel,label=pair),0,WACV) 1216 pairSizer.Add(wx.StaticText(self.panel,label=' Hard min: '),0,WACV)1310 pairSizer.Add(wx.StaticText(self.panel,label='%14s'%' Hard min: '),0,WACV) 1217 1311 for pair in self.RMCPdict['Pairs']: 1218 1312 pairSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['Pairs'][pair],0,min=0.,max=10.,size=(50,25)),0,WACV) 1219 pairSizer.Add(wx.StaticText(self.panel,label=' Search from: '),0,WACV)1313 pairSizer.Add(wx.StaticText(self.panel,label='%14s'%' Search from: '),0,WACV) 1220 1314 for pair in self.RMCPdict['Pairs']: 1221 1315 pairSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['Pairs'][pair],1,min=self.RMCPdict['Pairs'][pair][0],max=10.,size=(50,25)),0,WACV) 1222 pairSizer.Add(wx.StaticText(self.panel,label=' 1316 pairSizer.Add(wx.StaticText(self.panel,label='%14s'%'to: '),0,WACV) 1223 1317 for pair in self.RMCPdict['Pairs']: 1224 1318 pairSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['Pairs'][pair],2,min=0.,max=10.,size=(50,25)),0,WACV) 1225 1319 mainSizer.Add(pairSizer,0,WACV) 1226 1320 1227 1321 G2G.HorizontalLine(mainSizer,self.panel) 1322 useBVS = wx.CheckBox(self.panel,label=' Use bond valence sum restraints for (set to 0 for non-bonded ones):') 1323 useBVS.SetValue(self.RMCPdict.get('useBVS',False)) 1324 useBVS.Bind(wx.EVT_CHECKBOX,OnUseBVS) 1325 mainSizer.Add(useBVS,0,WACV) 1326 if self.RMCPdict.get('useBVS',False): 1327 bvsSizer = wx.FlexGridSizer(len(self.RMCPdict['BVS'])+1,5,5) 1328 bvsSizer.Add((5,5),0) 1329 for pair in self.RMCPdict['BVS']: 1330 bvsSizer.Add(wx.StaticText(self.panel,label=pair),0,WACV) 1331 bvsSizer.Add(wx.StaticText(self.panel,label=' Reset:'),0,WACV) 1332 for pair in self.RMCPdict['BVS']: 1333 reset = wx.Button(self.panel,label='Yes') 1334 bvsSizer.Add(reset,0,WACV) 1335 reset.Bind(wx.EVT_BUTTON,OnResetBVS) 1336 Indx[reset.GetId()] = pair 1337 bvsSizer.Add(wx.StaticText(self.panel,label=' Bond length:'),0,WACV) 1338 for pair in self.RMCPdict['BVS']: 1339 bvsSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['BVS'][pair],0,min=0.,max=10.,size=(50,25)),0,WACV) 1340 bvsSizer.Add(wx.StaticText(self.panel,label=' B constant (0.37): '),0,WACV) 1341 for pair in self.RMCPdict['BVS']: 1342 bvsSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['BVS'][pair],1,min=0.,max=10.,size=(50,25)),0,WACV) 1343 bvsSizer.Add(wx.StaticText(self.panel,label=' Cut off: '),0,WACV) 1344 for pair in self.RMCPdict['BVS']: 1345 bvsSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['BVS'][pair],2,min=0.,max=10.,size=(50,25)),0,WACV) 1346 mainSizer.Add(bvsSizer,0,WACV) 1347 1348 G2G.HorizontalLine(mainSizer,self.panel) 1349 fxcnBox = wx.BoxSizer(wx.HORIZONTAL) 1350 fxcnAdd = wx.Button(self.panel,label='Add') 1351 fxcnAdd.Bind(wx.EVT_BUTTON,OnAddFxCN) 1352 fxcnBox.Add(fxcnAdd,0,WACV) 1353 fxcnBox.Add(wx.StaticText(self.panel,label=' Fixed coordination number restraint: '),0,WACV) 1354 mainSizer.Add(fxcnBox,0,WACV) 1355 if len(self.RMCPdict['FxCN']): 1356 atChoice = self.RMCPdict['atSeq'] 1357 fxcnSizer = wx.FlexGridSizer(8,5,5) 1358 fxcnLabels = [' ','Atom-1','Atom-2','min dist','max dist','CN','fraction','weight'] 1359 for lab in fxcnLabels: 1360 fxcnSizer.Add(wx.StaticText(self.panel,label=lab),0,WACV) 1361 for ifx,fxCN in enumerate(self.RMCPdict['FxCN']): 1362 delBtn = wx.Button(self.panel,label='Delete') 1363 delBtn.Bind(wx.EVT_BUTTON,OnDelFxCN) 1364 Indx[delBtn.GetId()] = ifx 1365 fxcnSizer.Add(delBtn,0,WACV) 1366 for i in [0,1]: 1367 atmSel = wx.ComboBox(self.panel,choices=atChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY) 1368 atmSel.SetStringSelection(fxCN[i]) 1369 atmSel.Bind(wx.EVT_COMBOBOX,OnFxcnAtSel) 1370 Indx[atmSel.GetId()] = [ifx,i] 1371 fxcnSizer.Add(atmSel,0,WACV) 1372 fxcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,2,min=0.,max=5.,size=(50,25)),0,WACV) 1373 fxcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,3,min=0.,max=5.,size=(50,25)),0,WACV) 1374 fxcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,4,min=1,max=12,size=(50,25)),0,WACV) 1375 fxcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,5,min=0.,max=1.,size=(50,25)),0,WACV) 1376 fxcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,6,min=0.,size=(50,25)),0,WACV) 1377 mainSizer.Add(fxcnSizer,0,WACV) 1378 1379 G2G.HorizontalLine(mainSizer,self.panel) 1380 avcnBox = wx.BoxSizer(wx.HORIZONTAL) 1381 avcnAdd = wx.Button(self.panel,label='Add') 1382 avcnAdd.Bind(wx.EVT_BUTTON,OnAddAveCN) 1383 avcnBox.Add(avcnAdd,0,WACV) 1384 avcnBox.Add(wx.StaticText(self.panel,label=' Average coordination number restraint: '),0,WACV) 1385 mainSizer.Add(avcnBox,0,WACV) 1386 if len(self.RMCPdict['AveCN']): 1387 atChoice = self.RMCPdict['atSeq'] 1388 avcnSizer = wx.FlexGridSizer(7,5,5) 1389 fxcnLabels = [' ','Atom-1','Atom-2','min dist','max dist','CN','weight'] 1390 for lab in fxcnLabels: 1391 avcnSizer.Add(wx.StaticText(self.panel,label=lab),0,WACV) 1392 for ifx,fxCN in enumerate(self.RMCPdict['FxCN']): 1393 delBtn = wx.Button(self.panel,label='Delete') 1394 delBtn.Bind(wx.EVT_BUTTON,OnDelAvCN) 1395 Indx[delBtn.GetId()] = ifx 1396 avcnSizer.Add(delBtn,0,WACV) 1397 for i in [0,1]: 1398 atmSel = wx.ComboBox(self.panel,choices=atChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY) 1399 atmSel.SetStringSelection(fxCN[i]) 1400 atmSel.Bind(wx.EVT_COMBOBOX,OnAvcnAtSel) 1401 Indx[atmSel.GetId()] = [ifx,i] 1402 avcnSizer.Add(atmSel,0,WACV) 1403 avcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,2,min=0.,max=5.,size=(50,25)),0,WACV) 1404 avcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,3,min=0.,max=5.,size=(50,25)),0,WACV) 1405 avcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,4,min=1.,max=12.,size=(50,25)),0,WACV) 1406 avcnSizer.Add(G2G.ValidatedTxtCtrl(self.panel,fxCN,5,min=0.,size=(50,25)),0,WACV) 1407 mainSizer.Add(avcnSizer,0,WACV) 1408 1409 G2G.HorizontalLine(mainSizer,self.panel) 1228 1410 mainSizer.Add(wx.StaticText(self.panel,label=' Select data:'),0,WACV) 1229 1411 histograms = self.Phase['Histograms'] … … 1251 1433 title = ' Select data for processing:' 1252 1434 mainSizer.Add(wx.StaticText(self.panel,label=title),0,WACV) 1253 fileSizer = wx.FlexGridSizer( 5,5,5)1435 fileSizer = wx.FlexGridSizer(4,5,5) 1254 1436 Formats = ['RMC','GUDRUN','STOG'] 1437 Heads = [' ','Format','Weight','Name'] 1438 for head in Heads: 1439 fileSizer.Add(wx.StaticText(self.panel,label=head),0,WACV) 1255 1440 for fil in self.RMCPdict['files']: 1256 1441 filSel = wx.Button(self.panel,label='Select') … … 1259 1444 fileSizer.Add(filSel,0,WACV) 1260 1445 if self.RMCPdict['files'][fil][0]: 1261 fileSizer.Add(wx.StaticText(self.panel,label=' Format, Weight: '),0,WACV)1262 1446 nform = 3 1263 1447 if 'Xray' in fil: nform = 1 … … 1268 1452 fileSizer.Add(fileFormat,0,WACV) 1269 1453 fileSizer.Add(G2G.ValidatedTxtCtrl(self.panel,self.RMCPdict['files'][fil],1),0,WACV) 1270 fileSizer.Add(wx.StaticText(self.panel,label=fil+self.RMCPdict['files'][fil][0]),0,WACV)1271 1454 if not self.RMCPdict['files'][fil][0]: 1272 1455 fileSizer.Add((5,5),0) 1273 1456 fileSizer.Add((5,5),0) 1274 fileSizer.Add((5,5),0)1457 fileSizer.Add(wx.StaticText(self.panel,label=fil+self.RMCPdict['files'][fil][0]),0,WACV) 1275 1458 mainSizer.Add(fileSizer,0,WACV) 1276 1459 … … 4722 4905 G2frame.runtext.SetValue(rundata) 4723 4906 else: 4907 G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_RUNRMC,True) 4724 4908 dlg = SetUpRMCProfileDialog(G2frame,Name=pName,Phase=data) 4725 4909 if dlg.ShowModal() == wx.ID_OK: … … 4732 4916 if backfile is None: 4733 4917 print(' Chebyschev-1 background not used; no .back file written') 4918 wx.MessageDialog(G2frame,' Chebyschev-1 background not used; '+ \ 4919 'no .back file written & RMCProfile will not run','Wrong background function',wx.OK).ShowModal() 4920 G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_RUNRMC,False) 4921 return 4734 4922 else: 4735 4923 print(backfile+ ' written') 4736 4924 print(G2pwd.MakeBragg(G2frame,pName,data,PWId)+ ' written') 4737 4925 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'], 4741 RMCPdict['aTypes'],RMCPdict['Pairs'],RMCPdict['SuperCell'],RMCPdict['files'],PWId,RMCPdict['histogram'][1])+ ' written') 4926 print(G2pwd.MakeRMC6f(G2frame,pName,data,RMCPdict,PWId)+ ' written') 4927 print(G2pwd.MakeRMCPdat(G2frame,pName,data,RMCPdict,PWId)+ ' written') 4742 4928 print('RMCProfile file build completed') 4929 RMCPdict['ReStart'] = False 4743 4930 else: 4744 4931 print('RMCProfile file build failed - no histogram selected') 4932 G2frame.dataWindow.FRMCDataEdit.Enable(G2G.wxID_RUNRMC,False) 4745 4933 else: 4746 4934 pass … … 4839 5027 else: 4840 5028 generalData = data['General'] 5029 RMCPdict = data['RMC']['RMCProfile'] 4841 5030 pName = generalData['Name'].replace(' ','_') 4842 5031 dlg = wx.FileDialog(G2frame, "Choose any RMCProfile csv results file for "+pName+":", … … 4906 5095 labelY=Labels[label][1],newPlot=True,Title=Labels[label][2]+pName, 4907 5096 lines=True,names=Names[1:]) 4908 print(' %s scale Ycalc/Yobs: %.4f'%(label,np.sum(Ycalc[1])/np.sum(Yobs[1]))) 5097 RMCPdict[pName+label] = np.sum(Ycalc[1])/np.sum(Yobs[1]) 5098 print(' %s scale Ycalc/Yobs: %.4f'%(label,RMCPdict[pName+label])) 4909 5099 #partials plots 4910 5100 Labels = {'_PDFpartials.csv':[r'$\mathsf{R,\AA}$','G(R)','RMCP G(R) partials for '], … … 4942 5132 labelY=r'$\mathsf{\chi^2}$',newPlot=True,Title='RMCP Chi^2 for '+pName, 4943 5133 lines=True,names=Names[3:]) 5134 UpdateRMC() 4944 5135 4945 5136 ################################################################################ -
trunk/GSASIIpwd.py
r4253 r4254 2167 2167 return fname 2168 2168 2169 def MakeRMC6f(G2frame,Name,Phase,Meta,Atseq,Supercell,PWId): 2169 def MakeRMC6f(G2frame,Name,Phase,RMCPdict,PWId): 2170 Meta = RMCPdict['metadata'] 2171 Atseq = RMCPdict['atSeq'] 2172 Supercell = RMCPdict['SuperCell'] 2170 2173 PWDdata = G2frame.GetPWDRdatafromTree(PWId) 2171 2174 generalData = Phase['General'] … … 2247 2250 return fname 2248 2251 2249 def MakeRMCPdat(G2frame,Name,Phase,Meta,Times,Atseq,Atypes,atPairs,Supercell,Files,PWId,BraggWt): 2252 def MakeRMCPdat(G2frame,Name,Phase,RMCPdict,PWId): 2253 Meta = RMCPdict['metadata'] 2254 Times = RMCPdict['runTimes'] 2255 Atseq = RMCPdict['atSeq'] 2256 Atypes = RMCPdict['aTypes'] 2257 atPairs = RMCPdict['Pairs'] 2258 Files = RMCPdict['files'] 2259 BraggWt = RMCPdict['histogram'][1] 2250 2260 PWDdata = G2frame.GetPWDRdatafromTree(PWId) 2251 2261 inst = PWDdata['Instrument Parameters'][0] … … 2302 2312 fl.write(' > MNDIST :: %s\n'%minD) 2303 2313 fl.write(' > MXDIST :: %s\n'%maxD) 2314 if RMCPdict['useBVS']: 2315 fl.write('BVS ::\n') 2316 fl.write(' > ATOM :: '+' '.join(Atseq)+'\n') 2317 fl.write(' > WEIGHTS :: %s\n'%' '.join(['%6.3f'%RMCPdict['BVS'][bvs][2] for bvs in RMCPdict['BVS']])) 2318 oxid = [] 2319 for val in RMCPdict['Oxid']: 2320 if len(val) == 3: 2321 oxid.append(val[0][1:]) 2322 else: 2323 oxid.append(val[0][2:]) 2324 fl.write(' > OXID :: %s\n'%' '.join(oxid)) 2325 fl.write(' > RIJ :: %s\n'%' '.join(['%6.3f'%RMCPdict['BVS'][bvs][0] for bvs in RMCPdict['BVS']])) 2326 fl.write(' > BVAL :: %s\n'%' '.join(['%6.3f'%RMCPdict['BVS'][bvs][1] for bvs in RMCPdict['BVS']])) 2327 fl.write(' > CUTOFF :: %s\n'%' '.join(['%6.3f'%RMCPdict['BVS'][bvs][3] for bvs in RMCPdict['BVS']])) 2328 fl.write(' > SAVE :: 100000\n') 2329 fl.write(' > UPDATE :: 100000\n') 2330 for ifx,fxcn in enumerate(RMCPdict['FxCN']): 2331 try: 2332 at1 = Atseq.index(fxcn[0]) 2333 at2 = Atseq.index(fxcn[1]) 2334 except ValueError: 2335 break 2336 fl.write('CSTR%d :: %d %d %.2f %.2f %d %.2d %.6f\n'%(ifx+1,at1,at2,fxcn[2],fxcn[3],fxcn[4],fxcn[5],fxcn[6])) 2337 for iav,avcn in enumerate(RMCPdict['AveCN']): 2338 try: 2339 at1 = Atseq.index(avcn[0]) 2340 at2 = Atseq.index(avcn[1]) 2341 except ValueError: 2342 break 2343 fl.write('CAVSTR%d :: %d %d %.2f %.2f %d %.2d %.6f\n'%(iav+1,at1,at2,avcn[2],avcn[3],avcn[4],avcn[5])) 2304 2344 for File in Files: 2305 2345 if Files[File][0]: … … 2320 2360 fl.write(' > NO_FITTED_SCALE\n') 2321 2361 if 'Xray' in File: 2362 fl.write(' > RECIPROCAL_SPACE_FIT :: 1 3000 1\n') 2363 fl.write(' > RECIPROCAL_SPACE_PARAMETERS :: 1 3000 %.4f\n'%Files[File][1]) 2322 2364 fl.write(' > REAL_SPACE_FIT :: 1 3000 1\n') 2323 2365 fl.write(' > REAL_SPACE_PARAMETERS :: 1 3000 %.4f\n'%Files[File][1]) -
trunk/atmdata.py
r4197 r4254 354 354 'Bk':[2.20, 2.00, 1.70, 0], 355 355 'Cf':[2.20, 2.00, 1.70, 0], 356 } 357 # Bond valence coefficients for X-O, X-F & X-Cl Taken from Brese and O'Keefe, Acta Cryst B, 47, 192-197 (1991). 358 BVSoxid = { 359 'Ac':['Ac+3',], 360 'Ag':['Ag+1',], 361 'Al':['Al+3',], 362 'Am':['Am+3',], 363 'As':['As+5','As+3','As-3',], 364 'Au':['Au+3',], 365 'B' :['B+3',], 366 'Ba':['Ba+2',], 367 'Be':['Be+2',], 368 'Bi':['Bi+5','Bi+3',], 369 'Bk':['Bk+3',], 370 'Br':['Br-1','Br+7',], 371 'C' :['C+4',], 372 'Ca':['Ca+2',], 373 'Cd':['Cd+2',], 374 'Ce':['Ce+4','Ce+3',], 375 'Cf':['Cf+3',], 376 'Cl':['Cl-1','Cl+7',], 377 'Cm':['Cm+3',], 378 'Co':['Co+2','Co+3',], 379 'Cr':['Cr+2','Cr+3','Cr+6',], 380 'Cs':['Cs+1',], 381 'Cu':['Cu+1','Cu+2',], 382 'Dy':['Dy+3',], 383 'Er':['Er+3',], 384 'Eu':['Eu+2','Eu+3',], 385 'F' :['F-1',], 386 'Fe':['Fe+2','Fe+3',], 387 'Ga':['Ga+3',], 388 'Gd':['Gd+3',], 389 'Ge':['Ge+4',], 390 'H' :['H+1','H-1',], 391 'D' :['D+1','D-1',], 392 'Hf':['Hf+4',], 393 'Hg':['Hg+1','Hg+2',], 394 'Ho':['Ho+3',], 395 'I' :['I-1','I+5','I+7',], 396 'In':['In+3',], 397 'Ir':['Ir+5',], 398 'K' :['K+1',], 399 'La':['La+3',], 400 'Li':['Li+1',], 401 'Lu':['Lu+3',], 402 'Mg':['Mg+2',], 403 'Mn':['Mn+2','Mn+3',',Mn+4','Mn+7',], 404 'Mo':['Mo+6',], 405 'N' :['N+5','N+3','N-3',], 406 'Na':['Na+1',], 407 'Nb':['Nb+5',], 408 'Nd':['Nd+3',], 409 'Ni':['Ni+2',], 410 'O' :['O-2',], 411 'Os':['Os+4',], 412 'P' :['P+5','P-3',], 413 'Pb':['Pb+2','Pb+4',], 414 'Pd':['Pd+2',], 415 'Pr':['Pr+3',], 416 'Pt':['Pt+2','Pt+4',], 417 'Pu':['Pu+3',], 418 'Rb':['Rb+1',], 419 'Re':['Re+7',], 420 'Rh':['Rh+3',], 421 'Ru':['Ru+4',], 422 'S' :['S+6','S+4','S-2',], 423 'Sb':['Sb+3','Sb+5',], 424 'Sc':['Sc+3',], 425 'Se':['Se+6','Se+4','Se-2',], 426 'Si':['Si+4',], 427 'Sm':['Sm+3',], 428 'Sn':['Sn+2','Sn+4',], 429 'Sr':['Sr+2',], 430 'Ta':['Ta+5',], 431 'Tb':['Tb+3',], 432 'Te':['Te+6','Te+4','Te-2',], 433 'Th':['Th+4',], 434 'Ti':['Ti+4','Ti+3',], 435 'Tl':['Tl+3','Tl+5',], 436 'Tm':['Tm+3',], 437 'U' :['U+4','U+6',], 438 'V': ['V+5','V+4','V+3',], 439 'W' :['W+6',], 440 'Y' :['Y+3',], 441 'Yb':['Yb+3',], 442 'Zn':['Zn+2',], 443 'Zr':['Zr+4'], 444 } 445 BVScoeff = { 446 'Ac+3':[ 2.24, 2.13, 2.63], 447 'Ag+1':[ 1.805, 1.80, 2.09], 448 'Al+3':[ 1.651, 1.545, 2.03], 449 'Am+3':[ 2.11, 2.00, 2.48], 450 'As+3':[ 1.789, 1.70, 2.16], 451 'As+5':[ 1.767, 1.62, 2.14], 452 'Au+3':[ 1.833, 1.81, 2.17], 453 'B+3':[ 1.371, 1.31, 1.74], 454 'Ba+2':[ 2.29, 2.19, 2.69], 455 'Be+2':[ 1.381, 1.28, 1.76], 456 'Bi+3':[ 2.09, 1.99, 2.48], 457 'Bi+5':[ 2.06, 1.97, 2.44], 458 'Bk+3':[ 2.08, 1.96, 2.46], 459 'Br+7':[ 1.81, 1.72, 2.19], 460 'C+4':[ 1.39, 1.32, 1.76], 461 'Ca+2':[ 1.967, 1.842, 2.37], 462 'Cd+2':[ 1.904, 1.811, 2.23], 463 'Ce+3':[ 2.151, 2.036, 2.52], 464 'Ce+4':[ 2.028, 1.995, 2.41], 465 'Cf+3':[ 2.07, 1.95, 2.45], 466 'Cl+7':[ 1.632, 1.55, 2.00], 467 'Cm+3':[ 2.23, 2.12, 2.62], 468 'Co+2':[ 1.692, 1.64, 2.01], 469 'Co+3':[ 1.70, 1.62, 2.05], 470 'Cr+2':[ 1.73, 1.67, 2.09], 471 'Cr+3':[ 1.724, 1.64, 2.08], 472 'Cr+6':[ 1.794, 1.74, 2.12], 473 'Cs+1':[ 2.42, 2.33, 2.79], 474 'Cu+1':[ 1.593, 1.60, 1.85], 475 'Cu+2':[ 1.679, 1.60, 2.00], 476 'Dy+3':[ 2.036, 1.922, 2.41], 477 'Er+3':[ 2.01, 1.906, 2.39], 478 'Eu+2':[ 2.147, 2.04, 2.53], 479 'Eu+3':[ 2.076, 1.961, 2.455], 480 'Fe+2':[ 1.734, 1.65, 2.06], 481 'Fe+3':[ 1.759, 1.67, 2.09], 482 'Ga+3':[ 1.73, 1.62, 2.07], 483 'Gd+3':[ 2.065, 1.95, 2.445], 484 'Ge+4':[ 1.748, 1.66, 2.14], 485 'H+1':[ 0.95, 0.92, 1.28], 486 'Hf+4':[ 1.923, 1.85, 2.30], 487 'Hg+1':[ 1.90, 1.81, 2.28], 488 'Hg+2':[ 1.93, 1.90, 2.25], 489 'Ho+3':[ 2.023, 1.908, 2.401], 490 'I+5':[ 2.00, 1.90, 2.38], 491 'I+7':[ 1.93, 1.83, 2.31], 492 'In+3':[ 1.902, 1.79, 2.28], 493 'Ir+5':[ 1.916, 1.82, 2.30], 494 'K+1':[ 2.13, 1.99, 2.52], 495 'La+3':[ 2.172, 2.057, 2.545], 496 'Li+1':[ 1.466, 1.36, 1.91], 497 'Lu+3':[ 1.971, 1.876, 2.361], 498 'Mg+2':[ 1.693, 1.581, 2.08], 499 'Mn+2':[ 1.79, 1.698, 2.13], 500 'Mn+3':[ 1.76, 1.66, 2.14], 501 'Mn+4':[ 1.753, 1.71, 2.13], 502 'Mn+7':[ 1.79, 1.72, 2.17], 503 'Mo+6':[ 1.907, 1.81, 2.28], 504 'N+3':[ 1.361, 1.37, 1.75], 505 'N+5':[ 1.432, 1.36, 1.8], 506 'Na+1':[ 1.8, 1.677, 2.15], 507 'Nb+5':[ 1.911, 1.87, 2.27], 508 'Nd+3':[ 2.117, 2.008, 2.492], 509 'Ni+2':[ 1.654, 1.599, 2.02], 510 'Os+4':[ 1.811, 1.72, 2.19], 511 'P+5':[ 1.604, 1.521, 1.99], 512 'Pb+2':[ 2.112, 2.03, 2.53], 513 'Pb+4':[ 2.042, 1.94, 2.43], 514 'Pd+2':[ 1.792, 1.74, 2.05], 515 'Pr+3':[ 2.135, 2.022, 2.5], 516 'Pt+2':[ 1.768, 1.68, 2.05], 517 'Pt+4':[ 1.879, 1.759, 2.17], 518 'Pu+3':[ 2.11, 2.0, 2.48], 519 'Rb+1':[ 2.26, 2.16, 2.65], 520 'Re+7':[ 1.97, 1.86, 2.23], 521 'Rh+3':[ 1.791, 1.71, 2.17], 522 'Ru+4':[ 1.834, 1.74, 2.21], 523 'S+4':[ 1.644, 1.6, 2.02], 524 'S+6':[ 1.624, 1.56, 2.03], 525 'Sb+3':[ 1.973, 1.9, 2.35], 526 'Sb+5':[ 1.942, 1.8, 2.3], 527 'Sc+3':[ 1.849, 1.76, 2.23], 528 'Se+4':[ 1.811, 1.73, 2.22], 529 'Se+6':[ 1.788, 1.69, 2.16], 530 'Si+4':[ 1.624, 1.58, 2.03], 531 'Sm+3':[ 2.088, 1.977, 2.466], 532 'Sn+2':[ 1.984, 1.925, 2.36], 533 'Sn+4':[ 1.905, 1.84, 2.28], 534 'Sr+2':[ 2.118, 2.019, 2.51], 535 'Ta+5':[ 1.92, 1.88, 2.3], 536 'Tb+3':[ 2.049, 1.936, 2.427], 537 'Te+4':[ 1.977, 1.87, 2.37], 538 'Te+6':[ 1.917, 1.82, 2.3], 539 'Th+4':[ 2.167, 2.07, 2.55], 540 'Ti+3':[ 1.791, 1.723, 2.17], 541 'Ti+4':[ 1.815, 1.76, 2.19], 542 'Tl+1':[ 2.172, 2.15, 2.56], 543 'Tl+3':[ 2.003, 1.88, 2.32], 544 'Tm+3':[ 2.0, 1.842, 2.38], 545 'U+4':[ 2.112, 2.034, 2.48], 546 'U+6':[ 2.075, 1.966, 2.46], 547 'V+3':[ 1.743, 1.702, 2.19], 548 'V+4':[ 1.784, 1.7, 2.16], 549 'V+5':[ 1.803, 1.71, 2.16], 550 'W+6':[ 1.921, 1.83, 2.27], 551 'Y+3':[ 2.014, 1.904, 2.4], 552 'Yb+3':[ 1.985, 1.875, 2.371], 553 'Zn+2':[ 1.704, 1.62, 2.01], 554 'Zr+4':[ 1.937, 1.854, 2.33], 555 } 556 #for X-Br-1 I-1 S-2 Se-2 Te-2 N-3 P-3 As-3 H-1 D-1 557 BVSnotOFCl = { 558 'Ag':[ 2.22, 2.38, 2.15, 2.26, 2.51, 1.85, 2.22, 2.30, 1.50, 1.50], 559 'Al':[ 2.20, 2.41, 2.13, 2.27, 2.48, 1.79, 2.24, 2.32, 1.45, 1.45], 560 'As':[ 2.32, 2.54, 2.26, 2.39, 2.61, 1.93, 2.34, 2.41, 1.56, 1.56], 561 'Au':[ 2.12, 2.34, 2.03, 2.18, 2.41, 1.72, 2.14, 2.22, 1.37, 1.37], 562 'B' :[ 1.88, 2.10, 1.82, 1.95, 2.20, 1.47, 1.88, 1.97, 1.14, 1.14], 563 'Ba':[ 2.88, 3.13, 2.77, 2.88, 3.08, 2.47, 2.88, 2.96, 2.22, 2.22], 564 'Be':[ 1.90, 2.10, 1.83, 1.97, 2.21, 1.50, 1.95, 2.00, 1.11, 1.11], 565 'Bi':[ 2.62, 2.84, 2.55, 2.72, 2.87, 2.24, 2.63, 2.72, 1.97, 1.97], 566 'C': [ 1.90, 2.12, 1.82, 1.97, 2.21, 1.47, 1.89, 1.99, 1.10, 1.10], 567 'Ca':[ 2.49, 2.72, 2.45, 2.56, 2.76, 2.14, 2.55, 2.62, 1.83, 1.83], 568 'Cd':[ 2.35, 2.57, 2.29, 2.40, 2.59, 1.96, 2.34, 2.43, 1.66, 1.66], 569 'Ce':[ 2.69, 2.92, 2.62, 2.74, 2.92, 2.34, 2.70, 2.78, 2.04, 2.04], 570 'Co':[ 2.18, 2.37, 2.06, 2.24, 2.46, 1.84, 2.21, 2.28, 1.44, 1.44], 571 'Cr':[ 2.26, 2.45, 2.18, 2.29, 2.52, 1.85, 2.27, 2.34, 1.52, 1.52], 572 'Cs':[ 2.95, 3.18, 2.89, 2.98, 3.16, 2.53, 2.93, 3.04, 2.44, 2.44], 573 'Cu':[ 1.99, 2.16, 1.86, 2.02, 2.27, 1.61, 1.97, 2.08, 1.21, 1.21], 574 'Dy':[ 2.56, 2.77, 2.47, 2.61, 2.80, 2.18, 2.57, 2.64, 1.89, 1.89], 575 'Er':[ 2.54, 2.75, 2.46, 2.59, 2.78, 2.16, 2.55, 2.63, 1.86, 1.86], 576 'Eu':[ 2.61, 2.83, 2.53, 2.66, 2.85, 2.24, 2.62, 2.70, 1.95, 1.95], 577 'Fe':[ 2.26, 2.47, 2.16, 2.28, 2.53, 1.86, 2.27, 2.35, 1.53, 1.53], 578 'Ga':[ 2.24, 2.45, 2.17, 2.30, 2.54, 1.84, 2.26, 2.34, 1.51, 1.51], 579 'Gd':[ 2.60, 2.82, 2.53, 2.65, 2.84, 2.22, 2.61, 2.68, 1.93, 1.93], 580 'Ge':[ 2.30, 2.50, 2.22, 2.35, 2.56, 1.88, 2.32, 2.43, 1.55, 1.55], 581 'H': [ 1.42, 1.61, 1.35, 1.48, 1.78, 1.03, 1.48, 1.52, 0.74, 0.74], 582 'Hf':[ 2.47, 2.68, 2.39, 2.52, 2.72, 2.09, 2.48, 2.56, 1.78, 1.78], 583 'Hg':[ 2.40, 2.59, 2.32, 2.47, 2.61, 2.02, 2.42, 2.50, 1.71, 1.71], 584 'Ho':[ 2.55, 2.77, 2.48, 2.61, 2.80, 2.18, 2.56, 2.64, 1.88, 1.88], 585 'In':[ 2.41, 2.63, 2.36, 2.47, 2.69, 2.03, 2.43, 2.51, 1.72, 1.72], 586 'Ir':[ 2.45, 2.66, 2.38, 2.51, 2.71, 2.06, 2.46, 2.54, 1.76, 1.76], 587 'K': [ 2.66, 2.88, 2.59, 2.72, 2.93, 2.26, 2.64, 2.83, 2.10, 2.10], 588 'La':[ 2.72, 2.93, 2.64, 2.74, 2.94, 2.34, 2.73, 2.80, 2.06, 2.06], 589 'Li':[ 2.02, 2.22, 1.94, 2.09, 2.30, 1.61, 2.04, 2.11, 1.31, 1.31], 590 'Lu':[ 2.50, 2.72, 2.43, 2.56, 2.75, 2.11, 2.51, 2.59, 1.82, 1.82], 591 'Mg':[ 2.28, 2.46, 2.18, 2.32, 2.53, 1.85, 2.29, 2.38, 1.53, 1.53], 592 'Mn':[ 2.26, 2.49, 2.20, 2.32, 2.55, 1.87, 2.24, 2.36, 1.55, 1.55], 593 'Mo':[ 2.43, 2.64, 2.35, 2.49, 2.69, 2.04, 2.44, 2.52, 1.73, 1.73], 594 'Na':[ 2.33, 2.56, 2.28, 2.41, 2.64, 1.93, 2.36, 2.53, 1.68, 1.68], 595 'Nb':[ 2.45, 2.68, 2.37, 2.51, 2.70, 2.06, 2.46, 2.54, 1.75, 1.75], 596 'Nd':[ 2.66, 2.87, 2.59, 2.71, 2.89, 2.30, 2.66, 2.74, 2.00, 2.00], 597 'Ni':[ 2.16, 2.34, 2.04, 2.14, 2.43, 1.75, 2.17, 2.24, 1.40, 1.40], 598 'P': [ 2.15, 2.40, 2.11, 2.26, 2.44, 1.73, 2.19, 2.25, 1.41, 1.41], 599 'Pb':[ 2.64, 2.78, 2.55, 2.67, 2.84, 2.22, 2.64, 2.72, 1.97, 1.97], 600 'Pd':[ 2.19, 2.38, 2.10, 2.22, 2.48, 1.81, 2.22, 2.30, 1.47, 1.47], 601 'Pr':[ 2.67, 2.89, 2.60, 2.72, 2.90, 2.30, 2.68, 2.75, 2.02, 2.02], 602 'Pt':[ 2.18, 2.37, 2.08, 2.19, 2.45, 1.77, 2.19, 2.26, 1.40, 1.40], 603 'Rb':[ 2.78, 3.01, 2.70, 2.81, 3.00, 2.37, 2.76, 2.87, 2.26, 2.26], 604 'Re':[ 2.45, 2.61, 2.37, 2.50, 2.70, 2.06, 2.46, 2.54, 1.75, 1.75], 605 'Rh':[ 2.25, 2.48, 2.15, 2.33, 2.55, 1.88, 2.29, 2.37, 1.55, 1.55], 606 'Ru':[ 2.26, 2.48, 2.16, 2.33, 2.54, 1.88, 2.29, 2.36, 1.61, 1.61], 607 'S': [ 2.17, 2.36, 2.07, 2.21, 2.45, 1.74, 2.15, 2.25, 1.38, 1.38], 608 'Sb':[ 2.50, 2.72, 2.45, 2.57, 2.78, 2.12, 2.52, 2.60, 1.77, 1.77], 609 'Sc':[ 2.38, 2.59, 2.32, 2.44, 2.64, 1.98, 2.40, 2.48, 1.68, 1.68], 610 'Se':[ 2.33, 2.54, 2.25, 2.36, 2.55, 1.93, 2.34, 2.42, 1.54, 1.54], 611 'Si':[ 2.20, 2.41, 2.13, 2.26, 2.49, 1.77, 2.23, 2.31, 1.47, 1.47], 612 'Sm':[ 2.62, 2.84, 2.55, 2.67, 2.86, 2.24, 2.63, 2.70, 1.96, 1.96], 613 'Sn':[ 2.55, 2.76, 2.45, 2.59, 2.76, 2.14, 2.45, 2.62, 1.85, 1.85], 614 'Sr':[ 2.68, 2.88, 2.59, 2.72, 2.87, 2.23, 2.67, 2.76, 2.01, 2.01], 615 'Ta':[ 2.45, 2.66, 2.39, 2.51, 2.70, 2.01, 2.47, 2.55, 1.76, 1.76], 616 'Tb':[ 2.58, 2.80, 2.51, 2.63, 2.82, 2.20, 2.59, 2.66, 1.91, 1.91], 617 'Te':[ 2.53, 2.76, 2.45, 2.53, 2.76, 2.12, 2.52, 2.60, 1.83, 1.83], 618 'Th':[ 2.71, 2.93, 2.64, 2.76, 2.94, 2.34, 2.73, 2.80, 2.07, 2.07], 619 'Ti':[ 2.32, 2.54, 2.24, 2.38, 2.60, 1.93, 2.36, 2.42, 1.61, 1.61], 620 'Tl':[ 2.70, 2.91, 2.63, 2.70, 2.93, 2.29, 2.71, 2.79, 2.05, 2.05], 621 'Tm':[ 2.53, 2.74, 2.45, 2.58, 2.77, 2.14, 2.53, 2.62, 1.85, 1.85], 622 'U': [ 2.63, 2.84, 2.56, 2.70, 2.86, 2.24, 2.64, 2.72, 1.97, 1.97], 623 'V': [ 2.30, 2.51, 2.23, 2.33, 2.57, 1.86, 2.31, 2.39, 1.58, 1.58], 624 'W': [ 2.45, 2.66, 2.39, 2.51, 2.71, 2.06, 2.46, 2.54, 1.76, 1.76], 625 'Y': [ 2.55, 2.77, 2.48, 2.61, 2.80, 2.17, 2.57, 2.64, 1.86, 1.86], 626 'Yb':[ 2.51, 2.72, 2.43, 2.56, 2.76, 2.12, 2.53, 2.59, 1.82, 1.82], 627 'Zn':[ 2.15, 2.36, 2.09, 2.22, 2.45, 1.77, 2.15, 2.24, 1.42, 1.42], 628 'Zr':[ 2.48, 2.69, 2.41, 2.53, 2.67, 2.11, 2.52, 2.57, 1.79, 1.79], 356 629 } 357 630 AtmBlens = {
Note: See TracChangeset
for help on using the changeset viewer.