Changeset 5005
- Timestamp:
- Jul 30, 2021 11:59:01 AM (18 months ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIobj.py
r4960 r5005 3307 3307 'Container Bkg.':{'Name':'','Mult':-1.0},'ElList':ElList, 3308 3308 'Geometry':'Cylinder','Diam':1.0,'Pack':0.50,'Form Vol':10.0*numAtm,'Flat Bkg':FltBkg, 3309 'DetType':'Area detector','ObliqCoeff':0. 2,'Ruland':0.025,'QScaleLim':Qlimits,3309 'DetType':'Area detector','ObliqCoeff':0.3,'Ruland':0.025,'QScaleLim':Qlimits, 3310 3310 'Lorch':False,'BackRatio':0.0,'Rmax':100.,'noRing':False,'IofQmin':1.0,'Rmin':1.0, 3311 3311 'I(Q)':[],'S(Q)':[],'F(Q)':[],'G(R)':[]} -
trunk/GSASIIpwd.py
r5004 r5005 241 241 'currently assumes detector is normal to beam' 242 242 if ObCoeff: 243 return (1.-ObCoeff)/(1.0-np.exp(np.log(ObCoeff)/npcosd(Tth))) 243 K = (1.-ObCoeff)/(1.0-np.exp(np.log(ObCoeff)/npcosd(Tth))) 244 return K 244 245 else: 245 246 return 1.0 … … 329 330 IofQ[1][1] /= Absorb(data['Geometry'],MuR,Tth) 330 331 IofQ[1][1] /= Polarization(inst['Polariz.'][1],Tth,Azm=inst['Azimuth'][1])[0] 331 if data['DetType'] == ' Image plate':332 if data['DetType'] == 'Area detector': 332 333 IofQ[1][1] *= Oblique(data['ObliqCoeff'],Tth) 333 334 elif 'T' in inst['Type'][0]: #neutron TOF normalized data - needs wavelength dependent absorption … … 416 417 xydata['GofR'][1][0] = R 417 418 xydata['gofr'][1][0] = R 418 GR = -dq*np.imag(fft.fft(xydata['FofQ'][1][1],mul*nR)[:nR]) 419 GR = -dq*np.imag(fft.fft(xydata['FofQ'][1][1],mul*nR)[:nR])*data.get('GR Scale',1.0) 419 420 xydata['GofR'][1][1] = GR 420 421 gr = GR/(np.pi*R) … … 561 562 data['Flat Bkg'],data['BackRatio'],data['Ruland'],rms)) 562 563 if data['Sample Bkg.'].get('Refine',False): 563 res = opt.minimize(Min,xstart,bounds=([0.01,1 ],[1.2*bakMul,0.8*bakMul]),564 res = opt.minimize(Min,xstart,bounds=([0.01,1.],[1.2*bakMul,0.8*bakMul]), 564 565 method='L-BFGS-B',options={'maxiter':maxCycles},tol=0.001) 565 566 else: 566 res = opt.minimize(Min,xstart,bounds=([0,None],[0,1],[0.01,1 ]),567 res = opt.minimize(Min,xstart,bounds=([0,None],[0,1],[0.01,1.]), 567 568 method='L-BFGS-B',options={'maxiter':maxCycles},tol=0.001) 568 569 Done(res['x']) … … 596 597 Data['Flat Bkg'] = F*BkgMax 597 598 Data['BackRatio'] = B 598 Data['Ruland'] = R /10.599 Data['Ruland'] = R 599 600 CalcPDF(Data,inst,limits,xydata) 600 601 # test low r computation … … 608 609 ''' 609 610 if data['Sample Bkg.'].get('Refine',False): 610 return [max( 10*data['Ruland'],.05),data['Sample']['Mult']]611 return [max(data['Ruland'],.05),data['Sample']['Mult']] 611 612 try: 612 613 F = data['Flat Bkg']/BkgMax 613 614 except: 614 615 F = 0 615 return [F,data['BackRatio'],max( 10*data['Ruland'],.05)]616 return [F,data['BackRatio'],max(data['Ruland'],.05)] 616 617 def SetFinalVals(arg): 617 618 '''Set the 'Flat Bkg', 'BackRatio' & 'Ruland' values from the … … 625 626 data['Flat Bkg'] = F*BkgMax 626 627 data['BackRatio'] = B 627 data['Ruland'] = R /10.628 data['Ruland'] = R 628 629 CalcPDF(data,inst,limits,xydata) 629 630 EvalLowPDF(GetCurrentVals()) … … 1122 1123 if 'C' in dataType: 1123 1124 Df,dFdp,dFds,dFdg,x = getdFCJVoigt3(pkP,pkS,pkG,.002,xdata[iBeg:iFin]) 1124 dydpk[4*iD][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFdp 1125 dydpk[4*iD+1][iBeg:iFin] += 100.*cw[iBeg:iFin]*Df 1126 dydpk[4*iD+2][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFds 1127 dydpk[4*iD+3][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFdg 1125 # dydpk[4*iD][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFdp 1126 # dydpk[4*iD+1][iBeg:iFin] += 100.*cw[iBeg:iFin]*Df 1127 # dydpk[4*iD+2][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFds 1128 # dydpk[4*iD+3][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFdg 1129 dydpk[4*iD][iBeg:iFin] += 1000.*pkI*dFdp 1130 dydpk[4*iD+1][iBeg:iFin] += 1000.*Df 1131 dydpk[4*iD+2][iBeg:iFin] += 1000.*pkI*dFds 1132 dydpk[4*iD+3][iBeg:iFin] += 1000.*pkI*dFdg 1128 1133 else: #'T'OF 1129 1134 Df,dFdp,x,x,dFds,dFdg = getdEpsVoigt(pkP,1.,1.,pkS,pkG,xdata[iBeg:iFin]) -
trunk/GSASIIpwdGUI.py
r4999 r5005 7191 7191 wx.BeginBusyCursor() 7192 7192 try: 7193 data['Ruland'] = 0.01 #always set small to start 7193 7194 OptimizePDF(G2frame,data) 7194 7195 finally: … … 7199 7200 def AfterChangeNoRefresh(invalid,value,tc): 7200 7201 if invalid: return 7202 if tc.GetId() in Indx: 7203 Indx[tc.GetId()][0].SetValue(int(value*Indx[tc.GetId()][1])) 7201 7204 wx.CallAfter(OnComputePDF,None) 7202 7205 … … 7219 7222 7220 7223 def OnRulSlider(event): 7221 value = int(rulandSldr.GetValue())/100 0.7224 value = int(rulandSldr.GetValue())/100. 7222 7225 data['Ruland'] = max(0.001,value) 7223 7226 rulandWdt.SetValue(data['Ruland']) 7227 wx.CallAfter(OnComputePDF,None) 7228 7229 def OnGRscaleSlider(event): 7230 value = int(gscaleSldr.GetValue())/50. 7231 data['GR Scale'] = max(0.1,min(2.,value)) 7232 gscale.SetValue(data['GR Scale']) 7224 7233 wx.CallAfter(OnComputePDF,None) 7225 7234 … … 7244 7253 data['noRing'] = not data['noRing'] 7245 7254 wx.CallAfter(OnComputePDF,None) 7246 7255 7256 Indx = {} 7247 7257 sfgSizer = wx.BoxSizer(wx.VERTICAL) 7248 7258 sqBox = wx.BoxSizer(wx.HORIZONTAL) … … 7291 7301 backVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'BackRatio',nDig=(10,3),xmin=0.0,xmax=1.0, 7292 7302 typeHint=float,OnLeave=AfterChangeNoRefresh) 7303 Indx[backVal.GetId()] = [backSldr,100] 7293 7304 bkBox.Add(backVal,0,WACV) 7294 7305 sfgSizer.Add(bkBox,0,wx.EXPAND) … … 7298 7309 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' Ruland width: '),0,WACV) 7299 7310 rulandSldr = wx.Slider(parent=G2frame.dataWindow,style=wx.SL_HORIZONTAL, 7300 value=int(100 0*data['Ruland']))7311 value=int(100*data['Ruland'])) 7301 7312 sqBox.Add(rulandSldr,1,wx.EXPAND) 7302 7313 rulandSldr.Bind(wx.EVT_SLIDER, OnRulSlider) 7303 7314 rulandWdt = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Ruland',nDig=(10,3),xmin=0.001,xmax=1.0, 7304 7315 typeHint=float,OnLeave=AfterChangeNoRefresh) 7316 Indx[rulandWdt.GetId()] = [rulandSldr,100] 7305 7317 sqBox.Add(rulandWdt,0,WACV) 7306 7318 sfgSizer.Add(sqBox,0,wx.EXPAND) 7307 7319 7320 gscaleBox = wx.BoxSizer(wx.HORIZONTAL) 7321 gscaleBox.Add(wx.StaticText(G2frame.dataWindow,label=' G(R) scale: '),0,WACV) 7322 gscaleSldr = wx.Slider(parent=G2frame.dataWindow,style=wx.SL_HORIZONTAL, 7323 value=int(50*data['GR Scale'])) 7324 gscaleBox.Add(gscaleSldr,1,wx.EXPAND) 7325 gscaleSldr.Bind(wx.EVT_SLIDER, OnGRscaleSlider) 7326 gscale = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'GR Scale',nDig=(10,3),xmin=0.1,xmax=2., 7327 typeHint=float,OnLeave=AfterChangeNoRefresh) 7328 Indx[gscale.GetId()] = [gscaleSldr,50] 7329 gscaleBox.Add(gscale,0,WACV) 7330 sfgSizer.Add(gscaleBox,0,wx.EXPAND) 7331 7308 7332 sqBox = wx.BoxSizer(wx.HORIZONTAL) 7309 7333 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' Scaling Q-range: '),0,WACV) … … 7504 7528 G2plt.PlotISFG(G2frame,data,newPlot=True,plotType='S(Q)') 7505 7529 G2plt.PlotISFG(G2frame,data,newPlot=True,plotType='F(Q)') 7530 G2plt.PlotISFG(G2frame,data,newPlot=True,plotType='g(r)') 7506 7531 G2plt.PlotISFG(G2frame,data,newPlot=True,plotType='G(R)') 7507 G2plt.PlotISFG(G2frame,data,newPlot=True,plotType='g(r)')7508 7532 else: 7509 7533 G2plt.PlotISFG(G2frame,data,newPlot=False) … … 7623 7647 if 'diffMult' not in data: 7624 7648 data['diffMult'] = 1.0 7649 if 'GR Scale' not in data: 7650 data['GR Scale'] = 1.0 7625 7651 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.PDFMenu) 7626 7652 if powId:
Note: See TracChangeset
for help on using the changeset viewer.