Changeset 2121
- Timestamp:
- Jan 11, 2016 3:26:14 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIstrMath.py
r2115 r2121 1044 1044 Tindx = np.array([refDict['FF']['El'].index(El) for El in Tdata]) 1045 1045 FF = np.repeat(refDict['FF']['FF'][iBeg:iFin].T[Tindx].T,len(SGT),axis=0) 1046 Uniq = np.inner(H.T,SGMT) # array(nSGOp,3) or (nTwin,nSGOp,3) 1046 # GSASIIpath.IPyBreak() 1047 Uniq = np.inner(H.T,SGMT) # array(nSGOp,3) 1047 1048 Phi = np.inner(H.T,SGT) 1048 1049 phase = twopi*(np.inner(Uniq,(dXdata+Xdata).T).T+Phi.T).T … … 1058 1059 Hij = np.reshape(np.array([G2lat.UijtoU6(Uij) for Uij in Hij]),(-1,len(SGT),6)) 1059 1060 fot = np.reshape(((FF+FP).T-Bab).T,cosp.shape)*Tcorr 1060 fotp = FPP*Tcorr 1061 if len(FPP.shape) > 1: 1062 fotp = np.reshape(FPP,cosp.shape)*Tcorr 1063 else: 1064 fotp = FPP*Tcorr 1061 1065 if 'T' in calcControls[hfx+'histType']: 1062 1066 fa = np.array([fot*cosp,-np.reshape(Flack*FPP,sinp.shape)*sinp*Tcorr]) … … 1065 1069 fa = np.array([fot*cosp,-Flack*FPP*sinp*Tcorr]) 1066 1070 fb = np.array([fot*sinp,Flack*FPP*cosp*Tcorr]) 1067 # GSASIIpath.IPyBreak()1068 1071 fas = np.sum(np.sum(fa,axis=-1),axis=-1) #real sum over atoms & unique hkl array(2,refBlk,nTwins) 1069 1072 fbs = np.sum(np.sum(fb,axis=-1),axis=-1) #imag sum over atoms & uniq hkl 1070 fax = np.array([-fot*sinp,-fotp*cosp]) #positions array(2,refBlk,n twi,nEqv,nAtoms)1073 fax = np.array([-fot*sinp,-fotp*cosp]) #positions array(2,refBlk,nEqv,nAtoms) 1071 1074 fbx = np.array([fot*cosp,-fotp*sinp]) 1072 1075 #sum below is over Uniq 1073 dfadfr = np.sum(fa/occ,axis=-2) #array(2,refBlk,n twin,nAtom) Fdata != 0 avoids /0. problem1076 dfadfr = np.sum(fa/occ,axis=-2) #array(2,refBlk,nAtom) Fdata != 0 avoids /0. problem 1074 1077 dfadba = np.sum(-cosp*Tcorr,axis=-2) #array(refBlk,nAtom) 1075 1078 dfadx = np.sum(twopi*Uniq[nxs,:,nxs,:,:]*np.swapaxes(fax,-2,-1)[:,:,:,:,nxs],axis=-2) 1076 dfadui = np.sum(-SQfactor[nxs,:,nxs,nxs]*fa,axis=-2) #array(Ops,refBlk,n Tw,nAtoms)1079 dfadui = np.sum(-SQfactor[nxs,:,nxs,nxs]*fa,axis=-2) #array(Ops,refBlk,nAtoms) 1077 1080 dfadua = np.sum(-Hij[nxs,:,nxs,:,:]*np.swapaxes(fa,-2,-1)[:,:,:,:,nxs],axis=-2) 1078 1081 # array(2,refBlk,nAtom,3) & array(2,refBlk,nAtom,6) … … 1080 1083 dfbdfr = np.sum(fb/occ,axis=-2) #Fdata != 0 avoids /0. problem 1081 1084 dfbdba = np.sum(-sinp*Tcorr,axis=-2) 1082 dfadfl = np.sum(np.sum(- FPP*Tcorr*sinp,axis=-1),axis=-1)1083 dfbdfl = np.sum(np.sum( FPP*Tcorr*cosp,axis=-1),axis=-1)1085 dfadfl = np.sum(np.sum(-fotp*sinp,axis=-1),axis=-1) 1086 dfbdfl = np.sum(np.sum(fotp*cosp,axis=-1),axis=-1) 1084 1087 dfbdx = np.sum(twopi*Uniq[nxs,:,nxs,:,:]*np.swapaxes(fbx,-2,-1)[:,:,:,:,nxs],axis=-2) 1085 1088 dfbdui = np.sum(-SQfactor[nxs,:,nxs,nxs]*fb,axis=-2)
Note: See TracChangeset
for help on using the changeset viewer.