Changeset 5520 for trunk/GSASIIstrIO.py
- Timestamp:
- Mar 23, 2023 1:03:34 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/GSASIIstrIO.py ¶
r5513 r5520 1059 1059 pFile.write('Spinning RB name: %s atom type: %s, no.atoms: %d, No. times used: %d\n'% 1060 1060 (RBModel['RBname'],RBModel['atType'],RBModel['Natoms'],RBModel['useCount'])) 1061 for i in WriteSpnRBModel(RBModel):1062 pFile.write(i)1063 1061 1064 1062 def PrintResRBModel(RBModel): … … 1083 1081 for irb,item in enumerate(rbIds['Spin']): 1084 1082 if rigidbodyDict['Spin'][item]['useCount']: 1085 RBradius = rigidbodyDict['Spin'][item]['radius']1086 pid = '::RBS;0:'+str(irb)1087 rbDict[pid] = RBradius[0]1088 if RBradius[1]:1089 rbVary.append(pid)1090 1083 if Print: 1091 1084 pFile.write('\nSpinning rigid body model:\n') … … 1132 1125 pFile.write(sigstr+'\n') 1133 1126 1134 def PrintRBSpnandSig(SpinRB,SpinSig):1135 pFile.write('\n Spinning radius for %s:\n'%SpinRB['RBname'])1136 namstr = ' names :'1137 valstr = ' values:'1138 sigstr = ' esds :'1139 for i,[val,sig] in enumerate(zip(SpinRB['radius'],SpinSig)):1140 namstr += '%12s'%('Spin '+str(i))1141 valstr += '%12.4f'%(val)1142 if sig:1143 sigstr += '%12.4f'%(sig)1144 else:1145 sigstr += 12*' '1146 pFile.write(namstr+'\n')1147 pFile.write(valstr+'\n')1148 pFile.write(sigstr+'\n')1149 1150 1127 RBIds = rigidbodyDict.get('RBIds',{'Vector':[],'Residue':[],'Spin':[]}) #these are lists of rbIds 1151 if not RBIds['Vector'] and not RBIds['Spin']:1128 if not RBIds['Vector']: 1152 1129 return 1153 1130 for irb,item in enumerate(RBIds['Vector']): … … 1160 1137 VectSig.append(sigDict[name]) 1161 1138 PrintRBVectandSig(rigidbodyDict['Vector'][item],VectSig) 1162 for irb,item in enumerate(RBIds['Spin']):1163 if rigidbodyDict['Spin'][item]['useCount']:1164 SpinSig = []1165 name = '::RBS;'+str(0)+':'+str(irb)1166 if name in sigDict:1167 SpinSig.append(sigDict[name])1168 1169 1170 PrintRBSpnandSig(rigidbodyDict['Spin'][item],SpinSig)1171 1139 1172 1140 ################################################################################ … … 1343 1311 iFin = min(iBeg+6,nCoeff) 1344 1312 for block in range(nBlock): 1345 ptlbls = ' names :' 1346 ptstr = ' values:' 1347 ptref = ' refine:' 1313 if not block: 1314 ptlbls = ' names :%12s'%'Radius' 1315 ptstr = ' values:%12.4f'%RB['Radius'][ish][0] 1316 ptref = ' refine:%12s'%RB['Radius'][ish][1] 1317 else: 1318 ptlbls = ' names :' 1319 ptstr = ' values:' 1320 ptref = ' refine:' 1348 1321 for item in SHkeys[iBeg:iFin]: 1349 1322 ptlbls += '%12s'%(item) … … 1592 1565 continue 1593 1566 rbid = str(rbids.index(RB['RBId'][ish])) 1567 name = '%sRBSSh;%d;Radius:%s:%s'%(pfx,ish,iAt,rbid) 1568 phaseDict[name] = RB['Radius'][ish][0] 1569 if RB['Radius'][ish][1]: 1570 phaseVary += [name,] 1594 1571 pfxRB = '%sRBSSh;%d;'%(pfx,ish) 1595 1572 for i,shcof in enumerate(Shcof): … … 2569 2546 jrb = SRBIds.index(RBObj['RBId'][ish]) #spin rb no. 2570 2547 rbsx = ':%d:%d'%(iAt,jrb) 2571 pFile.write(' Spin rigid body parameters:\n') 2572 PrintRBObjPOAndSig('RBS',rbsx) 2548 pFile.write(' Spin rigid body parameters for at. no. %d; shell %d:\n'%(iAt,ish)) 2549 if not ish: 2550 PrintRBObjPOAndSig('RBS',rbsx[1:]) #skip leading ':' 2573 2551 PrintRBObjSHCAndSig('RBSSh;%d;'%ish,RBObj['SHC'][ish],rbsx) 2574 2552 atomsSig = {} … … 4202 4180 if name in sigDict: 4203 4181 sigstr += '%12.4f'%(sigDict[name]) 4182 else: 4183 sigstr += 12*' ' 4204 4184 out.append(namstr+'\n') 4205 4185 out.append(valstr+'\n') … … 4212 4192 ''' 4213 4193 out = [] 4214 namstr = ' names :' 4215 valstr = ' values:' 4194 name = pfx+rbfx+'Radius'+rbsx 4195 namstr = ' names :%12s'%'Radius' 4196 valstr = ' values:%12.4f'%parmDict[name] 4216 4197 sigstr = ' esds :' 4198 if name in sigDict: 4199 sigstr += '%12.4f'%sigDict[name] 4200 [name] 4201 else: 4202 sigstr += 12*' ' 4217 4203 out.append(' Sp.harm.:\n') 4218 4204 for item in SHC: … … 4222 4208 if name in sigDict: 4223 4209 sigstr += '%12.4f'%(sigDict[name]) 4210 else: 4211 sigstr += 12*' ' 4224 4212 out.append(namstr+'\n') 4225 4213 out.append(valstr+'\n') 4226 4214 out.append(sigstr+'\n') 4227 return out4228 4229 def WriteSpnRBModel(RBModel,sigDict={},irb=None):4230 '''Write description of a spinning rigid body. Code here to make usable from G2export_CIF4231 '''4232 out = ' Radius: %10.3f refine? %s\n'%(RBModel['radius'][0],RBModel['radius'][1])4233 4215 return out 4234 4216
Note: See TracChangeset
for help on using the changeset viewer.