Changeset 2328
- Timestamp:
- Jun 16, 2016 4:06:26 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/GSASIIgrid.py ¶
r2327 r2328 3461 3461 parmDict = data[name]['parmDict'] 3462 3462 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)) )) 3468 3487 PSvarDict = parmDict.copy() 3469 3488 PSvarDict.update(sampleDict[name]) … … 3471 3490 calcobj.UpdateDict(PSvarDict) 3472 3491 valList.append(calcobj.EvalExpression()) 3473 if calcobj.su is not None: esdList[-1] = calcobj.su3492 # if calcobj.su is not None: esdList[-1] = calcobj.su 3474 3493 if not esdList: 3475 3494 esdList = None -
TabularUnified trunk/GSASIImath.py ¶
r2327 r2328 1528 1528 # GSASIIpath.IPyBreak() 1529 1529 return dist 1530 1531 def CalcDistDeriv(distance_dict, distance_atoms, parmDict): 1532 if not len(parmDict): 1533 return None 1534 pId = distance_dict['pId'] 1535 pfx = '%d::'%(pId) 1536 A = [parmDict['%s::A%d'%(pId,i)] for i in range(6)] 1537 Amat = G2lat.cell2AB(G2lat.A2cell(A))[0] 1538 Oxyz = [parmDict['%s::A%s:%d'%(pId,x,distance_atoms[0])] for x in ['x','y','z']] 1539 Txyz = [parmDict['%s::A%s:%d'%(pId,x,distance_atoms[1])] for x in ['x','y','z']] 1540 inv = 1 1541 symNo = distance_dict['symNo'] 1542 Tunit = distance_dict['cellNo'] 1543 SGData = distance_dict['SGData'] 1544 deriv = getDistDerv(Oxyz,Txyz,Amat,Tunit,symNo,SGData) 1545 return deriv 1530 1546 1531 def CalcDistSu(distance_dict, distance_atoms, parmDict,covData={}):1532 '''default doc string1533 1534 :param type name: description1535 1536 :returns: type name: description1537 1538 '''1539 sig = 0.0011540 1541 return sig1542 1543 1547 def CalcAngle(angle_dict, angle_atoms, parmDict): 1544 1548 if not len(parmDict): … … 1573 1577 return angle 1574 1578 1575 def CalcAngleSu(angle_dict, angle_atoms, parmDict,covData={}): 1576 '''default doc string 1577 1578 :param type name: description 1579 1580 :returns: type name: description 1581 1582 ''' 1583 sig = 0.5 1584 1585 return sig 1579 def CalcAngleDeriv(angle_dict, angle_atoms, parmDict): 1580 if not len(parmDict): 1581 return None 1582 pId = angle_dict['pId'] 1583 pfx = '%d::'%(pId) 1584 A = [parmDict['%s::A%d'%(pId,i)] for i in range(6)] 1585 Amat = G2lat.cell2AB(G2lat.A2cell(A))[0] 1586 Oxyz = [parmDict['%s::A%s:%d'%(pId,x,distance_atoms[0])] for x in ['x','y','z']] 1587 Txyz = [parmDict['%s::A%s:%d'%(pId,x,distance_atoms[1])] for x in ['x','y','z']] 1588 inv = 1 1589 symNo = distance_dict['symNo'] 1590 Tunit = distance_dict['cellNo'] 1591 SGData = distance_dict['SGData'] 1592 deriv = getDistDerv(Oxyz,Txyz,Amat,Tunit,symNo,SGData) 1593 return deriv 1586 1594 1587 1595 def getSyXYZ(XYZ,ops,SGData):
Note: See TracChangeset
for help on using the changeset viewer.