Changeset 2089 for trunk/GSASIIstrMath.py
- Timestamp:
- Dec 11, 2015 1:34:43 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/GSASIIstrMath.py ¶
r2078 r2089 888 888 dfbdfl = 0.0 889 889 #NB: the above have been checked against PA(1:10,1:2) in strfctr.for for Al2O3! 890 SA = fas[0]+fas[1] 891 SB = fbs[0]+fbs[1] 890 892 if 'P' in calcControls[hfx+'histType']: #checked perfect for centro & noncentro 891 893 dFdfr[iref] = 2.*(fas[0]*dfadfr[0]+fas[1]*dfadfr[1])*Mdata/len(Uniq)+ \ … … 898 900 2.*(fbs[0]*dfbdua[0]+fbs[1]*dfbdua[1]) 899 901 else: 900 SA = fas[0]+fas[1]901 SB = fbs[0]+fbs[1]902 902 if nTwin > 1: 903 903 dFdfr[iref] = [2.*TwMask[it]*(SA[it]*dfadfr[0][it]+SA[it]*dfadfr[1][it]+SB[it]*dfbdfr[0][it]+SB[it]*dfbdfr[1][it])*Mdata/len(Uniq[it]) for it in range(nTwin)] … … 1258 1258 dfadGu = np.sum(fa[:,:,:,nxs,nxs]*dGdu[0][nxs,:,:,:,:]-fb[:,:,:,nxs,nxs]*dGdu[1][nxs,:,:,:,:],axis=1) 1259 1259 dfbdGu = np.sum(fb[:,:,:,nxs,nxs]*dGdu[0][nxs,:,:,:,:]+fa[:,:,:,nxs,nxs]*dGdu[1][nxs,:,:,:,:],axis=1) 1260 # GSASIIpath.IPyBreak() 1260 1261 if not SGData['SGInv'] and len(TwinLaw) == 1: #Flack derivative 1261 1262 dfadfl = np.sum(-FPP*Tcorr*sinp) … … 1268 1269 SB = fbs[0]+fbs[1] #float = B+B' (might be array[nTwin]) 1269 1270 if 'P' in calcControls[hfx+'histType']: #checked perfect for centro & noncentro 1270 dFdfr[iref] = 2.*(SA*dfadfr[0]+SA*dfadfr[1]+SB*dfbdfr[0]+SB*dfbdfr[1])*Mdata/len(Uniq) #array(nRef,nAtom)1271 dFdx[iref] = 2.*(SA*dfadx[0]+SA*dfadx[1]+SB*dfbdx[0]+SB*dfbdx[1]) #array(nRef,nAtom,3)1272 dFdui[iref] = 2.*(SA*dfadui[0]+SA*dfadui[1]+SB*dfbdui[0]+SB*dfbdui[1]) #array(nRef,nAtom)1273 dFdua[iref] = 2.*(SA*dfadua[0]+SA*dfadua[1]+SB*dfbdua[0]+SB*dfbdua[1]) #array(nRef,nAtom,6)1274 1271 dFdfl[iref] = -SA*dfadfl-SB*dfbdfl #array(nRef,) 1275 1276 dFdGf[iref] = 2.*(SA*dfadGf[0]+SB*dfbdGf[1]) #array(nRef,natom,nwave,2) 1277 dFdGx[iref] = 2.*(SA*dfadGx[0]+SB*dfbdGx[1]) #array(nRef,natom,nwave,6) 1278 dFdGz[iref] = 2.*(SA*dfadGz[0]+SB*dfbdGz[1]) #array(nRef,natom,5) 1279 dFdGu[iref] = 2.*(SA*dfadGu[0]+SB*dfbdGu[1]) #array(nRef,natom,nwave,12) 1280 # dFdfr[iref] = 2.*(fas[0]*dfadfr[0]+fas[1]*dfadfr[1])*Mdata/len(Uniq)+ \ 1281 # 2.*(fbs[0]*dfbdfr[0]-fbs[1]*dfbdfr[1])*Mdata/len(Uniq) 1282 # dFdx[iref] = 2.*(fas[0]*dfadx[0]+fas[1]*dfadx[1])+ \ 1283 # 2.*(fbs[0]*dfbdx[0]+fbs[1]*dfbdx[1]) 1284 # dFdui[iref] = 2.*(fas[0]*dfadui[0]+fas[1]*dfadui[1])+ \ 1285 # 2.*(fbs[0]*dfbdui[0]-fbs[1]*dfbdui[1]) 1286 # dFdua[iref] = 2.*(fas[0]*dfadua[0]+fas[1]*dfadua[1])+ \ 1287 # 2.*(fbs[0]*dfbdua[0]+fbs[1]*dfbdua[1]) 1288 # dFdGf[iref] = 2.*(fas[0]*dfadGf[0]+fas[1]*dfadGf[1])+ \ 1289 # 2.*(fbs[0]*dfbdGf[0]+fbs[1]*dfbdGf[1]) 1290 # dFdGx[iref] = 2.*(fas[0]*dfadGx[0]+fas[1]*dfadGx[1])+ \ 1291 # 2.*(fbs[0]*dfbdGx[0]+fbs[1]*dfbdGx[1]) 1292 # dFdGu[iref] = 2.*(fas[0]*dfadGu[0]+fas[1]*dfadGu[1])+ \ 1293 # 2.*(fbs[0]*dfbdGu[0]+fbs[1]*dfbdGu[1]) 1272 dFdfr[iref] = 2.*(fas[0]*dfadfr[0]+fas[1]*dfadfr[1])*Mdata/len(Uniq)+ \ 1273 2.*(fbs[0]*dfbdfr[0]-fbs[1]*dfbdfr[1])*Mdata/len(Uniq) 1274 dFdx[iref] = 2.*(fas[0]*dfadx[0]+fas[1]*dfadx[1])+ \ 1275 2.*(fbs[0]*dfbdx[0]+fbs[1]*dfbdx[1]) 1276 dFdui[iref] = 2.*(fas[0]*dfadui[0]+fas[1]*dfadui[1])+ \ 1277 2.*(fbs[0]*dfbdui[0]-fbs[1]*dfbdui[1]) 1278 dFdua[iref] = 2.*(fas[0]*dfadua[0]+fas[1]*dfadua[1])+ \ 1279 2.*(fbs[0]*dfbdua[0]+fbs[1]*dfbdua[1]) 1280 dFdGf[iref] = 2.*(fas[0]*dfadGf[0]+fas[1]*dfadGf[1])+ \ 1281 2.*(fbs[0]*dfbdGf[0]+fbs[1]*dfbdGf[1]) 1282 dFdGx[iref] = 2.*(fas[0]*dfadGx[0]+fas[1]*dfadGx[1])+ \ 1283 2.*(fbs[0]*dfbdGx[0]-fbs[1]*dfbdGx[1]) 1284 dFdGz[iref] = 2.*(fas[0]*dfadGz[0]+fas[1]*dfadGz[1])+ \ 1285 2.*(fbs[0]*dfbdGz[0]+fbs[1]*dfbdGz[1]) 1286 dFdGu[iref] = 2.*(fas[0]*dfadGu[0]+fas[1]*dfadGu[1])+ \ 1287 2.*(fbs[0]*dfbdGu[0]+fbs[1]*dfbdGu[1]) 1294 1288 else: 1295 1289 if nTwin > 1: … … 1315 1309 dFdGz[iref] = 2.*(SA*dfadGz[0]+SB*dfbdGz[1]) #array(nRef,natom,5) 1316 1310 dFdGu[iref] = 2.*(SA*dfadGu[0]+SB*dfbdGu[1]) #array(nRef,natom,nwave,12) 1311 # GSASIIpath.IPyBreak() 1317 1312 dFdbab[iref] = 2.*fas[0]*np.array([np.sum(dfadba*dBabdA),np.sum(-dfadba*parmDict[phfx+'BabA']*SQfactor*dBabdA)]).T+ \ 1318 1313 2.*fbs[0]*np.array([np.sum(dfbdba*dBabdA),np.sum(-dfbdba*parmDict[phfx+'BabA']*SQfactor*dBabdA)]).T … … 1364 1359 dFdvDict[pfx+'U23cos:'+str(i)+':'+str(j)] = 2.*dFdGu.T[11][j][i] 1365 1360 1366 # GSASIIpath.IPyBreak()1361 # GSASIIpath.IPyBreak() 1367 1362 dFdvDict[phfx+'BabA'] = dFdbab.T[0] 1368 1363 dFdvDict[phfx+'BabU'] = dFdbab.T[1] … … 1993 1988 vec = np.array([parmDict[pfx+'mV0'],parmDict[pfx+'mV1'],parmDict[pfx+'mV2']]) 1994 1989 dstsq = G2lat.calc_rDsqSS(np.array([h,k,l,m]),A,vec) 1990 h,k,l = [h+m*vec[0],k+m*vec[1],l+m*vec[2]] #do proj of hklm to hkl so dPdA & dPdV come out right 1995 1991 else: 1996 1992 m = 0 … … 2023 2019 dpdDB = 1./dsp 2024 2020 dpdV = np.array([2.*h*A[0]+k*A[3]+l*A[4],2*k*A[1]+h*A[3]+l*A[5], 2025 2*l*A[2]+h*A[4]+k*A[5]])*m* *parmDict[hfx+'difC']*dsp**3/2.2021 2*l*A[2]+h*A[4]+k*A[5]])*m*parmDict[hfx+'difC']*dsp**3/2. 2026 2022 return dpdA,dpdZ,dpdDC,dpdDA,dpdDB,dpdV 2027 2023
Note: See TracChangeset
for help on using the changeset viewer.