Changeset 2130


Ignore:
Timestamp:
Jan 21, 2016 1:56:45 PM (6 years ago)
Author:
vondreele
Message:

fix refinement with excluded regions & correctly show reflection list & R values

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIpwdGUI.py

    r2124 r2130  
    32403240#                        G2frame.refTable[phaseName].SetCellBackgroundColour(r,7+im,wx.WHITE)
    32413241                else:   #PWDR
    3242                     if float(G2frame.refTable[phaseName].GetCellValue(r,12+im+it)) < 0.:
    3243                         G2frame.refTable[phaseName].SetCellBackgroundColour(r,12+im+it,wx.RED)
     3242                    if float(G2frame.refTable[phaseName].GetCellValue(r,12+im+itof)) < 0.:
     3243                        G2frame.refTable[phaseName].SetCellBackgroundColour(r,12+im+itof,wx.RED)
     3244                    if float(G2frame.refTable[phaseName].GetCellValue(r,3+im)) < 0:
     3245                        G2frame.refTable[phaseName].SetCellBackgroundColour(r,8+im,wx.RED)
     3246                       
    32443247                                                 
    32453248        G2frame.RefList = phaseName
     
    32483251            Status.SetStatusText('abs(DF)/sig > 10 red; > 3 yellow; twin < 0 (user rejected) red; twin=0 (sp. gp. absent) red')
    32493252        else:
    3250             Status.SetStatusText('Prfo < 0. in red')
    3251         it = 0
     3253            Status.SetStatusText('Prfo < 0. in red; if excluded Fosq in red & mul < 0')
     3254        itof = 0
    32523255        if HKLF:
    32533256            im = data[1].get('Super',0)
    32543257        else:
    32553258            if 'T' in data[phaseName].get('Type',''):
    3256                 it = 3
     3259                itof = 3
    32573260            im = data[phaseName].get('Super',0)
    32583261        # has this table already been displayed?
     
    32633266            G2frame.refTable[phaseName].SetMargins(0,0)
    32643267            G2frame.refTable[phaseName].AutoSizeColumns(False)
    3265             setBackgroundColors(im,it)
     3268            setBackgroundColors(im,itof)
    32663269        # raise the tab (needed for 1st use and from OnSelectPhase)
    32673270        for PageNum in range(G2frame.dataDisplay.GetPageCount()):
  • trunk/GSASIIstrMath.py

    r2123 r2130  
    31023102                    kRatio = parmDict[hfx+'I(L2)/I(L1)']
    31033103            x,y,w,yc,yb,yd = Histogram['Data']
     3104            xMask = ma.getmaskarray(x)
    31043105            xB = np.searchsorted(x,Limits[0])
    31053106            xF = np.searchsorted(x,Limits[1])
     
    31243125                sumdFsq = 0.0
    31253126                sumInt = 0.0
     3127                nExcl = 0
    31263128                for refl in refDict['RefList']:
    31273129                    if 'C' in calcControls[hfx+'histType']:
     
    31323134                        iFin2 = iFin
    31333135                        if not iBeg+iFin:       #peak below low limit - skip peak
     3136                            continue
     3137                        if ma.all(xMask[iBeg:iFin]):    #peak entirely masked - skip peak
     3138                            refl[3+im] *= -1
     3139                            nExcl += 1
    31343140                            continue
    31353141                        elif not iBeg-iFin:     #peak above high limit - done
     
    31533159                        iBeg = max(xB,np.searchsorted(x,refl[5+im]-fmin))
    31543160                        iFin = max(xB,min(np.searchsorted(x,refl[5+im]+fmax),xF))
     3161                        if not iBeg+iFin:       #peak below low limit - skip peak
     3162                            continue
     3163                        if ma.all(xMask[iBeg:iFin]):    #peak entirely masked - skip peak
     3164                            refl[3+im] *= -1
     3165                            nExcl += 1
     3166                            continue
     3167                        elif not iBeg-iFin:     #peak above high limit - done
     3168                            break
    31553169                        if iBeg < iFin:
    31563170                            yp[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]))  #>90% of time spent here
     
    31703184                    Histogram['Residuals'][phfx+'Rf^2'] = 100.
    31713185                Histogram['Residuals'][phfx+'sumInt'] = sumInt
    3172                 Histogram['Residuals'][phfx+'Nref'] = len(refDict['RefList'])
     3186                Histogram['Residuals'][phfx+'Nref'] = len(refDict['RefList'])-nExcl
    31733187                Histogram['Residuals']['hId'] = hId
    31743188        elif 'HKLF' in histogram[:4]:
     
    33763390    bakType = calcControls[hfx+'bakType']
    33773391    dMdv = np.zeros(shape=(len(varylist),len(x)))
     3392    dMdv = ma.array(dMdv,mask=np.outer(np.ones(len(varylist)),ma.getmaskarray(x)))      #x is a MaskedArray!
    33783393    dMdb,dMddb,dMdpk = G2pwd.getBackgroundDerv(hfx,parmDict,bakType,calcControls[hfx+'histType'],x)
    33793394    if hfx+'Back;0' in varylist: # for now assume that Back;x vars to not appear in constraints
    3380         bBpos =varylist.index(hfx+'Back;0')
    3381         dMdv[bBpos:bBpos+len(dMdb)] = dMdb
     3395        bBpos = varylist.index(hfx+'Back;0')
     3396        dMdv[bBpos:bBpos+len(dMdb)] += dMdb
    33823397    names = [hfx+'DebyeA',hfx+'DebyeR',hfx+'DebyeU']
    33833398    for name in varylist:
     
    33863401            parm = name[:int(name.rindex(';'))]
    33873402            ip = names.index(parm)
    3388             dMdv[varylist.index(name)] = dMddb[3*id+ip]
     3403            dMdv[varylist.index(name)] += dMddb[3*id+ip]
    33893404    names = [hfx+'BkPkpos',hfx+'BkPkint',hfx+'BkPksig',hfx+'BkPkgam']
    33903405    for name in varylist:
     
    33943409            if parm in names:
    33953410                ip = names.index(parm)
    3396                 dMdv[varylist.index(name)] = dMdpk[4*id+ip]
     3411                dMdv[varylist.index(name)] += dMdpk[4*id+ip]
    33973412    cw = np.diff(x)
    33983413    cw = np.append(cw,cw[-1])
Note: See TracChangeset for help on using the changeset viewer.