Changeset 4999
- Timestamp:
- Jul 22, 2021 2:09:36 PM (2 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIImath.py
r4997 r4999 1715 1715 if nWaves[3]: 1716 1716 tauM = np.arange(1.,nWaves[3]+1-nx)[:,nxs]*mglTau #Mwaves x ngl 1717 MmodA = Am[:,:,:,nxs]*np.sin(twopi*tauM[nxs,:,nxs,:]) #atoms X waves X 3 X ngl1717 MmodA = Am[:,:,:,nxs]*np.sin(twopi*tauM[nxs,:,nxs,:]) #atoms X waves X 3 X tau 1718 1718 MmodB = Bm[:,:,:,nxs]*np.cos(twopi*tauM[nxs,:,nxs,:]) #ditto 1719 1719 Mmod = np.sum(MmodA+MmodB,axis=1) … … 1744 1744 Sinv = np.vstack((Sinv,Sinv)) 1745 1745 SGT = np.vstack((SGT,SGT+np.array([0.,0.,0.,.5])))%1. 1746 mst = Sinv[:,3,:3]1747 1746 epsinv = Sinv[:,3,3] 1747 mst = np.inner(Sinv[:,:3,:3],modQ)-epsinv[:,nxs]*modQ #van Smaalen Eq. 3.3 1748 1748 phi = np.inner(XYZ,modQ).T 1749 1749 TA = np.sum(mst[nxs,:,:]*(XYZ-SGT[:,:3][nxs,:,:]),axis=-1).T 1750 phase = TA[nxs,:,:] + epsinv[nxs,:,nxs]*(glTau[:,nxs,nxs] -SGT[:,3][nxs,:,nxs]+phi[nxs,:,:])1750 phase = TA[nxs,:,:] + epsinv[nxs,:,nxs]*(glTau[:,nxs,nxs]+phi[nxs,:,:])+SGT[:,3][nxs,:,nxs] 1751 1751 psin = np.sin(twopi*phase) 1752 1752 pcos = np.cos(twopi*phase) … … 1759 1759 MmodAI = np.sum(SGMT[nxs,:,nxs,:,:]*MmodAI[:,:,:,nxs,:],axis=-1) 1760 1760 MmodBI = np.sum(SGMT[nxs,:,nxs,:,:]*MmodBI[:,:,:,nxs,:],axis=-1) 1761 return MmodAR,MmodBR,MmodAI,MmodBI #Ntau,Nops,Natm,Mxyz; cos & sin parts ; sum matches drawn atom moments1761 return MmodAR,MmodBR,MmodAI,MmodBI #Ntau,Nops,Natm,Mxyz; cos & sin parts 1762 1762 1763 1763 def Modulation(H,HP,nWaves,Fmod,Xmod,Umod,glTau,glWt): -
trunk/GSASIIpwdGUI.py
r4991 r4999 4625 4625 maxMH.Bind(wx.EVT_COMBOBOX, OnMaxMH) 4626 4626 ssSizer.Add(maxMH,0,WACV) 4627 findMV = wx.Button(G2frame.dataWindow,label="Find mod. vec.?") 4628 findMV.Bind(wx.EVT_BUTTON,OnFindOneMV) 4629 ssSizer.Add(findMV,0,WACV) 4630 findallMV = wx.Button(G2frame.dataWindow,label="Try all?") 4631 findallMV.Bind(wx.EVT_BUTTON,OnFindMV) 4632 ssSizer.Add(findallMV,0,WACV) 4627 if len(peaks[0]): 4628 findMV = wx.Button(G2frame.dataWindow,label="Find mod. vec.?") 4629 findMV.Bind(wx.EVT_BUTTON,OnFindOneMV) 4630 ssSizer.Add(findMV,0,WACV) 4631 findallMV = wx.Button(G2frame.dataWindow,label="Try all?") 4632 findallMV.Bind(wx.EVT_BUTTON,OnFindMV) 4633 ssSizer.Add(findallMV,0,WACV) 4633 4634 mainSizer.Add(ssSizer,0) 4634 4635 -
trunk/GSASIIstrMath.py
r4997 r4999 1510 1510 Nops *= 2 1511 1511 SSGMT = np.array([ops[0].T for ops in SSGData['SSGOps']]) 1512 GamI = np.array([ops[0][3,3] for ops in SSGData['SSGOps']]) 1513 if SGData['SGInv']: 1514 GamI = np.hstack((GamI,-GamI)) 1515 GamI = np.hstack([GamI for cen in SGData['SGCen']]) 1516 if SGData['SGGray']: 1517 GamI = np.hstack((GamI,GamI)) 1512 1518 SSGT = np.array([ops[1] for ops in SSGData['SSGOps']]) 1513 1519 SSCen = SSGData['SSGCen'] … … 1533 1539 1534 1540 MmodAR,MmodBR,MmodAI,MmodBI = G2mth.MagMod(glTau,mXYZ,modQ,MSSdata,SGData,SSGData) #Ntau,Nops,Natm,Mxyz cos,sin parts sum matches drawing 1541 MmodA = MmodAR+MmodBR 1542 MmodB = MmodAI+MmodBI 1535 1543 1536 1544 if not SGData['SGGray']: #for fixed Mx,My,Mz … … 1619 1627 fbm0 = TMcorr[:,nxs,:,nxs]*GSdata[nxs,:,:,:]*sinm[:,:,:,nxs] 1620 1628 # calc mag. structure factors; Nref,Ntau,Nops,Natm,Mxyz 1621 fams = TMcorr[:,nxs,nxs,:,nxs]* np.array([np.where(H[3,i]!=0,(1629 fams = TMcorr[:,nxs,nxs,:,nxs]*SGData['MagMom'][nxs,nxs,:,nxs,nxs]*np.array([np.where(H[3,i]!=0,( 1622 1630 (MmodAR+H[3,i]*MmodBR)*cosm[i,nxs,:,:,nxs]+ 1623 (-MmodAI+H[3,i]*MmodBI)*sinm[i,nxs,:,:,nxs])*SGData['SpnFlp'][nxs,:,nxs,nxs],1631 GamI[nxs,:,nxs,nxs]*(-MmodAI+H[3,i]*MmodBI)*sinm[i,nxs,:,:,nxs]), 1624 1632 0.) for i in range(mRef)])/2. #Nref,Ntau,Nops,Natm,Mxyz 1625 1633 1626 fbms = TMcorr[:,nxs,nxs,:,nxs]* np.array([np.where(H[3,i]!=0,(1634 fbms = TMcorr[:,nxs,nxs,:,nxs]*SGData['MagMom'][nxs,nxs,:,nxs,nxs]*np.array([np.where(H[3,i]!=0,( 1627 1635 (MmodAR+H[3,i]*MmodBR)*sinm[i,nxs,:,:,nxs]+ 1628 (-MmodAI+H[3,i]*MmodBI)*cosm[i,nxs,:,:,nxs])*SGData['SpnFlp'][nxs,:,nxs,nxs],1636 GamI[nxs,:,nxs,nxs]*(MmodAI-H[3,i]*MmodBI)*cosm[i,nxs,:,:,nxs]), 1629 1637 0.) for i in range(mRef)])/2. #Nref,Ntau,Nops,Natm,Mxyz 1630 1638
Note: See TracChangeset
for help on using the changeset viewer.