Changeset 905 for trunk/GSASIIstruct.py


Ignore:
Timestamp:
May 15, 2013 2:56:28 PM (9 years ago)
Author:
vondreele
Message:

new MAR CCD reader
testDeriv.py is new - old testGSASIIstruct.py deleted
fixes to SC derivatives - refine on F now OK; extinction messed up, RB still a problem

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIstruct.py

    r890 r905  
    3737   
    3838ateln2 = 8.0*math.log(2.0)
    39 DEBUG = False       #only for powders!
     39DEBUG = True
    4040
    4141def GetControls(GPXfile):
     
    751751    pfx = str(Phase['pId'])+'::'
    752752    RBModels =  Phase['RBModels']
    753     dx = 0.0001
    754753    for irb,RBObj in enumerate(RBModels.get('Vector',[])):
    755754        VModel = RBData['Vector'][RBObj['RBId']]
    756755        Q = RBObj['Orient'][0]
     756        QM = G2mth.Q2Mat(Q)
    757757        Pos = RBObj['Orig'][0]
    758758        jrb = VRBIds.index(RBObj['RBId'])
     
    760760        dXdv = []
    761761        for iv in range(len(VModel['VectMag'])):
    762             dXdv.append(np.inner(Bmat.T,VModel['rbVect'][iv]).T)
     762            dXdv.append(np.inner(Bmat,VModel['rbVect'][iv]).T)
    763763        XYZ,Cart = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,'Vector')
    764764        for ia,atId in enumerate(RBObj['Ids']):
    765765            atNum = AtLookup[atId]
     766            dx = 0.0001
    766767            for iv in range(len(VModel['VectMag'])):
    767768                for ix in [0,1,2]:
     
    781782            dFdu = np.array([dFdvDict[pfx+Uid+str(AtLookup[atId])] for Uid in atuIds]).T*gvec
    782783            dFdu = G2lat.U6toUij(dFdu.T)
    783             dFdu = np.tensordot(Amat.T,np.tensordot(Amat,dFdu,([1,0])),([0,1]))
     784            dFdu = np.tensordot(Amat,np.tensordot(Amat,dFdu,([1,0])),([0,1]))
     785#            dFdu = np.tensordot(QM,np.tensordot(QM,dFdu,([1,0])),([0,1]))
    784786            dFdu = G2lat.UijtoU6(dFdu)
    785787            atNum = AtLookup[atId]
     
    793795                dFdvDict[pfx+'RBVL12:'+rbsx] += rpd2*(-dFdu[3]*X[2]**2-2.*dFdu[2]*X[0]*X[1]+
    794796                    dFdu[4]*X[1]*X[2]+dFdu[5]*X[0]*X[2])
    795                 dFdvDict[pfx+'RBVL13:'+rbsx] += rpd2*(dFdu[0]*X[1]**2-2.*dFdu[1]*X[0]*X[2]+
     797                dFdvDict[pfx+'RBVL13:'+rbsx] += rpd2*(-dFdu[4]*X[1]**2-2.*dFdu[1]*X[0]*X[2]+
    796798                    dFdu[3]*X[1]*X[2]+dFdu[5]*X[0]*X[1])
    797                 dFdvDict[pfx+'RBVL23:'+rbsx] += rpd2*(dFdu[0]*X[1]**2-2.*dFdu[0]*X[1]*X[2]+
     799                dFdvDict[pfx+'RBVL23:'+rbsx] += rpd2*(-dFdu[5]*X[0]**2-2.*dFdu[0]*X[1]*X[2]+
    798800                    dFdu[3]*X[0]*X[2]+dFdu[4]*X[0]*X[1])
    799801            if 'S' in RBObj['ThermalMotion'][0]:
     
    817819        rbsx = str(irb)+':'+str(jrb)
    818820        XYZ,Cart = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,'Residue')
    819         for itors,tors in enumerate(RBObj['Torsions']):
     821        for itors,tors in enumerate(RBObj['Torsions']):     #derivative error?
    820822            tname = pfx+'RBRTr;'+str(itors)+':'+rbsx           
    821823            orId,pvId = torData[itors][:2]
    822             pivotVec = Cart[pvId]-Cart[orId]
    823             QA = G2mth.AVdeg2Q(0.001,pivotVec)
    824             QB = G2mth.AVdeg2Q(-0.001,pivotVec)
     824            pivotVec = Cart[orId]-Cart[pvId]
     825            QA = G2mth.AVdeg2Q(-0.001,pivotVec)
     826            QB = G2mth.AVdeg2Q(0.001,pivotVec)
    825827            for ir in torData[itors][3]:
    826828                atNum = AtLookup[RBObj['Ids'][ir]]
    827829                rVec = Cart[ir]-Cart[pvId]
    828                 dRdT = np.inner(Bmat,(G2mth.prodQVQ(QA,rVec)-G2mth.prodQVQ(QB,rVec)))/.002
     830                dR = G2mth.prodQVQ(QB,rVec)-G2mth.prodQVQ(QA,rVec)
     831                dRdT = np.inner(Bmat,G2mth.prodQVQ(Q,dR))/.002
    829832                for ix in [0,1,2]:
    830833                    dFdvDict[tname] += dRdT[ix]*dFdvDict[pfx+atxIds[ix]+str(atNum)]
    831834        for ia,atId in enumerate(RBObj['Ids']):
    832835            atNum = AtLookup[atId]
    833             dx = 0.0001
     836            dx = 0.00001
    834837            for i,name in enumerate(['RBRPx:','RBRPy:','RBRPz:']):
    835838                dFdvDict[pfx+name+rbsx] += dFdvDict[pfx+atxIds[i]+str(atNum)]
    836839            for iv in range(4):
    837840                Q[iv] -= dx
    838                 XYZ1,Cart1 = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,'Residue')
     841                Cart1 = G2mth.prodQVQ(Q,Cart[ia])
    839842                Q[iv] += 2.*dx
    840                 XYZ2,Cart2 = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,'Residue')
     843                Cart2 = G2mth.prodQVQ(Q,Cart[ia])
    841844                Q[iv] -= dx
    842                 dXdO = (XYZ2[ia]-XYZ1[ia])/(2.*dx)
     845                dC = Cart2-Cart1
     846                dXdO = np.inner(Bmat,G2mth.prodQVQ(Q,dC))/(2.*dx)
    843847                for ix in [0,1,2]:
    844848                    dFdvDict[pfx+'RBR'+OIds[iv]+rbsx] += dXdO[ix]*dFdvDict[pfx+atxIds[ix]+str(atNum)]
     
    27682772    pDerv = np.zeros((len(varyList),len(pVal)))
    27692773    for phase in Phases:
    2770         if phase not in restraintDict:
    2771             continue
     2774#        if phase not in restraintDict:
     2775#            continue
    27722776        pId = Phases[phase]['pId']
    27732777        General = Phases[phase]['General']
     
    27832787        SamSym = dict(zip(shModels,['0','-1','2/m','mmm']))
    27842788        sam = SamSym[textureData['Model']]
    2785         phaseRest = restraintDict[phase]
     2789        phaseRest = restraintDict.get(phase,{})
    27862790        names = {'Bond':'Bonds','Angle':'Angles','Plane':'Planes',
    27872791            'Chiral':'Volumes','Torsion':'Torsions','Rama':'Ramas',
     
    27922796            if pId == int(pnames[0]):
    27932797                name = pnames[1]
    2794                 if not name:        #empty for Pawley restraints; pName has '::' in it
     2798                if 'PWL' in pName:
    27952799                    pDerv[varyList.index(pName)][ip] += 1.
    27962800                    continue
     
    29582962        refl[9] = np.sum(fasq)+np.sum(fbsq)
    29592963        refl[10] = atan2d(fbs[0],fas[0])
    2960     return refList
    29612964   
    29622965def StructureFactorDerv(refList,G,hfx,pfx,SGData,calcControls,parmDict):
     
    31113114            PF3 = 0.5*(CL+2.*AL*PF/(1.+BL*PF)-AL*PF**2*BL/(1.+BL*PF)**2)/(PF4*extCor)
    31123115
    3113         dervCor = (1.+PF)*PF3
     3116        dervCor *= (1.+PF)*PF3
    31143117        if 'Primary' in calcControls[phfx+'EType'] and phfx+'Ep' in varyList:
    31153118            dervDict[phfx+'Ep'] = -ref[7]*PLZ*PF3
     
    36703673        Vst = np.sqrt(nl.det(G))    #V*
    36713674        if not Phase['General'].get('doPawley'):
    3672             refList = StructureFactor(refList,G,hfx,pfx,SGData,calcControls,parmDict)
     3675            time0 = time.time()
     3676            StructureFactor(refList,G,hfx,pfx,SGData,calcControls,parmDict)
     3677#            print 'sf calc time: %.3fs'%(time.time()-time0)
     3678        time0 = time.time()
    36733679        for refl in refList:
    36743680            if 'C' in calcControls[hfx+'histType']:
     
    37083714                print 'TOF Undefined at present'
    37093715                raise Exception    #no TOF yet
     3716#        print 'profile calc time: %.3fs'%(time.time()-time0)
    37103717    return yc,yb
    37113718   
     
    37333740        elif SGData['SGLaue'] in ['m3m','m3']:
    37343741            return [[pfx+'A0',dpdA[0]]]
     3742           
    37353743    # create a list of dependent variables and set up a dictionary to hold their derivatives
    37363744    dependentVars = G2mv.GetDependentVars()
     
    37883796        GA,GB = G2lat.Gmat2AB(G)    #Orthogonalization matricies
    37893797        if not Phase['General'].get('doPawley'):
     3798            time0 = time.time()
    37903799            dFdvDict = StructureFactorDerv(refList,G,hfx,pfx,SGData,calcControls,parmDict)
     3800#            print 'sf-derv time %.3fs'%(time.time()-time0)
    37913801            ApplyRBModelDervs(dFdvDict,parmDict,rigidbodyDict,Phase)
     3802        time0 = time.time()
    37923803        for iref,refl in enumerate(refList):
    37933804            if 'C' in calcControls[hfx+'histType']:        #CW powder
     
    38473858                            dMdv[varylist.index(name)][iBeg2:iFin2] += item[0]*dervDict2[item[1]]
    38483859                    elif name in dependentVars:
     3860                        depDerivDict[name][iBeg:iFin] += item[0]*dervDict[item[1]]
    38493861                        if Ka2:
    38503862                            depDerivDict[name][iBeg2:iFin2] += item[0]*dervDict2[item[1]]
    3851                         depDerivDict[name][iBeg:iFin] += item[0]*dervDict[item[1]]
    38523863                for iPO in dIdPO:
    38533864                    if iPO in varylist:
     
    39503961                    if Ka2:
    39513962                        depDerivDict[name][iBeg2:iFin2] += dFdvDict[name][iref]*corr2
     3963#        print 'profile derv time: %.3fs'%(time.time()-time0)
    39523964    # now process derivatives in constraints
    39533965    G2mv.Dict2Deriv(varylist,depDerivDict,dMdv)
     
    39924004            ApplyRBModelDervs(dFdvDict,parmDict,rigidbodyDict,Phase)
    39934005            dMdvh = np.zeros((len(varylist),len(refList)))
    3994             for iref,ref in enumerate(refList):
    3995                 if ref[6] > 0:
    3996                     dervCor,dervDict = SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
    3997                     if calcControls['F**2']:
    3998                         if ref[5]/ref[6] >= calcControls['minF/sig']:
    3999                             w = wtFactor/ref[6]
     4006            if calcControls['F**2']:
     4007                for iref,ref in enumerate(refList):
     4008                    if ref[6] > 0:
     4009                        dervCor,dervDict = SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
     4010                        w = 1.0/ref[6]
     4011                        if w*ref[5] >= calcControls['minF/sig']:
    40004012                            for j,var in enumerate(varylist):
    40014013                                if var in dFdvDict:
    4002                                     dMdvh[j][iref] = w*dFdvDict[var][iref]*dervCor
     4014                                    dMdvh[j][iref] = w*dFdvDict[var][iref]*ref[13]*parmDict[phfx+'Scale']
    40034015                            if phfx+'Scale' in varylist:
    4004                                 dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*dervCor
    4005                     else:
     4016                                dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*ref[13]
     4017                            for item in ['Ep','Es','Eg']:
     4018                                if phfx+item in varylist:
     4019                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]*parmDict[phfx+'Scale']
     4020                            for item in ['BabA','BabU']:
     4021                                if phfx+item in varylist:
     4022                                    dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']
     4023            else:
     4024                for iref,ref in enumerate(refList):
     4025                    if ref[5] > 0.:
     4026                        dervCor,dervDict = SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
    40064027                        Fo = np.sqrt(ref[5])
    40074028                        Fc = np.sqrt(ref[7])
    4008                         sig = ref[6]/(2.0*Fo)
    4009                         if Fo/sig >= calcControls['minF/sig']:
    4010                             w = wtFactor/np.sqrt(sig)
     4029                        w = 1.0/ref[6]
     4030                        if 2.0*Fo*w*Fo >= calcControls['minF/sig']:
    40114031                            for j,var in enumerate(varylist):
    40124032                                if var in dFdvDict:
    4013                                     dMdvh[j][iref] = w*dFdvDict[var][iref]*np.sqrt(dervCor)
     4033                                    dMdvh[j][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
    40144034                            if phfx+'Scale' in varylist:
    4015                                 dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*np.sqrt(dervCor)                           
    4016                     for item in ['Ep','Es','Eg']:
    4017                         if phfx+item in varylist:
    4018                             dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]
     4035                                dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*dervCor                           
     4036                            for item in ['Ep','Es','Eg']:
     4037                                if phfx+item in varylist:
     4038                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]*parmDict[phfx+'Scale']
     4039                            for item in ['BabA','BabU']:
     4040                                if phfx+item in varylist:
     4041                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervCor*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']
    40194042        else:
    40204043            continue        #skip non-histogram entries
    40214044        if len(dMdv):
    4022             dMdv = np.concatenate((dMdv.T,dMdvh.T)).T
     4045            dMdv = np.concatenate((dMdv.T,np.sqrt(wtFactor)*dMdvh.T)).T
    40234046        else:
    4024             dMdv = dMdvh
     4047            dMdv = np.sqrt(wtFactor)*dMdvh
    40254048           
    40264049    pNames,pVals,pWt = penaltyFxn(HistoPhases,parmDict,varylist)
    40274050    if np.any(pVals):
    40284051        dpdv = penaltyDeriv(pNames,pVals,HistoPhases,parmDict,varylist)
    4029         dMdv = np.concatenate((dMdv.T,dpdv.T)).T
     4052        dMdv = np.concatenate((dMdv.T,(np.sqrt(pWt)*dpdv).T)).T
    40304053       
    40314054    return dMdv
     
    40814104            G,g = G2lat.A2Gmat(A)       #recip & real metric tensors
    40824105            refList = Histogram['Data']
    4083             dFdvDict = StructureFactorDerv(refList,G,hfx,pfx,SGData,calcControls,parmDict)
     4106            time0 = time.time()
     4107            dFdvDict = StructureFactorDerv(refList,G,hfx,pfx,SGData,calcControls,parmDict)  #accurate for powders!
    40844108            ApplyRBModelDervs(dFdvDict,parmDict,rigidbodyDict,Phase)
    40854109            dMdvh = np.zeros((len(varylist),len(refList)))
    40864110            wdf = np.zeros(len(refList))
    4087             for iref,ref in enumerate(refList):
    4088                 if ref[6] > 0:
    4089                     dervCor,dervDict = SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
    4090                     if calcControls['F**2']:
    4091                         if ref[5]/ref[6] >= calcControls['minF/sig']:
    4092                             w =  wtFactor/ref[6]
     4111            if calcControls['F**2']:
     4112                for iref,ref in enumerate(refList):
     4113                    if ref[6] > 0:
     4114                        dervCor,dervDict = SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
     4115                        w =  1.0/ref[6]
     4116                        if w*ref[5] >= calcControls['minF/sig']:
    40934117                            wdf[iref] = w*(ref[5]-ref[7])
    40944118                            for j,var in enumerate(varylist):
    40954119                                if var in dFdvDict:
    4096                                     dMdvh[j][iref] = w*dFdvDict[var][iref]*dervCor
     4120                                    dMdvh[j][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
    40974121                            if phfx+'Scale' in varylist:
    40984122                                dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*dervCor
    4099                     else:
    4100                         if ref[5] > 0.:
    4101                             Fo = np.sqrt(ref[5])
    4102                             Fc = np.sqrt(ref[7])
    4103                             sig = ref[6]/(2.0*Fo)
    4104                             w = wtFactor/sig
    4105                             wdf[iref] = w*(Fo-Fc)
    4106                             if Fo/sig >= calcControls['minF/sig']:
    4107                                 for j,var in enumerate(varylist):
    4108                                     if var in dFdvDict:
    4109                                         dMdvh[j][iref] = w*dFdvDict[var][iref]*np.sqrt(dervCor)
    4110                                 if phfx+'Scale' in varylist:
    4111                                     dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*np.sqrt(dervCor)                           
    4112                     for item in ['Ep','Es','Eg']:
    4113                         if phfx+item in varylist:
    4114                             dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]
     4123                            for item in ['Ep','Es','Eg']:
     4124                                if phfx+item in varylist:
     4125                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]*parmDict[phfx+'Scale']
     4126                            for item in ['BabA','BabU']:
     4127                                if phfx+item in varylist:
     4128                                    dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']
     4129            else:
     4130                for iref,ref in enumerate(refList):
     4131                    if ref[5] > 0.:
     4132                        dervCor,dervDict = SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
     4133                        Fo = np.sqrt(ref[5])
     4134                        Fc = np.sqrt(ref[7])
     4135                        w = 1.0/ref[6]
     4136                        if 2.0*Fo*w*Fo >= calcControls['minF/sig']:
     4137                            wdf[iref] = 2.0*Fo*w*(Fo-Fc)
     4138                            for j,var in enumerate(varylist):
     4139                                if var in dFdvDict:
     4140                                    dMdvh[j][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
     4141                            if phfx+'Scale' in varylist:
     4142                                dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*dervCor                           
     4143                            for item in ['Ep','Es','Eg']:
     4144                                if phfx+item in varylist:
     4145                                    dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]*parmDict[phfx+'Scale']
     4146                            for item in ['BabA','BabU']:
     4147                                if phfx+item in varylist:
     4148                                    dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']
     4149                       
    41154150            if dlg:
    41164151                dlg.Update(Histogram['wR'],newmsg='Hessian for histogram %d Rw=%8.3f%s'%(hId,Histogram['wR'],'%'))[0]
    41174152            if len(Hess):
    4118                 Vec += np.sum(dMdvh*wdf,axis=1)
    4119                 Hess += np.inner(dMdvh,dMdvh)
     4153                Vec += wtFactor*np.sum(dMdvh*wdf,axis=1)
     4154                Hess += wtFactor*np.inner(dMdvh,dMdvh)
    41204155            else:
    4121                 Vec = np.sum(dMdvh*wdf,axis=1)
    4122                 Hess = np.inner(dMdvh,dMdvh)
     4156                Vec = wtFactor*np.sum(dMdvh*wdf,axis=1)
     4157                Hess = wtFactor*np.inner(dMdvh,dMdvh)
    41234158        else:
    41244159            continue        #skip non-histogram entries
     
    41834218            G,g = G2lat.A2Gmat(A)       #recip & real metric tensors
    41844219            refList = Histogram['Data']
    4185             refList = StructureFactor(refList,G,hfx,pfx,SGData,calcControls,parmDict)
     4220            time0 = time.time()
     4221            StructureFactor(refList,G,hfx,pfx,SGData,calcControls,parmDict)
     4222#            print 'sf-calc time: %.3f'%(time.time()-time0)
    41864223            df = np.zeros(len(refList))
    41874224            sumwYo = 0
     
    41914228            sumdF2 = 0
    41924229            nobs = 0
    4193             for i,ref in enumerate(refList):
    4194                 if ref[6] > 0:
    4195                     SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
    4196                     ref[7] = parmDict[phfx+'Scale']*ref[9]
    4197                     ref[7] *= ref[13]
    4198                     ref[8] = ref[5]/parmDict[phfx+'Scale']
    4199                     if calcControls['F**2']:
    4200                         if ref[5]/ref[6] >= calcControls['minF/sig']:
     4230            if calcControls['F**2']:
     4231                for i,ref in enumerate(refList):
     4232                    if ref[6] > 0:
     4233                        SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
     4234                        w = 1.0/ref[6]
     4235                        ref[7] = parmDict[phfx+'Scale']*ref[9]
     4236                        ref[7] *= ref[13]                       #correct Fc^2 for extinction
     4237                        ref[8] = ref[5]/parmDict[phfx+'Scale']
     4238                        if w*ref[5] >= calcControls['minF/sig']:
    42014239                            sumFo2 += ref[5]
    42024240                            Fo = np.sqrt(ref[5])
     
    42064244                            sumdF2 += abs(ref[5]-ref[7])
    42074245                            nobs += 1
    4208                             df[i] = -np.sqrt(wtFactor)*(ref[5]-ref[7])/ref[6]
    4209                             sumwYo += wtFactor*(ref[5]/ref[6])**2
    4210                     else:
     4246                            df[i] = -w*(ref[5]-ref[7])
     4247                            sumwYo += (w*ref[5])**2
     4248            else:
     4249                for i,ref in enumerate(refList):
     4250                    if ref[5] > 0.:
     4251                        SCExtinction(ref,phfx,hfx,pfx,calcControls,parmDict,varylist) #puts correction in refl[13]
     4252                        ref[7] = parmDict[phfx+'Scale']*ref[9]
     4253                        ref[7] *= ref[13]                       #correct Fc^2 for extinction
    42114254                        Fo = np.sqrt(ref[5])
    42124255                        Fc = np.sqrt(ref[7])
    4213                         sig = ref[6]/(2.0*Fo)
    4214                         if Fo/sig >= calcControls['minF/sig']:
     4256                        w = 2.0*Fo/ref[6]
     4257                        if w*Fo >= calcControls['minF/sig']:
    42154258                            sumFo += Fo
    42164259                            sumFo2 += ref[5]
     
    42184261                            sumdF2 += abs(ref[5]-ref[7])
    42194262                            nobs += 1
    4220                             df[i] = -np.sqrt(wtFactor)*(Fo-Fc)/sig
    4221                             sumwYo += wtFactor*(Fo/sig)**2
     4263                            df[i] = -w*(Fo-Fc)
     4264                            sumwYo += (w*Fo)**2
    42224265            Histogram['Nobs'] = nobs
    42234266            Histogram['sumwYo'] = sumwYo
     
    42304273            if dlg:
    42314274                dlg.Update(Histogram['wR'],newmsg='For histogram %d Rw=%8.3f%s'%(hId,Histogram['wR'],'%'))[0]
    4232             M = np.concatenate((M,df))
     4275            M = np.concatenate((M,wtFactor*df))
    42334276# end of HKLF processing
    42344277    Histograms['sumwYo'] = SumwYo
     
    43994442#for testing purposes!!!
    44004443    if DEBUG:
     4444#needs: values,HistoPhases,parmDict,varylist,calcControls,pawleyLookup
    44014445        import cPickle
    44024446        fl = open('structTestdata.dat','wb')
     4447        cPickle.dump(result[0],fl,1)
     4448        cPickle.dump([Histograms,Phases,restraintDict,rigidbodyDict],fl,1)
    44034449        cPickle.dump(parmDict,fl,1)
    44044450        cPickle.dump(varyList,fl,1)
    4405         for histogram in Histograms:
    4406             if 'PWDR' in histogram[:4]:
    4407                 Histogram = Histograms[histogram]
    4408         cPickle.dump(Histogram,fl,1)
    4409         cPickle.dump(Phases,fl,1)
    4410         cPickle.dump(rigidbodyDict,fl,1)
    44114451        cPickle.dump(calcControls,fl,1)
    44124452        cPickle.dump(pawleyLookup,fl,1)
Note: See TracChangeset for help on using the changeset viewer.