Changeset 1798
- Timestamp:
- Apr 18, 2015 5:50:54 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIstrMath.py
r1797 r1798 1893 1893 iBeg2 = max(xB,np.searchsorted(x,pos2-fmin)) 1894 1894 iFin2 = min(np.searchsorted(x,pos2+fmax),xF) 1895 yp[iBeg2:iFin2] += refl[11+im]*refl[9+im]*kRatio*G2pwd.getFCJVoigt3(pos2,refl[6+im],refl[7+im],shl,ma.getdata(x[iBeg2:iFin2])) #and here 1896 sumInt += refl[11+im]*refl[9+im]*kRatio 1895 if iFin2 > iBeg2: 1896 yp[iBeg2:iFin2] += refl[11+im]*refl[9+im]*kRatio*G2pwd.getFCJVoigt3(pos2,refl[6+im],refl[7+im],shl,ma.getdata(x[iBeg2:iFin2])) #and here 1897 sumInt += refl[11+im]*refl[9+im]*kRatio 1897 1898 refl[8+im] = np.sum(np.where(ratio[iBeg:iFin2]>0.,yp[iBeg:iFin2]*ratio[iBeg:iFin2]/(refl[11+im]*(1.+kRatio)),0.0)) 1898 1899 … … 2273 2274 if name in varylist: 2274 2275 dMdv[varylist.index(name)][iBeg:iFin] += item[0]*dervDict[item[1]] 2275 if Ka2 :2276 if Ka2 and iFin2-iBeg2: 2276 2277 dMdv[varylist.index(name)][iBeg2:iFin2] += item[0]*dervDict2[item[1]] 2277 2278 elif name in dependentVars: 2278 2279 depDerivDict[name][iBeg:iFin] += item[0]*dervDict[item[1]] 2279 if Ka2 :2280 if Ka2 and iFin2-iBeg2: 2280 2281 depDerivDict[name][iBeg2:iFin2] += item[0]*dervDict2[item[1]] 2281 2282 for iPO in dIdPO: 2282 2283 if iPO in varylist: 2283 2284 dMdv[varylist.index(iPO)][iBeg:iFin] += dIdPO[iPO]*dervDict['int'] 2284 if Ka2 :2285 if Ka2 and iFin2-iBeg2: 2285 2286 dMdv[varylist.index(iPO)][iBeg2:iFin2] += dIdPO[iPO]*dervDict2['int'] 2286 2287 elif iPO in dependentVars: 2287 2288 depDerivDict[iPO][iBeg:iFin] += dIdPO[iPO]*dervDict['int'] 2288 if Ka2 :2289 if Ka2 and iFin2-iBeg2: 2289 2290 depDerivDict[iPO][iBeg2:iFin2] += dIdPO[iPO]*dervDict2['int'] 2290 2291 for i,name in enumerate(['omega','chi','phi']): … … 2292 2293 if aname in varylist: 2293 2294 dMdv[varylist.index(aname)][iBeg:iFin] += dFdSA[i]*dervDict['int'] 2294 if Ka2 :2295 if Ka2 and iFin2-iBeg2: 2295 2296 dMdv[varylist.index(aname)][iBeg2:iFin2] += dFdSA[i]*dervDict2['int'] 2296 2297 elif aname in dependentVars: 2297 2298 depDerivDict[aname][iBeg:iFin] += dFdSA[i]*dervDict['int'] 2298 if Ka2 :2299 if Ka2 and iFin2-iBeg2: 2299 2300 depDerivDict[aname][iBeg2:iFin2] += dFdSA[i]*dervDict2['int'] 2300 2301 for iSH in dFdODF: 2301 2302 if iSH in varylist: 2302 2303 dMdv[varylist.index(iSH)][iBeg:iFin] += dFdODF[iSH]*dervDict['int'] 2303 if Ka2 :2304 if Ka2 and iFin2-iBeg2: 2304 2305 dMdv[varylist.index(iSH)][iBeg2:iFin2] += dFdODF[iSH]*dervDict2['int'] 2305 2306 elif iSH in dependentVars: 2306 2307 depDerivDict[iSH][iBeg:iFin] += dFdODF[iSH]*dervDict['int'] 2307 if Ka2 :2308 if Ka2 and iFin2-iBeg2: 2308 2309 depDerivDict[iSH][iBeg2:iFin2] += dFdODF[iSH]*dervDict2['int'] 2309 2310 cellDervNames = cellVaryDerv(pfx,SGData,dpdA) … … 2311 2312 if name in varylist: 2312 2313 dMdv[varylist.index(name)][iBeg:iFin] += dpdA*dervDict['pos'] 2313 if Ka2 :2314 if Ka2 and iFin2-iBeg2: 2314 2315 dMdv[varylist.index(name)][iBeg2:iFin2] += dpdA*dervDict2['pos'] 2315 2316 elif name in dependentVars: 2316 2317 depDerivDict[name][iBeg:iFin] += dpdA*dervDict['pos'] 2317 if Ka2 :2318 if Ka2 and iFin2-iBeg2: 2318 2319 depDerivDict[name][iBeg2:iFin2] += dpdA*dervDict2['pos'] 2319 2320 dDijDict = GetHStrainShiftDerv(refl,im,SGData,phfx,hfx,calcControls,parmDict) … … 2321 2322 if name in varylist: 2322 2323 dMdv[varylist.index(name)][iBeg:iFin] += dDijDict[name]*dervDict['pos'] 2323 if Ka2 :2324 if Ka2 and iFin2-iBeg2: 2324 2325 dMdv[varylist.index(name)][iBeg2:iFin2] += dDijDict[name]*dervDict2['pos'] 2325 2326 elif name in dependentVars: 2326 2327 depDerivDict[name][iBeg:iFin] += dDijDict[name]*dervDict['pos'] 2327 if Ka2 :2328 if Ka2 and iFin2-iBeg2: 2328 2329 depDerivDict[name][iBeg2:iFin2] += dDijDict[name]*dervDict2['pos'] 2329 2330 for i,name in enumerate([pfx+'mV0',pfx+'mV1',pfx+'mV2']): 2330 2331 if name in varylist: 2331 2332 dMdv[varylist.index(name)][iBeg:iFin] += dpdV[i]*dervDict['pos'] 2332 if Ka2 :2333 if Ka2 and iFin2-iBeg2: 2333 2334 dMdv[varylist.index(name)][iBeg2:iFin2] += dpdV[i]*dervDict2['pos'] 2334 2335 elif name in dependentVars: 2335 2336 depDerivDict[name][iBeg:iFin] += dpdV[i]*dervDict['pos'] 2336 if Ka2 :2337 if Ka2 and iFin2-iBeg2: 2337 2338 depDerivDict[name][iBeg2:iFin2] += dpdV[i]*dervDict2['pos'] 2338 2339 if 'C' in calcControls[hfx+'histType']: … … 2343 2344 if name in varylist: 2344 2345 dMdv[varylist.index(name)][iBeg:iFin] += gamDict[name]*dervDict['gam'] 2345 if Ka2 :2346 if Ka2 and iFin2-iBeg2: 2346 2347 dMdv[varylist.index(name)][iBeg2:iFin2] += gamDict[name]*dervDict2['gam'] 2347 2348 elif name in dependentVars: 2348 2349 depDerivDict[name][iBeg:iFin] += gamDict[name]*dervDict['gam'] 2349 if Ka2 :2350 if Ka2 and iFin2-iBeg2: 2350 2351 depDerivDict[name][iBeg2:iFin2] += gamDict[name]*dervDict2['gam'] 2351 2352 for name in sigDict: 2352 2353 if name in varylist: 2353 2354 dMdv[varylist.index(name)][iBeg:iFin] += sigDict[name]*dervDict['sig'] 2354 if Ka2 :2355 if Ka2 and iFin2-iBeg2: 2355 2356 dMdv[varylist.index(name)][iBeg2:iFin2] += sigDict[name]*dervDict2['sig'] 2356 2357 elif name in dependentVars: 2357 2358 depDerivDict[name][iBeg:iFin] += sigDict[name]*dervDict['sig'] 2358 if Ka2 :2359 if Ka2 and iFin2-iBeg2: 2359 2360 depDerivDict[name][iBeg2:iFin2] += sigDict[name]*dervDict2['sig'] 2360 2361 for name in ['BabA','BabU']: … … 2362 2363 if phfx+name in varylist: 2363 2364 dMdv[varylist.index(phfx+name)][iBeg:iFin] += dFdvDict[pfx+name][iref]*dervDict['int']/refl[9+im] 2364 if Ka2 :2365 if Ka2 and iFin2-iBeg2: 2365 2366 dMdv[varylist.index(phfx+name)][iBeg2:iFin2] += dFdvDict[pfx+name][iref]*dervDict2['int']/refl[9+im] 2366 2367 elif phfx+name in dependentVars: 2367 2368 depDerivDict[phfx+name][iBeg:iFin] += dFdvDict[pfx+name][iref]*dervDict['int']/refl[9+im] 2368 if Ka2 :2369 if Ka2 and iFin2-iBeg2: 2369 2370 depDerivDict[phfx+name][iBeg2:iFin2] += dFdvDict[pfx+name][iref]*dervDict2['int']/refl[9+im] 2370 2371 if not Phase['General'].get('doPawley'): 2371 2372 #do atom derivatives - for RB,F,X & U so far 2372 2373 corr = dervDict['int']/refl[9+im] 2373 if Ka2 :2374 if Ka2 and iFin2-iBeg2: 2374 2375 corr2 = dervDict2['int']/refl[9+im] 2375 2376 for name in varylist+dependentVars: … … 2384 2385 if name in varylist: 2385 2386 dMdv[varylist.index(name)][iBeg:iFin] += dFdvDict[name][iref]*corr 2386 if Ka2 :2387 if Ka2 and iFin2-iBeg2: 2387 2388 dMdv[varylist.index(name)][iBeg2:iFin2] += dFdvDict[name][iref]*corr2 2388 2389 elif name in dependentVars: 2389 2390 depDerivDict[name][iBeg:iFin] += dFdvDict[name][iref]*corr 2390 if Ka2 :2391 if Ka2 and iFin2-iBeg2: 2391 2392 depDerivDict[name][iBeg2:iFin2] += dFdvDict[name][iref]*corr2 2392 2393 # print 'profile derv time: %.3fs'%(time.time()-time0)
Note: See TracChangeset
for help on using the changeset viewer.