Changeset 2328 for trunk/GSASIIgrid.py


Ignore:
Timestamp:
Jun 16, 2016 4:06:26 PM (7 years ago)
Author:
vondreele
Message:

seq dist table entries & plot now have sus computed from v-cov matrix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r2327 r2328  
    34613461            parmDict = data[name]['parmDict']
    34623462            G2mv.GenerateConstraints(groups,parmlist,varyList,constrDict,fixedList,parmDict,SeqHist=ihst)
    3463             derivs = np.array(
    3464                 [EvalPSvarDeriv(calcobj,parmDict.copy(),sampleDict[name],var,ESD)
    3465                  for var,ESD in zip(varyList,sigs)])
    3466             esdList.append(np.sqrt(
    3467                 np.inner(derivs,np.inner(data[name]['covMatrix'],derivs.T)) ))
     3463            if 'Dist' in expr:
     3464                derivs = G2mth.CalcDistDeriv(obj.distance_dict,obj.distance_atoms, parmDict)
     3465                pId = obj.distance_dict['pId']
     3466                aId,bId = obj.distance_atoms
     3467                varyNames = ['%d::dA%s:%d'%(pId,ip,aId) for ip in ['x','y','z']]
     3468                varyNames += ['%d::dA%s:%d'%(pId,ip,bId) for ip in ['x','y','z']]
     3469                VCoV = G2mth.getVCov(varyNames,varyList,data[name]['covMatrix'])
     3470                esdList.append(np.sqrt(np.inner(derivs,np.inner(VCoV,derivs.T)) ))
     3471#                GSASIIpath.IPyBreak()
     3472            elif 'Angle' in expr:
     3473                derivs = G2mth.CalcAngleDeriv(obj.angle_dict,obj.angle_atoms, parmDict)
     3474                pId = obj.angle_dict['pId']
     3475                aId,bId = obj.distance_atoms
     3476                varyNames = ['%d::dA%s:%d'%(pId,ip,aId) for ip in ['x','y','z']]
     3477                varyNames += ['%d::dA%s:%d'%(pId,ip,bId[0]) for ip in ['x','y','z']]
     3478                varyNames += ['%d::dA%s:%d'%(pId,ip,bId[1]) for ip in ['x','y','z']]
     3479                VCoV = G2mth.getVCov(varyNames,varyList,data[name]['covMatrix'])
     3480                esdList.append(np.sqrt(np.inner(derivs,np.inner(VCoV,derivs.T)) ))
     3481            else:
     3482                derivs = np.array(
     3483                    [EvalPSvarDeriv(calcobj,parmDict.copy(),sampleDict[name],var,ESD)
     3484                     for var,ESD in zip(varyList,sigs)])
     3485                esdList.append(np.sqrt(
     3486                    np.inner(derivs,np.inner(data[name]['covMatrix'],derivs.T)) ))
    34683487            PSvarDict = parmDict.copy()
    34693488            PSvarDict.update(sampleDict[name])
     
    34713490            calcobj.UpdateDict(PSvarDict)
    34723491            valList.append(calcobj.EvalExpression())
    3473             if calcobj.su is not None: esdList[-1] = calcobj.su
     3492#            if calcobj.su is not None: esdList[-1] = calcobj.su
    34743493        if not esdList:
    34753494            esdList = None
Note: See TracChangeset for help on using the changeset viewer.