Ignore:
Timestamp:
Jun 3, 2021 10:12:41 AM (4 years ago)
Author:
vondreele
Message:

change powder peak shape functions to include effect of varying step size.
Impacts scale factors & peak intensities.
New notification system invoked to let users know of change.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/GSASIIstrMath.py

    r4915 r4919  
    32063206    yb,Histogram['sumBk'] = G2pwd.getBackground(hfx,parmDict,bakType,calcControls[hfx+'histType'],x,fixback)
    32073207    yc = np.zeros_like(yb)
    3208     cw = np.diff(ma.getdata(x))
    3209     cw = np.append(cw,cw[-1])
     3208    # cw = np.diff(ma.getdata(x))
     3209    # cw = np.append(cw,cw[-1])
    32103210       
    32113211    if 'C' in calcControls[hfx+'histType']:   
     
    33113311                    profArgs[iref%ncores].append((refl[5+im],refl,iBeg,iFin,1.))
    33123312                else:
    3313                     yc[iBeg:iFin] += refl[11+im]*refl[9+im]*G2pwd.getFCJVoigt3(refl[5+im],refl[6+im],refl[7+im],shl,ma.getdata(x[iBeg:iFin]))    #>90% of time spent here
     3313                    fp = G2pwd.getFCJVoigt3(refl[5+im],refl[6+im],refl[7+im],shl,ma.getdata(x[iBeg:iFin]))[0]
     3314                    yc[iBeg:iFin] += refl[11+im]*refl[9+im]*fp   #>90% of time spent here
    33143315                if Ka2:
    33153316                    pos2 = refl[5+im]+lamRatio*tand(refl[5+im]/2.0)       # + 360/pi * Dlam/lam * tan(th)
     
    33263327                        profArgs[iref%ncores].append((pos2,refl,iBeg,iFin,kRatio))
    33273328                    else:
    3328                         yc[iBeg:iFin] += refl[11+im]*refl[9+im]*kRatio*G2pwd.getFCJVoigt3(pos2,refl[6+im],refl[7+im],shl,ma.getdata(x[iBeg:iFin]))        #and here
     3329                        fp2 = G2pwd.getFCJVoigt3(pos2,refl[6+im],refl[7+im],shl,ma.getdata(x[iBeg:iFin]))[0]
     3330                        yc[iBeg:iFin] += refl[11+im]*refl[9+im]*kRatio*fp2       #and here
    33293331        elif 'B' in calcControls[hfx+'histType']:
    33303332            for iref,refl in enumerate(refDict['RefList']):
     
    33643366                    profArgs[iref%ncores].append((refl[5+im],refl,iBeg,iFin,1.))
    33653367                else:
    3366                     yc[iBeg:iFin] += refl[11+im]*refl[9+im]*G2pwd.getEpsVoigt(refl[5+im],refl[12+im],refl[13+im],refl[6+im]/1.e4,refl[7+im]/100.,ma.getdata(x[iBeg:iFin]))
     3368                    fp = G2pwd.getEpsVoigt(refl[5+im],refl[12+im],refl[13+im],refl[6+im]/1.e4,refl[7+im]/100.,ma.getdata(x[iBeg:iFin]))[0]
     3369                    yc[iBeg:iFin] += refl[11+im]*refl[9+im]*fp          #*cw[iBeg:iFin]
    33673370        elif 'T' in calcControls[hfx+'histType']:
    33683371            for iref,refl in enumerate(refDict['RefList']):
     
    34023405                    profArgs[iref%ncores].append((refl[5+im],refl,iBeg,iFin))
    34033406                else:
    3404                     yc[iBeg:iFin] += refl[11+im]*refl[9+im]*G2pwd.getEpsVoigt(refl[5+im],refl[12+im],refl[13+im],refl[6+im],refl[7+im],ma.getdata(x[iBeg:iFin]))/cw[iBeg:iFin]
     3407                    fp = G2pwd.getEpsVoigt(refl[5+im],refl[12+im],refl[13+im],refl[6+im],refl[7+im],ma.getdata(x[iBeg:iFin]))[0]
     3408                    yc[iBeg:iFin] += refl[11+im]*refl[9+im]*fp
    34053409#        print 'profile calc time: %.3fs'%(time.time()-time0)
    34063410        if useMP and 'C' in calcControls[hfx+'histType']:
     
    34343438    if len(args) >= 11: tprc=args[10]
    34353439    if len(args) >= 12: histogram=args[11]
     3440   
    34363441    def cellVaryDerv(pfx,SGData,dpdA):
    34373442        if SGData['SGLaue'] in ['-1',]:
     
    34883493    if hfx+'BF mult' in varylist:
    34893494        dMdv[varylist.index(hfx+'BF mult')] += dMdfb
    3490     cw = np.diff(ma.getdata(x))
    3491     cw = np.append(cw,cw[-1])
     3495    # cw = np.diff(ma.getdata(x))
     3496    # cw = np.append(cw,cw[-1])
    34923497    Ka2 = False #also for TOF!
    34933498    if 'C' in calcControls[hfx+'histType']:   
     
    35873592                dMdipk = G2pwd.getdFCJVoigt3(refl[5+im],refl[6+im],refl[7+im],shl,ma.getdata(x[iBeg:iFin]))
    35883593                for i in range(5):
    3589                     dMdpk[i] += 100.*cw[iBeg:iFin]*refl[11+im]*refl[9+im]*dMdipk[i]
     3594                    dMdpk[i] += refl[11+im]*refl[9+im]*dMdipk[i]
    35903595                dervDict = {'int':dMdpk[0],'pos':dMdpk[1],'sig':dMdpk[2],'gam':dMdpk[3],'shl':dMdpk[4],'L1/L2':np.zeros_like(dMdpk[0])}
    35913596                if Ka2:
     
    35983603                        dMdipk2 = G2pwd.getdFCJVoigt3(pos2,refl[6+im],refl[7+im],shl,ma.getdata(x[iBeg2:iFin2]))
    35993604                        for i in range(5):
    3600                             dMdpk2[i] = 100.*cw[iBeg2:iFin2]*refl[11+im]*refl[9+im]*kRatio*dMdipk2[i]
    3601                         dMdpk2[5] = 100.*cw[iBeg2:iFin2]*refl[11+im]*dMdipk2[0]
     3605                            dMdpk2[i] = refl[11+im]*refl[9+im]*kRatio*dMdipk2[i]
     3606                        dMdpk2[5] = refl[11+im]*dMdipk2[0]
    36023607                        dervDict2 = {'int':dMdpk2[0],'pos':dMdpk2[1],'sig':dMdpk2[2],'gam':dMdpk2[3],'shl':dMdpk2[4],'L1/L2':dMdpk2[5]*refl[9]}
    36033608            elif 'T' in calcControls[hfx+'histType']:
     
    36193624                dMdipk = G2pwd.getdEpsVoigt(refl[5+im],refl[12+im],refl[13+im],refl[6+im]/1.e4,refl[7+im]/100.,ma.getdata(x[iBeg:iFin]))
    36203625                for i in range(6):
    3621                     dMdpk[i] = cw[iBeg:iFin]*refl[11+im]*refl[9+im]*dMdipk[i]
     3626                    dMdpk[i] = refl[11+im]*refl[9+im]*dMdipk[i]
    36223627                dervDict = {'int':dMdpk[0],'pos':dMdpk[1],'alp':dMdpk[2],'bet':dMdpk[3],'sig':dMdpk[4]/1.e4,'gam':dMdpk[5]/100.}           
    36233628            if Phase['General'].get('doPawley'):
Note: See TracChangeset for help on using the changeset viewer.