Changeset 889 for trunk/GSASIIstruct.py
- Timestamp:
- Apr 19, 2013 3:38:07 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIstruct.py
r888 r889 814 814 Pos = RBObj['Orig'][0] 815 815 jrb = RRBIds.index(RBObj['RBId']) 816 torData = RBData['Residue'][RBObj['RBId']]['rbSeq'] 816 817 rbsx = str(irb)+':'+str(jrb) 817 818 XYZ,Cart = G2mth.UpdateRBXYZ(Bmat,RBObj,RBData,'Residue') 819 for itors,tors in enumerate(RBObj['Torsions']): 820 tname = pfx+'RBRTr;'+str(itors)+':'+rbsx 821 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) 825 for ir in torData[itors][3]: 826 atNum = AtLookup[RBObj['Ids'][ir]] 827 rVec = Cart[ir]-Cart[pvId] 828 dRdT = np.inner(Bmat,(G2mth.prodQVQ(QA,rVec)-G2mth.prodQVQ(QB,rVec)))/.002 829 for ix in [0,1,2]: 830 dFdvDict[tname] += dRdT[ix]*dFdvDict[pfx+atxIds[ix]+str(atNum)] 818 831 for ia,atId in enumerate(RBObj['Ids']): 819 832 atNum = AtLookup[atId] … … 1287 1300 print >>pFile,' atoms(symOp) calc obs sig delt/sig torsions: ' 1288 1301 coeffDict = itemRest['Coeff'] 1289 for indx,ops,cofName,esd in enumerate(itemRest[rest]):1302 for indx,ops,cofName,esd in itemRest[rest]: 1290 1303 AtNames = G2mth.GetAtomItemsById(Atoms,AtLookup,indx,ct-1) 1291 1304 AtName = '' … … 1297 1310 tor = G2mth.getRestTorsion(XYZ,Amat) 1298 1311 restr,calc = G2mth.calcTorsionEnergy(tor,coeffDict[cofName]) 1299 print >>pFile,' %8.3f %8.3f %.3f %8.3f %8.3f %s'%( AtName[:-1],calc,obs,esd,(obs-calc)/esd,tor)1312 print >>pFile,' %8.3f %8.3f %.3f %8.3f %8.3f %s'%(calc,obs,esd,(obs-calc)/esd,tor,AtName[:-1]) 1300 1313 else: 1301 1314 phi,psi = G2mth.getRestRama(XYZ,Amat) 1302 1315 restr,calc = G2mth.calcRamaEnergy(phi,psi,coeffDict[cofName]) 1303 print >>pFile,' %8.3f %8.3f %8.3f %8.3f %8.3f %8.3f %s'%( AtName[:-1],calc,obs,esd,(obs-calc)/esd,phi,psi)1316 print >>pFile,' %8.3f %8.3f %8.3f %8.3f %8.3f %8.3f %s'%(calc,obs,esd,(obs-calc)/esd,phi,psi,AtName[:-1]) 1304 1317 elif name == 'ChemComp': 1305 1318 print >>pFile,' atoms mul*frac factor prod' … … 1469 1482 valstr = ' values:' 1470 1483 sigstr = ' esds :' 1484 if 'N' not in TLS: 1485 print >>pFile,' Thermal motion:' 1471 1486 if 'T' in TLS: 1472 1487 for i,pt in enumerate(['T11:','T22:','T33:','T12:','T13:','T23:']): … … 1513 1528 if 'U' in TLS: 1514 1529 name = pfx+rbfx+'U:'+rbsx 1515 namstr = ' names :'+'%12s'%('U ')1530 namstr = ' names :'+'%12s'%('Uiso') 1516 1531 valstr = ' values:'+'%12.5f'%(parmDict[name]) 1517 1532 if name in sigDict: … … 1526 1541 namstr = ' names :' 1527 1542 valstr = ' values:' 1528 sigstr = ' esds :' 1543 sigstr = ' esds :' 1544 nTors = len(RBObj['Torsions']) 1545 if nTors: 1546 print >>pFile,' Torsions:' 1547 for it in range(nTors): 1548 name = pfx+'RBRTr;'+str(it)+':'+rbsx 1549 namstr += '%12s'%('Tor'+str(it)) 1550 valstr += '%12.4f'%(parmDict[name]) 1551 if name in sigDict: 1552 sigstr += '%12.4f'%(sigDict[name]) 1553 print >>pFile,namstr 1554 print >>pFile,valstr 1555 print >>pFile,sigstr 1529 1556 1530 1557 def PrintSHtextureAndSig(textureData,SHtextureSig): … … 1626 1653 jrb = VRBIds.index(RBObj['RBId']) 1627 1654 rbsx = str(irb)+':'+str(jrb) 1628 print >>pFile,' Vector rigid body '1655 print >>pFile,' Vector rigid body parameters:' 1629 1656 PrintRBObjPOAndSig('RBV',rbsx) 1630 1657 PrintRBObjTLSAndSig('RBV',rbsx,RBObj['ThermalMotion'][0]) … … 1632 1659 jrb = RRBIds.index(RBObj['RBId']) 1633 1660 rbsx = str(irb)+':'+str(jrb) 1634 print >>pFile,' Residue rigid body '1661 print >>pFile,' Residue rigid body parameters:' 1635 1662 PrintRBObjPOAndSig('RBR',rbsx) 1636 1663 PrintRBObjTLSAndSig('RBR',rbsx,RBObj['ThermalMotion'][0]) … … 2683 2710 elif name in ['Torsion','Rama']: 2684 2711 coeffDict = itemRest['Coeff'] 2685 for i,[indx,ops,cofName,esd] in enumerate( torsionList):2712 for i,[indx,ops,cofName,esd] in enumerate(itemRest[rest]): 2686 2713 pNames.append(str(pId)+':'+name+':'+str(i)) 2687 2714 XYZ = np.array(G2mth.GetAtomCoordsByID(pId,parmDict,AtLookup,indx)) … … 3981 4008 sig = ref[6]/(2.0*Fo) 3982 4009 if Fo/sig >= calcControls['minF/sig']: 3983 w = wtFactor/ sig4010 w = wtFactor/np.sqrt(sig) 3984 4011 for j,var in enumerate(varylist): 3985 4012 if var in dFdvDict: … … 4064 4091 if ref[5]/ref[6] >= calcControls['minF/sig']: 4065 4092 w = wtFactor/ref[6] 4093 print ref[:3],ref[5],ref[6],w 4066 4094 wdf[iref] = w*(ref[5]-ref[7]) 4067 4095 for j,var in enumerate(varylist): … … 4077 4105 w = wtFactor/sig 4078 4106 wdf[iref] = w*(Fo-Fc) 4107 print ref[:3],ref[5],Fo,ref[6],sig,w 4079 4108 if Fo/sig >= calcControls['minF/sig']: 4080 4109 for j,var in enumerate(varylist):
Note: See TracChangeset
for help on using the changeset viewer.