Changeset 744


Ignore:
Timestamp:
Aug 29, 2012 6:48:02 PM (10 years ago)
Author:
vondreele
Message:

a mod to Pawley estimate
fix wt fr calc issues
address memory issues

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r738 r744  
    38433843                    FWHM = max(0.001,G2pwd.getFWHM(pos,Inst))/2.
    38443844                    dx = xdata[0][indx+1]-xdata[0][indx]
    3845                     ref[6] = FWHM*xdata[1][indx]/dx
     3845                    ref[6] = FWHM*xdata[1][indx]*cosd(pos/2.)**3/dx
    38463846                    Lorenz = 1./(2.*sind(xdata[0][indx]/2.)**2*cosd(xdata[0][indx]/2.))           #Lorentz correction
    38473847                    pola,dIdPola = G2pwd.Polarization(Inst['Polariz.'],xdata[0][indx],Inst['Azimuth'])
  • trunk/GSASIIstruct.py

    r743 r744  
    954954            print >>pFile,sigstr
    955955           
     956        General['Mass'] = 0.
    956957        if Phase['General'].get('doPawley'):
    957958            pawleyRef = Phase['Pawley ref']
     
    965966        else:
    966967            atomsSig = {}
    967             General['Mass'] = 0.
    968968            if General['Type'] == 'nuclear':
    969969                for i,at in enumerate(Atoms):
     
    26522652                    try:
    26532653                        pInd =pfx+'PWLref:%d'%(pawleyLookup[pfx+'%d,%d,%d'%(h,k,l)])
    2654 #                        parmDict[pInd] = max(parmDict[pInd]/2.,parmDict[pInd])       
     2654                        parmDict[pInd] = max(parmDict[pInd]/2.,parmDict[pInd])       
    26552655                        refl[9] = parmDict[pInd]
    26562656                    except KeyError:
     
    28052805                        dMdpw[iBeg:iFin] = dervDict['int']/refl[9]
    28062806                        if parmDict[pIdx] < 0.:
    2807                             dMdpw[iBeg:iFin] = dervDict['int']/refl[9]
     2807                            dMdpw[iBeg:iFin] = 2.*dervDict['int']/refl[9]
    28082808                        if Ka2:
    28092809                            dMdpw[iBeg2:iFin2] += dervDict2['int']/refl[9]
    28102810                            if parmDict[pIdx] < 0.:
    2811                                 dMdpw[iBeg2:iFin2] += dervDict['int']/refl[9]
     2811                                dMdpw[iBeg2:iFin2] += 2.*dervDict['int']/refl[9]
    28122812                        dMdv[idx] = dMdpw
    28132813                    except: # ValueError:
     
    30113011            xB = np.searchsorted(x,Limits[0])
    30123012            xF = np.searchsorted(x,Limits[1])
    3013             dMdvh = np.sqrt(W[xB:xF])*getPowderProfileDerv(parmdict,x[xB:xF],
     3013            dMdvh = getPowderProfileDerv(parmdict,x[xB:xF],
    30143014                varylist,Histogram,Phases,calcControls,pawleyLookup)
     3015            Wt = np.sqrt(W[xB:xF])[np.newaxis,:]
     3016            Dy = dy[xB:xF][np.newaxis,:]
     3017            print 'Jacobian size: ',dMdvh.shape
     3018            dMdvh *= Wt
    30153019            if dlg:
    30163020                dlg.Update(Histogram['wR'],newmsg='Hessian for histogram %d\nAll data Rw=%8.3f%s'%(hId,Histogram['wR'],'%'))[0]
    30173021            if len(Hess):
    3018                 Vec += np.sum(dMdvh*np.sqrt(W[xB:xF])*dy[xB:xF],axis=1)
    30193022                Hess += np.inner(dMdvh,dMdvh)
     3023                dMdvh *= Wt*Dy
     3024                Vec += np.sum(dMdvh,axis=1)
    30203025            else:
    3021                 Vec = np.sum(dMdvh*np.sqrt(W[xB:xF])*dy[xB:xF],axis=1)
    30223026                Hess = np.inner(dMdvh,dMdvh)
     3027                dMdvh *= Wt*Dy
     3028                Vec = np.sum(dMdvh,axis=1)
    30233029        elif 'HKLF' in histogram[:4]:
    30243030            Histogram = Histograms[histogram]
     
    31843190        GoOn = dlg.Update(Rw,newmsg='%s%8.3f%s'%('All data Rw =',Rw,'%'))[0]
    31853191        if not GoOn:
    3186             parmDict['saved values'] = values
     3192            parmdict['saved values'] = values
    31873193            raise Exception         #Abort!!
    31883194#    pFunc = penaltyFxn(parmdict,varylist)
Note: See TracChangeset for help on using the changeset viewer.