Changeset 1914
- Timestamp:
- Jun 29, 2015 3:21:10 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIstrMath.py
r1913 r1914 819 819 Flack = 1.-2.*parmDict[phfx+'Flack'] 820 820 TwinLaw = np.array([[[1,0,0],[0,1,0],[0,0,1]],]) 821 Tw inDict = refDict.get('TwinDict',{})821 TwDict = refDict.get('TwDict',{}) 822 822 if 'S' in calcControls[hfx+'histType']: 823 823 TwinLaw = calcControls[phfx+'TwinLaw'] … … 855 855 H = np.squeeze(np.inner(H.T,TwinLaw)) #maybe array(blkSize,nTwins,3) or (blkSize,3) 856 856 TwMask = np.any(H,axis=-1) 857 if TwinLaw.shape[0] > 1 and Tw inDict:857 if TwinLaw.shape[0] > 1 and TwDict: 858 858 for ir in range(blkSize): 859 859 iref = ir+iBeg 860 if iref in Tw inDict:861 for i in Tw inDict[iref]:862 H[ir][i] = Tw inDict[iref][i]860 if iref in TwDict: 861 for i in TwDict[iref]: 862 H[ir][i] = TwDict[iref][i] 863 863 TwMask = np.any(H,axis=-1) 864 864 SQ = 1./(2.*refl.T[4])**2 #array(blkSize) … … 900 900 if len(TwinLaw) > 1: 901 901 refl.T[9] = np.sum(fas[:,:,0]**2,axis=0)+np.sum(fbs[:,:,0]**2,axis=0) #FcT from primary twin element 902 refl.T[7] = np.sum(TwinFr*np.sum(fas,axis=0)**2,axis=-1)+ \ 903 np.sum(TwinFr*np.sum(fbs,axis=0)**2,axis=-1) #Fc sum over twins 904 # what goes in refl.T[8]? (FoT) 902 refl.T[7] = np.sum(TwinFr*np.sum(TwMask[np.newaxis,:,:]*fas,axis=0)**2,axis=-1)+ \ 903 np.sum(TwinFr*np.sum(TwMask[np.newaxis,:,:]*fbs,axis=0)**2,axis=-1) #Fc sum over twins 905 904 refl.T[10] = atan2d(fbs[0].T[0],fas[0].T[0]) #ignore f' & f" 906 905 else: … … 921 920 BLtables = calcControls['BLtables'] 922 921 TwinLaw = np.array([[[1,0,0],[0,1,0],[0,0,1]],]) 922 TwDict = refDict.get('TwDict',{}) 923 923 if 'S' in calcControls[hfx+'histType']: 924 924 TwinLaw = calcControls[phfx+'TwinLaw'] … … 952 952 H = np.array(refl[:3]) 953 953 H = np.squeeze(np.inner(H.T,TwinLaw)) #maybe array(3,nTwins) or (3) 954 TwMask = np.any(H,axis=-1) 955 if TwinLaw.shape[0] > 1 and TwDict: 956 if iref in TwDict: 957 for i in TwDict[iref]: 958 H[i] = TwDict[iref][i] 959 TwMask = np.any(H,axis=-1) 954 960 SQ = 1./(2.*refl[4])**2 # or (sin(theta)/lambda)**2 955 961 SQfactor = 8.0*SQ*np.pi**2 … … 1023 1029 SB = fbs[0]+fas[1] 1024 1030 if nTwin > 1: 1025 dFdfr[iref] = [SA[it]*(dfadfr[0][it]+dfbdfr[1][it])*Mdata/len(Uniq[it])+ \1031 dFdfr[iref] = TwMask[:,np.newaxis]*[SA[it]*(dfadfr[0][it]+dfbdfr[1][it])*Mdata/len(Uniq[it])+ \ 1026 1032 SB[it]*(dfbdfr[0][it]+dfadfr[1][it])*Mdata/len(Uniq[it]) for it in range(nTwin)] 1027 dFdx[iref] = [SA[it]*(dfadx[it][0]+dfbdx[it][1])+SB[it]*(dfbdx[it][0]+dfadx[it][1]) for it in range(nTwin)]1028 dFdui[iref] = [SA[it]*(dfadui[0][it]+dfbdui[1][it])+SB[it]*(dfbdui[0][it]+dfadui[1][it]) for it in range(nTwin)]1029 dFdua[iref] = [SA[it]*(dfadua[it][0]+dfbdua[it][1])+SB[it]*(dfbdua[it][0]+dfadua[it][1]) for it in range(nTwin)]1030 dFdtw[iref] = np.sum(fas,axis=0)**2+np.sum(fbs,axis=0)**21033 dFdx[iref] = TwMask[:,np.newaxis,np.newaxis]*[SA[it]*(dfadx[it][0]+dfbdx[it][1])+SB[it]*(dfbdx[it][0]+dfadx[it][1]) for it in range(nTwin)] 1034 dFdui[iref] = TwMask[:,np.newaxis]*[SA[it]*(dfadui[0][it]+dfbdui[1][it])+SB[it]*(dfbdui[0][it]+dfadui[1][it]) for it in range(nTwin)] 1035 dFdua[iref] = TwMask[:,np.newaxis,np.newaxis]*[SA[it]*(dfadua[it][0]+dfbdua[it][1])+SB[it]*(dfbdua[it][0]+dfadua[it][1]) for it in range(nTwin)] 1036 dFdtw[iref] = TwMask*np.sum(fas,axis=0)**2+np.sum(fbs,axis=0)**2 1031 1037 else: 1032 1038 dFdfr[iref] = 2.*SA*(dfadfr[0]+dfbdfr[1])*Mdata/len(Uniq)+ \
Note: See TracChangeset
for help on using the changeset viewer.