Changeset 377


Ignore:
Timestamp:
Sep 20, 2011 1:51:43 PM (10 years ago)
Author:
vondreele
Message:

better fix & some reorg. of GSASIIstruct.py

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIstruct.py

    r376 r377  
    11661166    pola,dIdPola = G2pwd.Polarization(parmDict[hfx+'Polariz.'],refl[5],parmDict[hfx+'Azimuth'])
    11671167    POcorr,dIdPO = GetPrefOriDerv(refl,G,phfx,calcControls,parmDict)
    1168     dIdPola *= refl[3]/pola
     1168    dIdPola /= pola
    11691169    for iPO in dIdPO:
    1170         dIdPO[iPO] *= refl[3]/POcorr
    1171     dIdsh = refl[3]/parmDict[hfx+'Scale']
    1172     dIdsp = refl[3]/parmDict[phfx+'Scale']
     1170        dIdPO[iPO] /= POcorr
     1171    dIdsh = 1./parmDict[hfx+'Scale']
     1172    dIdsp = 1./parmDict[phfx+'Scale']
    11731173    return Icorr,dIdsh,dIdsp,dIdPola,dIdPO
    11741174       
     1175def GetSampleGam(refl,wave,G,phfx,calcControls,parmDict,sizeEllipse):
     1176    costh = cosd(refl[5]/2.)
     1177    #crystallite size
     1178    if calcControls[phfx+'SizeType'] == 'isotropic':
     1179        gam = 1.8*wave/(np.pi*parmDict[phfx+'Size:0']*costh)
     1180    elif calcControls[phfx+'SizeType'] == 'uniaxial':
     1181        H = np.array(refl[:3])
     1182        P = np.array(calcControls[phfx+'SizeAxis'])
     1183        cosP,sinP = G2lat.CosSinAngle(H,P,G)
     1184        gam = (1.8*wave/np.pi)/(parmDict[phfx+'Size:0']*parmDict[phfx+'Size:1']*costh)
     1185        gam *= np.sqrt((cosP*parmDict[phfx+'Size:1'])**2+(sinP*parmDict[phfx+'Size:0'])**2)
     1186    else:           #ellipsoidal crystallites - wrong not make sense
     1187        H = np.array(refl[:3])
     1188        gam += 1.8*wave/(np.pi*costh*np.inner(H,np.inner(sizeEllipse,H)))
     1189    #microstrain               
     1190    if calcControls[phfx+'MustrainType'] == 'isotropic':
     1191        gam += 0.018*parmDict[phfx+'Mustrain:0']*tand(refl[5]/2.)/np.pi
     1192    elif calcControls[phfx+'MustrainType'] == 'uniaxial':
     1193        H = np.array(refl[:3])
     1194        P = np.array(calcControls[phfx+'MustrainAxis'])
     1195        cosP,sinP = G2lat.CosSinAngle(H,P,G)
     1196        Si = parmDict[phfx+'Mustrain:0']
     1197        Sa = parmDict[phfx+'Mustrain:1']
     1198        gam += 0.018*Si*Sa*tand(refl[5]/2.)/(np.pi*np.sqrt((Si*cosP)**2+(Sa*sinP)**2))
     1199    else:       #generalized - P.W. Stephens model
     1200        pwrs = calcControls[phfx+'MuPwrs']
     1201        sum = 0
     1202        for i,pwr in enumerate(pwrs):
     1203            sum += parmDict[phfx+'Mustrain:'+str(i)]*refl[0]**pwr[0]*refl[1]**pwr[1]*refl[2]**pwr[2]
     1204        gam += 0.018*refl[4]**2*tand(refl[5]/2.)*sum           
     1205    return gam
     1206       
     1207def GetSampleGamDerv(refl,wave,G,phfx,calcControls,parmDict,sizeEllipse):
     1208    gamDict = {}
     1209    costh = cosd(refl[5]/2.)
     1210    tanth = tand(refl[5]/2.)
     1211    #crystallite size derivatives
     1212    if calcControls[phfx+'SizeType'] == 'isotropic':
     1213        gamDict[phfx+'Size:0'] = -1.80*wave/(np.pi*costh)
     1214    elif calcControls[phfx+'SizeType'] == 'uniaxial':
     1215        H = np.array(refl[:3])
     1216        P = np.array(calcControls[phfx+'SizeAxis'])
     1217        cosP,sinP = G2lat.CosSinAngle(H,P,G)
     1218        Si = parmDict[phfx+'Size:0']
     1219        Sa = parmDict[phfx+'Size:1']
     1220        gami = (1.80*wave/np.pi)/(Si*Sa)
     1221        sqtrm = np.sqrt((cosP*Sa)**2+(sinP*Si)**2)
     1222        gam = gami*sqtrm/costh           
     1223        gamDict[phfx+'Size:0'] = gami*Si*sinP**2/(sqtrm*costh)-gam/Si
     1224        gamDict[phfx+'Size:1'] = gami*Sa*cosP**2/(sqtrm*costh)-gam/Sa         
     1225    else:           #ellipsoidal crystallites - do numerically? - not right not make sense
     1226        H = np.array(refl[:3])
     1227        gam = 1.8*wave/(np.pi*costh*np.inner(H,np.inner(sizeEllipse,H)))
     1228    #microstrain derivatives               
     1229    if calcControls[phfx+'MustrainType'] == 'isotropic':
     1230        gamDict[phfx+'Mustrain:0'] =  0.018*tanth/np.pi           
     1231    elif calcControls[phfx+'MustrainType'] == 'uniaxial':
     1232        H = np.array(refl[:3])
     1233        P = np.array(calcControls[phfx+'MustrainAxis'])
     1234        cosP,sinP = G2lat.CosSinAngle(H,P,G)
     1235        Si = parmDict[phfx+'Mustrain:0']
     1236        Sa = parmDict[phfx+'Mustrain:1']
     1237        gami = 0.018*Si*Sa*tanth/np.pi
     1238        sqtrm = np.sqrt((Si*cosP)**2+(Sa*sinP)**2)
     1239        gam = gami/sqtrm
     1240        gamDict[phfx+'Mustrain:0'] = gam/Si-gami*Si*cosP**2/sqtrm**3
     1241        gamDict[phfx+'Mustrain:1'] = gam/Sa-gami*Sa*sinP**2/sqtrm**3
     1242    else:       #generalized - P.W. Stephens model
     1243        pwrs = calcControls[phfx+'MuPwrs']
     1244        const = 0.018*refl[4]**2*tanth
     1245        for i,pwr in enumerate(pwrs):
     1246            gamDict[phfx+'Mustrain:'+str(i)] = const*refl[0]**pwr[0]*refl[1]**pwr[1]*refl[2]**pwr[2]
     1247    return gamDict
     1248       
     1249def GetReflPos(refl,wave,G,hfx,calcControls,parmDict):
     1250    h,k,l = refl[:3]
     1251    dsq = 1./G2lat.calc_rDsq2(np.array([h,k,l]),G)
     1252    d = np.sqrt(dsq)
     1253    refl[4] = d
     1254    pos = 2.0*asind(wave/(2.0*d))+parmDict[hfx+'Zero']
     1255    const = 9.e-2/(np.pi*parmDict[hfx+'Gonio. radius'])                  #shifts in microns
     1256    if 'Bragg' in calcControls[hfx+'instType']:
     1257        pos -= const*(4.*parmDict[hfx+'Shift']*cosd(pos/2.0)+ \
     1258            parmDict[hfx+'Transparency']*sind(pos)*100.0)            #trans(=1/mueff) in cm
     1259    else:               #Debye-Scherrer - simple but maybe not right
     1260        pos -= const*(parmDict[hfx+'DisplaceX']*cosd(pos)+parmDict[hfx+'DisplaceY']*sind(pos))
     1261    return pos
     1262
     1263def GetReflPosDerv(refl,wave,A,hfx,calcControls,parmDict):
     1264    dpr = 180./np.pi
     1265    h,k,l = refl[:3]
     1266    dstsq = G2lat.calc_rDsq(np.array([h,k,l]),A)
     1267    dst = np.sqrt(dstsq)
     1268    pos = refl[5]
     1269    const = dpr/np.sqrt(1.0-wave*dst/4.0)
     1270    dpdw = const*dst
     1271    dpdA = np.array([h**2,k**2,l**2,h*k,h*l,k*l])
     1272    dpdA *= const*wave/(2.0*dst)
     1273    dpdZ = 1.0
     1274    const = 9.e-2/(np.pi*parmDict[hfx+'Gonio. radius'])                  #shifts in microns
     1275    if 'Bragg' in calcControls[hfx+'instType']:
     1276        dpdSh = -4.*const*cosd(pos/2.0)
     1277        dpdTr = -const*sind(pos)*100.0
     1278        return dpdA,dpdw,dpdZ,dpdSh,dpdTr,0.,0.
     1279    else:               #Debye-Scherrer - simple but maybe not right
     1280        dpdXd = -const*cosd(pos)
     1281        dpdYd = -const*sind(pos)
     1282        return dpdA,dpdw,dpdZ,0.,0.,dpdXd,dpdYd
     1283           
     1284def GetHStrainShift(refl,SGData,phfx,parmDict):
     1285    laue = SGData['SGLaue']
     1286    uniq = SGData['SGUniq']
     1287    h,k,l = refl[:3]
     1288    if laue in ['m3','m3m']:
     1289        Dij = parmDict[phfx+'D11']*(h**2+k**2+l**2)
     1290    elif laue in ['6/m','6/mmm','3m1','31m','3']:
     1291        Dij = parmDict[phfx+'D11']*(h**2+k**2+h*k)+parmDict[phfx+'D33']*l**2
     1292    elif laue in ['3R','3mR']:
     1293        Dij = parmDict[phfx+'D11']*(h**2+k**2+l**2)+parmDict[phfx+'D12']*(h*k+h*l+k*l)
     1294    elif laue in ['4/m','4/mmm']:
     1295        Dij = parmDict[phfx+'D11']*(h**2+k**2)+parmDict[phfx+'D33']*l**2
     1296    elif laue in ['mmm']:
     1297        Dij = parmDict[phfx+'D11']*h**2+parmDict[phfx+'D22']*k**2+parmDict[phfx+'D33']*l**2
     1298    elif laue in ['2/m']:
     1299        Dij = parmDict[phfx+'D11']*h**2+parmDict[phfx+'D22']*k**2+parmDict[phfx+'D33']*l**2
     1300        if uniq == 'a':
     1301            Dij += parmDict[phfx+'D23']*k*l
     1302        elif uniq == 'b':
     1303            Dij += parmDict[phfx+'D13']*h*l
     1304        elif uniq == 'c':
     1305            Dij += parmDict[phfx+'D12']*h*k
     1306    else:
     1307        Dij = parmDict[phfx+'D11']*h**2+parmDict[phfx+'D22']*k**2+parmDict[phfx+'D33']*l**2+ \
     1308            parmDict[phfx+'D12']*h*k+parmDict[phfx+'D13']*h*l+parmDict[phfx+'D23']*k*l
     1309    return Dij*refl[4]**2*tand(refl[5]/2.0)
     1310           
     1311def GetHStrainShiftDerv(refl,SGData,phfx):
     1312    laue = SGData['SGLaue']
     1313    uniq = SGData['SGUniq']
     1314    h,k,l = refl[:3]
     1315    if laue in ['m3','m3m']:
     1316        dDijDict = {phfx+'D11':h**2+k**2+l**2,}
     1317    elif laue in ['6/m','6/mmm','3m1','31m','3']:
     1318        dDijDict = {phfx+'D11':h**2+k**2+h*k,phfx+'D33':l**2}
     1319    elif laue in ['3R','3mR']:
     1320        dDijDict = {phfx+'D11':h**2+k**2+l**2,phfx+'D12':h*k+h*l+k*l}
     1321    elif laue in ['4/m','4/mmm']:
     1322        dDijDict = {phfx+'D11':h**2+k**2,phfx+'D33':l**2}
     1323    elif laue in ['mmm']:
     1324        dDijDict = {phfx+'D11':h**2,phfx+'D22':k**2,phfx+'D33':l**2}
     1325    elif laue in ['2/m']:
     1326        dDijDict = {phfx+'D11':h**2,phfx+'D22':k**2,phfx+'D33':l**2}
     1327        if uniq == 'a':
     1328            dDijDict[phfx+'D23'] = k*l
     1329        elif uniq == 'b':
     1330            dDijDict[phfx+'D13'] = h*l
     1331        elif uniq == 'c':
     1332            dDijDict[phfx+'D12'] = h*k
     1333            names.append()
     1334    else:
     1335        dDijDict = {phfx+'D11':h**2,phfx+'D22':k**2,phfx+'D33':l**2,
     1336            phfx+'D12':h*k,phfx+'D13':h*l,phfx+'D23':k*l}
     1337    for item in dDijDict:
     1338        dDijDict[item] *= refl[4]**2*tand(refl[5]/2.0)
     1339    return dDijDict
     1340           
    11751341def getPowderProfile(parmDict,x,varylist,Histogram,Phases,calcControls,pawleyLookup):
    1176    
    1177     def GetSampleGam(refl,wave,G,phfx,calcControls,parmDict,sizeEllipse):
    1178         costh = cosd(refl[5]/2.)
    1179         #crystallite size
    1180         if calcControls[phfx+'SizeType'] == 'isotropic':
    1181             gam = 1.8*wave/(np.pi*parmDict[phfx+'Size:0']*costh)
    1182         elif calcControls[phfx+'SizeType'] == 'uniaxial':
    1183             H = np.array(refl[:3])
    1184             P = np.array(calcControls[phfx+'SizeAxis'])
    1185             cosP,sinP = G2lat.CosSinAngle(H,P,G)
    1186             gam = (1.8*wave/np.pi)/(parmDict[phfx+'Size:0']*parmDict[phfx+'Size:1']*costh)
    1187             gam *= np.sqrt((cosP*parmDict[phfx+'Size:1'])**2+(sinP*parmDict[phfx+'Size:0'])**2)
    1188         else:           #ellipsoidal crystallites - wrong not make sense
    1189             H = np.array(refl[:3])
    1190             gam += 1.8*wave/(np.pi*costh*np.inner(H,np.inner(sizeEllipse,H)))
    1191         #microstrain               
    1192         if calcControls[phfx+'MustrainType'] == 'isotropic':
    1193             gam += 0.018*parmDict[phfx+'Mustrain:0']*tand(refl[5]/2.)/np.pi
    1194         elif calcControls[phfx+'MustrainType'] == 'uniaxial':
    1195             H = np.array(refl[:3])
    1196             P = np.array(calcControls[phfx+'MustrainAxis'])
    1197             cosP,sinP = G2lat.CosSinAngle(H,P,G)
    1198             Si = parmDict[phfx+'Mustrain:0']
    1199             Sa = parmDict[phfx+'Mustrain:1']
    1200             gam += 0.018*Si*Sa*tand(refl[5]/2.)/(np.pi*np.sqrt((Si*cosP)**2+(Sa*sinP)**2))
    1201         else:       #generalized - P.W. Stephens model
    1202             pwrs = calcControls[phfx+'MuPwrs']
    1203             sum = 0
    1204             for i,pwr in enumerate(pwrs):
    1205                 sum += parmDict[phfx+'Mustrain:'+str(i)]*refl[0]**pwr[0]*refl[1]**pwr[1]*refl[2]**pwr[2]
    1206             gam += 0.018*refl[4]**2*tand(refl[5]/2.)*sum           
    1207         return gam
    1208        
    1209     def GetHStrainShift(refl,SGData,phfx,parmDict):
    1210         laue = SGData['SGLaue']
    1211         uniq = SGData['SGUniq']
    1212         h,k,l = refl[:3]
    1213         if laue in ['m3','m3m']:
    1214             Dij = parmDict[phfx+'D11']*(h**2+k**2+l**2)
    1215         elif laue in ['6/m','6/mmm','3m1','31m','3']:
    1216             Dij = parmDict[phfx+'D11']*(h**2+k**2+h*k)+parmDict[phfx+'D33']*l**2
    1217         elif laue in ['3R','3mR']:
    1218             Dij = parmDict[phfx+'D11']*(h**2+k**2+l**2)+parmDict[phfx+'D12']*(h*k+h*l+k*l)
    1219         elif laue in ['4/m','4/mmm']:
    1220             Dij = parmDict[phfx+'D11']*(h**2+k**2)+parmDict[phfx+'D33']*l**2
    1221         elif laue in ['mmm']:
    1222             Dij = parmDict[phfx+'D11']*h**2+parmDict[phfx+'D22']*k**2+parmDict[phfx+'D33']*l**2
    1223         elif laue in ['2/m']:
    1224             Dij = parmDict[phfx+'D11']*h**2+parmDict[phfx+'D22']*k**2+parmDict[phfx+'D33']*l**2
    1225             if uniq == 'a':
    1226                 Dij += parmDict[phfx+'D23']*k*l
    1227             elif uniq == 'b':
    1228                 Dij += parmDict[phfx+'D13']*h*l
    1229             elif uniq == 'c':
    1230                 Dij += parmDict[phfx+'D12']*h*k
    1231         else:
    1232             Dij = parmDict[phfx+'D11']*h**2+parmDict[phfx+'D22']*k**2+parmDict[phfx+'D33']*l**2+ \
    1233                 parmDict[phfx+'D12']*h*k+parmDict[phfx+'D13']*h*l+parmDict[phfx+'D23']*k*l
    1234         return Dij*refl[4]**2*tand(refl[5]/2.0)
    1235                
    1236     def GetReflPos(refl,wave,G,hfx,calcControls,parmDict):
    1237         h,k,l = refl[:3]
    1238         dsq = 1./G2lat.calc_rDsq2(np.array([h,k,l]),G)
    1239         d = np.sqrt(dsq)
    1240         refl[4] = d
    1241         pos = 2.0*asind(wave/(2.0*d))+parmDict[hfx+'Zero']
    1242         const = 9.e-2/(np.pi*parmDict[hfx+'Gonio. radius'])                  #shifts in microns
    1243         if 'Bragg' in calcControls[hfx+'instType']:
    1244             pos -= const*(4.*parmDict[hfx+'Shift']*cosd(pos/2.0)+ \
    1245                 parmDict[hfx+'Transparency']*sind(pos)*100.0)            #trans(=1/mueff) in cm
    1246         else:               #Debye-Scherrer - simple but maybe not right
    1247             pos -= const*(parmDict[hfx+'DisplaceX']*cosd(pos)+parmDict[hfx+'DisplaceY']*sind(pos))
    1248         return pos
    12491342   
    12501343    def GetReflSIgGam(refl,wave,G,hfx,phfx,calcControls,parmDict,sizeEllipse):
     
    13321425def getPowderProfileDerv(parmDict,x,varylist,Histogram,Phases,calcControls,pawleyLookup):
    13331426   
    1334     def GetSampleGamDerv(refl,wave,G,phfx,calcControls,parmDict,sizeEllipse):
    1335         gamDict = {}
    1336         costh = cosd(refl[5]/2.)
    1337         tanth = tand(refl[5]/2.)
    1338         #crystallite size derivatives
    1339         if calcControls[phfx+'SizeType'] == 'isotropic':
    1340             gamDict[phfx+'Size:0'] = -1.80*wave/(np.pi*costh)
    1341         elif calcControls[phfx+'SizeType'] == 'uniaxial':
    1342             H = np.array(refl[:3])
    1343             P = np.array(calcControls[phfx+'SizeAxis'])
    1344             cosP,sinP = G2lat.CosSinAngle(H,P,G)
    1345             Si = parmDict[phfx+'Size:0']
    1346             Sa = parmDict[phfx+'Size:1']
    1347             gami = (1.80*wave/np.pi)/(Si*Sa)
    1348             sqtrm = np.sqrt((cosP*Sa)**2+(sinP*Si)**2)
    1349             gam = gami*sqtrm/costh           
    1350             gamDict[phfx+'Size:0'] = gami*Si*sinP**2/(sqtrm*costh)-gam/Si
    1351             gamDict[phfx+'Size:1'] = gami*Sa*cosP**2/(sqtrm*costh)-gam/Sa         
    1352         else:           #ellipsoidal crystallites - do numerically? - not right not make sense
    1353             H = np.array(refl[:3])
    1354             gam = 1.8*wave/(np.pi*costh*np.inner(H,np.inner(sizeEllipse,H)))
    1355         #microstrain derivatives               
    1356         if calcControls[phfx+'MustrainType'] == 'isotropic':
    1357             gamDict[phfx+'Mustrain:0'] =  0.018*tanth/np.pi           
    1358         elif calcControls[phfx+'MustrainType'] == 'uniaxial':
    1359             H = np.array(refl[:3])
    1360             P = np.array(calcControls[phfx+'MustrainAxis'])
    1361             cosP,sinP = G2lat.CosSinAngle(H,P,G)
    1362             Si = parmDict[phfx+'Mustrain:0']
    1363             Sa = parmDict[phfx+'Mustrain:1']
    1364             gami = 0.018*Si*Sa*tanth/np.pi
    1365             sqtrm = np.sqrt((Si*cosP)**2+(Sa*sinP)**2)
    1366             gam = gami/sqtrm
    1367             gamDict[phfx+'Mustrain:0'] = gam/Si-gami*Si*cosP**2/sqtrm**3
    1368             gamDict[phfx+'Mustrain:1'] = gam/Sa-gami*Sa*sinP**2/sqtrm**3
    1369         else:       #generalized - P.W. Stephens model
    1370             pwrs = calcControls[phfx+'MuPwrs']
    1371             const = 0.018*refl[4]**2*tanth
    1372             for i,pwr in enumerate(pwrs):
    1373                 gamDict[phfx+'Mustrain:'+str(i)] = const*refl[0]**pwr[0]*refl[1]**pwr[1]*refl[2]**pwr[2]
    1374         return gamDict
    1375        
    1376     def GetReflPosDerv(refl,wave,A,hfx,calcControls,parmDict):
    1377         dpr = 180./np.pi
    1378         h,k,l = refl[:3]
    1379         dstsq = G2lat.calc_rDsq(np.array([h,k,l]),A)
    1380         dst = np.sqrt(dstsq)
    1381         pos = refl[5]
    1382         const = dpr/np.sqrt(1.0-wave*dst/4.0)
    1383         dpdw = const*dst
    1384         dpdA = np.array([h**2,k**2,l**2,h*k,h*l,k*l])
    1385         dpdA *= const*wave/(2.0*dst)
    1386         dpdZ = 1.0
    1387         const = 9.e-2/(np.pi*parmDict[hfx+'Gonio. radius'])                  #shifts in microns
    1388         if 'Bragg' in calcControls[hfx+'instType']:
    1389             dpdSh = -4.*const*cosd(pos/2.0)
    1390             dpdTr = -const*sind(pos)*100.0
    1391             return dpdA,dpdw,dpdZ,dpdSh,dpdTr,0.,0.
    1392         else:               #Debye-Scherrer - simple but maybe not right
    1393             dpdXd = -const*cosd(pos)
    1394             dpdYd = -const*sind(pos)
    1395             return dpdA,dpdw,dpdZ,0.,0.,dpdXd,dpdYd
    1396            
    1397     def GetHStrainShiftDerv(refl,SGData,phfx):
    1398         laue = SGData['SGLaue']
    1399         uniq = SGData['SGUniq']
    1400         h,k,l = refl[:3]
    1401         if laue in ['m3','m3m']:
    1402             dDijDict = {phfx+'D11':h**2+k**2+l**2,}
    1403         elif laue in ['6/m','6/mmm','3m1','31m','3']:
    1404             dDijDict = {phfx+'D11':h**2+k**2+h*k,phfx+'D33':l**2}
    1405         elif laue in ['3R','3mR']:
    1406             dDijDict = {phfx+'D11':h**2+k**2+l**2,phfx+'D12':h*k+h*l+k*l}
    1407         elif laue in ['4/m','4/mmm']:
    1408             dDijDict = {phfx+'D11':h**2+k**2,phfx+'D33':l**2}
    1409         elif laue in ['mmm']:
    1410             dDijDict = {phfx+'D11':h**2,phfx+'D22':k**2,phfx+'D33':l**2}
    1411         elif laue in ['2/m']:
    1412             dDijDict = {phfx+'D11':h**2,phfx+'D22':k**2,phfx+'D33':l**2}
    1413             if uniq == 'a':
    1414                 dDijDict[phfx+'D23'] = k*l
    1415             elif uniq == 'b':
    1416                 dDijDict[phfx+'D13'] = h*l
    1417             elif uniq == 'c':
    1418                 dDijDict[phfx+'D12'] = h*k
    1419                 names.append()
    1420         else:
    1421             dDijDict = {phfx+'D11':h**2,phfx+'D22':k**2,phfx+'D33':l**2,
    1422                 phfx+'D12':h*k,phfx+'D13':h*l,phfx+'D23':k*l}
    1423         for item in dDijDict:
    1424             dDijDict[item] *= refl[4]**2*tand(refl[5]/2.0)
    1425         return dDijDict
    1426                
    14271427    def cellVaryDerv(pfx,SGData,dpdA):
    14281428        if SGData['SGLaue'] in ['-1',]:
     
    15101510                for i in range(1,5):
    15111511                    dMdpk[i][iBeg:iFin] += 100.*dx*Icorr*refl[8]*dMdipk[i]
    1512                 dMdpk[0][iBeg:iFin] += 100.*dx*Icorr*refl[8]*dMdipk[0]/refl[3]
     1512                dMdpk[0][iBeg:iFin] += 100.*dx*Icorr*refl[8]*dMdipk[0]
    15131513                dervDict = {'int':dMdpk[0],'pos':dMdpk[1],'sig':dMdpk[2],'gam':dMdpk[3],'shl':dMdpk[4]}
    15141514                if Ka2:
     
    15211521                        for i in range(1,5):
    15221522                            dMdpk[i][iBeg2:iFin2] += 100.*dx*Icorr*refl[8]*kRatio*dMdipk2[i]
    1523                         dMdpk[0][iBeg2:iFin2] += 100.*dx*Icorr*refl[8]*kRatio*dMdipk2[0]/refl[3]
     1523                        dMdpk[0][iBeg2:iFin2] += 100.*dx*Icorr*refl[8]*kRatio*dMdipk2[0]
    15241524                        dMdpk[5][iBeg2:iFin2] += 100.*dx*Icorr*dMdipk2[0]
    15251525                        dervDict = {'int':dMdpk[0],'pos':dMdpk[1],'sig':dMdpk[2],'gam':dMdpk[3],'shl':dMdpk[4],'L1/L2':dMdpk[5]*refl[8]}
Note: See TracChangeset for help on using the changeset viewer.