Changeset 1976
- Timestamp:
- Sep 23, 2015 12:23:50 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIImath.py
r1974 r1976 924 924 ################################################################################ 925 925 926 def Modulation(waveTypes,SSUniq,SGT,FSSdata,XSSdata,USSdata, SStauM,Mast):926 def Modulation(waveTypes,SSUniq,SGT,FSSdata,XSSdata,USSdata,Mast): 927 927 import pypowder as pwd 928 928 … … 937 937 S: array ops 938 938 ''' 939 nx = 1940 939 if 'Fourier' in waveTypes: 940 nf = 0 941 941 nx = 0 942 942 XmodZ = 0 943 FmodZ = 0 944 if 'Crenel' in waveTypes: 945 nf = 1 946 FmodC = 0 #replace 943 947 else: 944 948 nx = 1 945 949 if 'Sawtooth' in waveTypes: 946 XmodZ = 0 950 XmodZ = 0 #replace 947 951 else: 948 XmodZ = 0 949 tau = np.arange(1.,Ax.shape[1]+1-nx)[:,nxs]*glTau #waves x 32 950 XmodA = Ax[:,nx:,:,nxs]*np.sin(twopi*tau[nxs,:,nxs,:]) #atoms X waves X pos X 32 951 XmodB = Bx[:,nx:,:,nxs]*np.cos(twopi*tau[nxs,:,nxs,:]) #atoms X waves X pos X 32 952 Xmod = np.sum(XmodA+XmodB+XmodZ,axis=1) #atoms X pos X 32; sum waves 953 D = H[:,3][:,nxs]*(glTau[nxs,:]+S[:,nxs]) #m*tau; ops X 32 954 HdotX = np.inner(np.swapaxes(Xmod,1,2),H[:,:3])+D.T[nxs,:,:] #atoms X 32 X ops 955 sinHA = np.sum(np.sin(twopi*HdotX)*glWt[nxs,:,nxs],axis=1) #atoms X ops 956 cosHA = np.sum(np.cos(twopi*HdotX)*glWt[nxs,:,nxs],axis=1) 957 # GSASIIpath.IPyBreak() 958 952 XmodZ = 0 #replace (use?) 953 if Af.shape[1]: 954 tauF = np.arange(1.,Af.shape[1]+1-nf)[:,nxs]*glTau #Fwaves x 32 955 FmodA = Af[:,nf:,nxs]*np.sin(twopi*tauF[nxs,:,:]) 956 FmodB = Bf[:,nf:,nxs]*np.cos(twopi*tauF[nxs,:,:]) 957 Fmod = np.sum(FmodA+FmodB+FmodC,axis=1) 958 else: 959 Fmod = 1.0 960 if Ax.shape[1]: 961 tauX = np.arange(1.,Ax.shape[1]+1-nx)[:,nxs]*glTau #Xwaves x 32 962 XmodA = Ax[:,nx:,:,nxs]*np.sin(twopi*tauX[nxs,:,nxs,:]) #atoms X waves X pos X 32 963 XmodB = Bx[:,nx:,:,nxs]*np.cos(twopi*tauX[nxs,:,nxs,:]) #ditto 964 Xmod = np.sum(XmodA+XmodB+XmodZ,axis=1) #atoms X pos X 32; sum waves 965 if Au.shape[1]: 966 tauU = np.arange(1.,Au.shape[1]+1)[:,nxs]*glTau #Uwaves x 32 967 UmodA = Au[:,:,:,:,nxs]*np.sin(twopi*tauU[nxs,:,nxs,nxs,:]) #atoms x waves x 3x3 x 32 968 UmodB = Bu[:,:,:,:,nxs]*np.cos(twopi*tauU[nxs,:,nxs,nxs,:]) #ditto 969 Umod = np.swapaxes(np.sum(UmodA+UmodB,axis=1),1,3) #atoms x 3x3 x 32; sum waves 970 HbH = np.exp(np.swapaxes(np.array([-np.inner(h,np.inner(Umod,h)) for h in H[:,:3]]),1,2)).T #Overhauser corr.? 971 else: 972 HbH = 1.0 973 D = H[:,3][:,nxs]*(glTau[nxs,:]+S[:,nxs]) #m*tau; ops X 32 974 HdotX = np.inner(np.swapaxes(Xmod,1,2),H[:,:3])+D.T[nxs,:,:] #atoms X 32 X ops 975 sinHA = np.sum(Fmod*HbH*np.sin(twopi*HdotX)*glWt[nxs,:,nxs],axis=1) #atoms X ops; sum for G-L integration 976 cosHA = np.sum(Fmod*HbH*np.cos(twopi*HdotX)*glWt[nxs,:,nxs],axis=1) #ditto 977 GSASIIpath.IPyBreak() 959 978 return cosHA.T,sinHA.T #ops X atoms 960 979 961 Smult,TauT = SStauM # both atoms x SGops962 980 Ax = np.array(XSSdata[:3]).T #atoms x waves x sin pos mods 963 981 Bx = np.array(XSSdata[3:]).T #...cos pos mods -
trunk/GSASIIplot.py
r1973 r1976 601 601 A = np.arccos(np.sum(V1*V0)) 602 602 Q = G2mth.AV2Q(-A,viewChoice[key][2]) 603 G2frame.G2plotNB.status.SetStatusText('zone = %s'%(str(viewChoice[key][0])),1) 603 604 else: 604 605 V0 = np.array(viewChoice[key][0]) … … 914 915 Zclip = 0.1 915 916 Q = drawingData['Quaternion'] 916 Tx,Ty,Tz = drawingData['viewPoint'][0] 917 Tx,Ty,Tz = drawingData['viewPoint'][0][:3] 917 918 G,g = G2lat.cell2Gmat(cell) 918 919 GS = G -
trunk/GSASIIstrMath.py
r1973 r1976 1036 1036 SSPhi = np.hstack((SSPhi,-SSPhi)) 1037 1037 # GSASIIpath.IPyBreak() 1038 GfpuA = G2mth.Modulation(waveTypes,SSUniq,SST,FSSdata,XSSdata,USSdata, SStauM,Mast)1038 GfpuA = G2mth.Modulation(waveTypes,SSUniq,SST,FSSdata,XSSdata,USSdata,Mast) 1039 1039 phase = twopi*(np.inner(Uniq,(dXdata.T+Xdata.T))+Phi[:,np.newaxis]) 1040 1040 sinp = np.sin(phase)
Note: See TracChangeset
for help on using the changeset viewer.