Changeset 636


Ignore:
Timestamp:
May 28, 2012 10:16:43 AM (9 years ago)
Author:
vondreele
Message:

remove self.PWDR - not used
remove phase data plots & cell refine flag for only HKLF data
implement refine Jacobian for HKLF data - still needs refine Hessian

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r635 r636  
    863863        self.ImageZ = []
    864864        self.Integrate = 0
    865         self.Pwdr = False
    866865        self.imageDefault = {}
    867866        self.Sngl = 0
  • trunk/GSASIIphsGUI.py

    r630 r636  
    394394        Map = generalData['Map']
    395395        Flip = generalData['Flip'] 
     396        PWDR = any(['PWDR' in item for item in data['Histograms'].keys()])
    396397       
    397398        def NameSizer():
     
    559560                    useGUI = cellGUI
    560561            cellSizer = wx.FlexGridSizer(2,useGUI[1]+1,5,5)
    561             cellRef = wx.CheckBox(dataDisplay,-1,label='Refine unit cell:')
    562             cellSizer.Add(cellRef,0,wx.ALIGN_CENTER_VERTICAL)
    563             cellRef.Bind(wx.EVT_CHECKBOX, OnCellRef)
    564             cellRef.SetValue(cell[0])
     562            if PWDR:
     563                cellRef = wx.CheckBox(dataDisplay,-1,label='Refine unit cell:')
     564                cellSizer.Add(cellRef,0,wx.ALIGN_CENTER_VERTICAL)
     565                cellRef.Bind(wx.EVT_CHECKBOX, OnCellRef)
     566                cellRef.SetValue(cell[0])
    565567            cellList = []
    566568            for txt,fmt,ifEdit,Id in useGUI[2]:
     
    26692671        keyList = UseList.keys()
    26702672        keyList.sort()
     2673        PWDR = any(['PWDR' in item for item in keyList])
    26712674        Indx = {}
    26722675       
     
    32883291       
    32893292        def SCExtSizer():
    3290 #'Extinction':['Lorentzian','Secondary Type I',{'Tbar':0.20,'Eg':[0.0,False],'Es':[0.0,False],'Ep':[0.0,False]},]}
    32913293            extSizer = wx.BoxSizer(wx.VERTICAL)
    32923294            typeSizer = wx.BoxSizer(wx.HORIZONTAL)           
     
    33433345        mainSizer = wx.BoxSizer(wx.VERTICAL)
    33443346        mainSizer.Add(wx.StaticText(DData,-1,'Histogram data for '+PhaseName+':'),0,wx.ALIGN_CENTER_VERTICAL)
    3345         mainSizer.Add(PlotSizer())           
     3347        if PWDR:
     3348            mainSizer.Add(PlotSizer())           
    33463349           
    33473350        for item in keyList:
  • trunk/GSASIIplot.py

    r630 r636  
    784784    else:
    785785        Page.canvas.draw()
    786     G2frame.Pwdr = True
     786#    G2frame.Pwdr = True
    787787   
    788788################################################################################
  • trunk/GSASIIstruct.py

    r635 r636  
    28512851            dMdvh = np.sqrt(w[xB:xF])*getPowderProfileDerv(parmdict,x[xB:xF],
    28522852                varylist,Histogram,Phases,calcControls,pawleyLookup)
    2853             if len(dMdv):
    2854                 dMdv = np.concatenate((dMdv.T,dMdvh.T)).T
    2855             else:
    2856                 dMdv = dMdvh
    28572853        elif 'HKLF' in histogram[:4]:
    28582854            Histogram = Histograms[histogram]
     2855            nobs = Histogram['Nobs']
     2856            phase = Histogram['Reflection Lists']
     2857            Phase = Phases[phase]
    28592858            hId = Histogram['hId']
    28602859            hfx = ':%d:'%(hId)
     2860            pfx = '%d::'%(Phase['pId'])
     2861            phfx = '%d:%d:'%(Phase['pId'],hId)
     2862            SGData = Phase['General']['SGData']
     2863            A = [parmdict[pfx+'A%d'%(i)] for i in range(6)]
     2864            G,g = G2lat.A2Gmat(A)       #recip & real metric tensors
     2865            refList = Histogram['Data']
     2866            dFdvDict = StructureFactorDerv(refList,G,hfx,pfx,SGData,calcControls,parmdict)
     2867            dMdvh = np.zeros((len(varylist),len(refList)))
     2868            for iref,ref in enumerate(refList):
     2869                if ref[6] > 0:
     2870                    if calcControls['F**2']:
     2871                        if ref[5]/ref[6] >= calcControls['minF/sig']:
     2872                            for j,var in enumerate(varylist):
     2873                                if var in dFdvDict:
     2874                                    dMdvh[j][iref] = dFdvDict[var][iref]/ref[6]
     2875                            if phfx+'Scale' in varylist:
     2876                                dMdvh[varylist.index(phfx+'Scale')][iref] = ref[9]/ref[6]
     2877                    else:
     2878                        Fo = np.sqrt(ref[5])
     2879                        Fc = np.sqrt(ref[7])
     2880                        sig = ref[6]/(2.0*Fo)
     2881                        if Fo/sig >= calcControls['minF/sig']:
     2882                            for j,var in enumerate(varylist):
     2883                                if var in dFdvDict:
     2884                                    dMdvh[j][iref] = dFdvDict[var][iref]/ref[6]
     2885                            if phfx+'Scale' in varylist:
     2886                                dMdvh[varylist.index(phfx+'Scale')][iref] = ref[9]/ref[6]                           
     2887        else:
     2888            continue        #skip non-histogram entries
     2889        if len(dMdv):
     2890            dMdv = np.concatenate((dMdv.T,dMdvh.T)).T
     2891        else:
     2892            dMdv = dMdvh
    28612893           
    28622894#    dpdv = penaltyDeriv(parmdict,varylist)
     
    28942926        elif 'HKLF' in histogram[:4]:
    28952927            Histogram = Histograms[histogram]
     2928            nobs = Histogram['Nobs']
    28962929            phase = Histogram['Reflection Lists']
    28972930            Phase = Phases[phase]
     
    29042937            G,g = G2lat.A2Gmat(A)       #recip & real metric tensors
    29052938            refList = Histogram['Data']
    2906             Histogram['Nobs'] = len(refList)
    29072939            dFdvDict = StructureFactorDerv(refList,G,hfx,pfx,SGData,calcControls,parmdict)
    2908             df = np.zeros(len(refList))
    2909             for i,ref in enumerate(refList):
     2940            dMdvh = np.zeros((len(varylist),len(refList)))
     2941            for iref,ref in enumerate(refList):
    29102942                if ref[6] > 0:
    2911                     Nobs += 1
    2912                     ref[7] = parmdict[phfx+'Scale']*ref[9]
    2913                     ref[8] = ref[5]/parmdict[phfx+'Scale']
    2914                     df[i] = (ref[5]-ref[7])/ref[6]
    2915                     sumwYo += (ref[5]/ref[6])**2
    2916             M = np.concatenate((M,df))
     2943                    if calcControls['F**2']:
     2944                        if ref[5]/ref[6] >= calcControls['minF/sig']:
     2945                            for j,var in enumerate(varylist):
     2946                                if var in dFdvDict:
     2947                                    dMdvh[j][iref] = dFdvDict[var][iref]/ref[6]
     2948                            if phfx+'Scale' in varylist:
     2949                                dMdvh[varylist.index(phfx+'Scale')][iref] = ref[9]/ref[6]
     2950                    else:
     2951                        Fo = np.sqrt(ref[5])
     2952                        Fc = np.sqrt(ref[7])
     2953                        sig = ref[6]/(2.0*Fo)
     2954                        if Fo/sig >= calcControls['minF/sig']:
     2955                            for j,var in enumerate(varylist):
     2956                                if var in dFdvDict:
     2957                                    dMdvh[j][iref] = dFdvDict[var][iref]/ref[6]
     2958                            if phfx+'Scale' in varylist:
     2959                                dMdvh[varylist.index(phfx+'Scale')][iref] = ref[9]/ref[6]                           
     2960        else:
     2961            continue        #skip non-histogram entries
    29172962
    29182963#    dpdv = penaltyDeriv(parmdict,varylist)
     
    29693014            G,g = G2lat.A2Gmat(A)       #recip & real metric tensors
    29703015            refList = Histogram['Data']
    2971             Histogram['Nobs'] = len(refList)
    29723016            refList = StructureFactor(refList,G,hfx,pfx,SGData,calcControls,parmdict)
    29733017            df = np.zeros(len(refList))
     
    29773021            sumdF = 0
    29783022            sumdF2 = 0
     3023            nobs = 0
    29793024            for i,ref in enumerate(refList):
    2980                 if ref[6] > 0 and ref[5] > 0:
     3025                if ref[6] > 0:
    29813026                    ref[7] = parmdict[phfx+'Scale']*ref[9]
    29823027                    ref[8] = ref[5]/parmdict[phfx+'Scale']
     
    29893034                            sumdF += abs(Fo-np.sqrt(ref[7]))
    29903035                            sumdF2 += abs(ref[5]-ref[7])
    2991                             Nobs += 1
     3036                            nobs += 1
    29923037                            df[i] = -(ref[5]-ref[7])/ref[6]
    29933038                            sumwYo += (ref[5]/ref[6])**2
     
    30013046                            sumdF += abs(Fo-Fc)
    30023047                            sumdF2 += abs(ref[5]-ref[7])
    3003                             Nobs += 1
     3048                            nobs += 1
    30043049                            df[i] = (Fo-Fc)/sig
    30053050                            sumwYo += (Fo/sig)**2
     3051            Histogram['Nobs'] = nobs
    30063052            Histogram['sumwYo'] = sumwYo
    30073053            SumwYo += sumwYo
     
    30093055            Histogram[phfx+'Rf'] = 100.*sumdF/sumFo
    30103056            Histogram[phfx+'Rf^2'] = 100.*sumdF2/sumFo2
    3011             Histogram[phfx+'Nref'] = Nobs
     3057            Histogram[phfx+'Nref'] = nobs
     3058            Nobs += nobs
    30123059            if dlg:
    30133060                dlg.Update(Histogram['wR'],newmsg='For histogram %d Rw=%8.3f%s'%(hId,Histogram['wR'],'%'))[0]
Note: See TracChangeset for help on using the changeset viewer.