Changeset 2096
- Timestamp:
- Dec 16, 2015 3:31:54 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIstrMath.py
r2094 r2096 875 875 if not SGData['SGInv']: 876 876 dfbdfr = np.sum(fb/occ,axis=-2) #Fdata != 0 avoids /0. problem 877 dfbdba = np.sum(-sinp*Tcorr[:,nxs],axis=1) 877 dfadba /= 2. 878 dfbdba = np.sum(-sinp*Tcorr[:,nxs],axis=1)/2. 878 879 dfbdui = np.sum(-SQfactor*fb,axis=-2) 879 880 if len(TwinLaw) > 1: … … 919 920 dFdua[iref] = 2.*SA*(dfadua[0]+dfadua[1])+2.*SB*(dfbdua[0]+dfbdua[1]) 920 921 dFdfl[iref] = -SA*dfadfl-SB*dfbdfl #array(nRef,) 921 dFdbab[iref] = 2.*fas[0]*np.array([np.sum(dfadba*dBabdA),np.sum(-dfadba*parmDict[phfx+'BabA']*SQfactor*dBabdA)]).T+ \922 2.*fbs[0]*np.array([np.sum(dfbdba*dBabdA),np.sum(-dfbdba*parmDict[phfx+'BabA']*SQfactor*dBabdA)]).T922 dFdbab[iref] = fas[0]*np.array([np.sum(dfadba*dBabdA),np.sum(-dfadba*parmDict[phfx+'BabA']*SQfactor*dBabdA)]).T+ \ 923 fbs[0]*np.array([np.sum(dfbdba*dBabdA),np.sum(-dfbdba*parmDict[phfx+'BabA']*SQfactor*dBabdA)]).T 923 924 # GSASIIpath.IPyBreak() 924 925 if not iref%100 : … … 1046 1047 Phi = np.inner(H,SGT) 1047 1048 phase = twopi*(np.inner(Uniq,(dXdata+Xdata).T).T+Phi.T).T 1048 sinp = np.sin(phase) 1049 sinp = np.sin(phase) #refBlk x nOps x nAtoms 1049 1050 cosp = np.cos(phase) 1050 1051 occ = Mdata*Fdata/len(SGT) … … 1074 1075 #sum below is over Uniq 1075 1076 dfadfr = np.sum(fa/occ,axis=-2) #array(2,refBlk,ntwin,nAtom) Fdata != 0 avoids /0. problem 1076 dfadba = np.sum(-cosp*Tcorr [:,nxs],axis=-2) #array(refBlk,nTwin,nOps,nAtom)1077 dfadba = np.sum(-cosp*Tcorr,axis=-2) #array(refBlk,nAtom) 1077 1078 if nTwin > 1: 1078 1079 dfadfr = np.swapaxes(dfadfr,0,1) … … 1088 1089 if not SGData['SGInv']: 1089 1090 dfbdfr = np.sum(fb/occ,axis=-2) #Fdata != 0 avoids /0. problem 1090 dfbdba = np.sum(-sinp*Tcorr [:,nxs],axis=-2)1091 dfbdba = np.sum(-sinp*Tcorr,axis=-2) 1091 1092 if len(TwinLaw) > 1: 1092 1093 dfbdfr = np.swapaxes(dfbdfr,0,1) … … 1138 1139 dFdua[iBeg:iFin] = 2.*SA[:,nxs,nxs]*(dfadua[0]+dfadua[1])+2.*SB[:,nxs,nxs]*(dfbdua[0]+dfbdua[1]) 1139 1140 dFdfl[iBeg:iFin] = -SA*dfadfl-SB*dfbdfl #array(nRef,) 1140 # dFdbab[iBeg:iFin] = 2.*fas[0]*np.array([np.sum(dfadba*dBabdA),np.sum(-dfadba*parmDict[phfx+'BabA']*SQfactor*dBabdA)]).T+ \1141 # 2.*fbs[0]*np.array([np.sum(dfbdba*dBabdA),np.sum(-dfbdba*parmDict[phfx+'BabA']*SQfactor*dBabdA)]).T1141 dFdbab[iBeg:iFin] = 2.*(fas[0,nxs]*np.array([np.sum(dfadba.T*dBabdA,axis=0),np.sum(-dfadba.T*parmDict[phfx+'BabA']*SQfactor*dBabdA,axis=0)])+ \ 1142 fbs[0,nxs]*np.array([np.sum(dfbdba.T*dBabdA,axis=0),np.sum(-dfbdba.T*parmDict[phfx+'BabA']*SQfactor*dBabdA,axis=0)])).T 1142 1143 # GSASIIpath.IPyBreak() 1143 1144 iBeg += blkSize … … 2980 2981 for item in ['BabA','BabU']: 2981 2982 if phfx+item in varylist: 2982 dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[p fx+item][iref]*parmDict[phfx+'Scale']*ref[11+im]2983 dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[phfx+item][iref]*parmDict[phfx+'Scale']*ref[11+im] 2983 2984 elif phfx+item in dependentVars: 2984 depDerivDict[phfx+item][iref] = w*dFdvDict[p fx+item][iref]*parmDict[phfx+'Scale']*ref[11+im]2985 depDerivDict[phfx+item][iref] = w*dFdvDict[phfx+item][iref]*parmDict[phfx+'Scale']*ref[11+im] 2985 2986 return dMdvh,depDerivDict,wdf 2986 2987
Note: See TracChangeset
for help on using the changeset viewer.