Changeset 4145


Ignore:
Timestamp:
Sep 13, 2019 1:57:37 PM (4 years ago)
Author:
vondreele
Message:

mag. stuff again

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIstrMath.py

    r4144 r4145  
    10511051    Gdata = SGData['MagMom'][nxs,:,nxs]*Gdata   #flip vectors according to spin flip * det(opM)
    10521052    Mag = np.tile(Mag[:,nxs],Nops).T  #make Mag same length as Gdata
    1053     Kdata = np.inner(Gdata.T,uAmat).T     #Cartesian unit vectors
     1053    Kdata = np.inner(Gdata.T,uAmat).T
    10541054    Kmean = np.mean(np.sqrt(np.sum(Kdata**2,axis=0)),axis=0)
    1055     Kdata /= Kmean
     1055    Kdata /= Kmean     #Cartesian unit vectors
    10561056    Uij = np.array(G2lat.U6toUij(Uijdata))
    10571057    bij = Mast*Uij.T
     
    15111511        mXYZ = np.array([[xyz[0] for xyz in list(G2spc.GenAtom(xyz,SGData,All=True,Move=True))] for xyz in (Xdata+dXdata).T])%1. #Natn,Nop,xyz
    15121512        MmodA,MmodB = G2mth.MagMod(glTau,mXYZ,modQ,MSSdata,SGData,SSGData)  #Ntau,Nops,Natm,Mxyz sum matches drawing
     1513        Mmod = MmodA+MmodB
    15131514       
    15141515        if not SGData['SGGray']:    #for fixed Mx,My,Mz
     
    15191520            GSdata = SGData['MagMom'][nxs,:,nxs]*GSdata   #flip vectors according to spin flip * det(opM)
    15201521            GSdata = np.swapaxes(GSdata,0,1)    #Nop,Natm,Mxyz
     1522            Mmod += GSdata[nxs,:,:,:]
     1523           
     1524        Kdata = np.inner(Mmod,uAmat)    #Ntau,Nop,Natm,Mxyz
     1525        Mag = np.sqrt(np.sum(Kdata**2,axis=-1))
     1526        Kdata /= Mag[:,:,:,nxs]     #Cartesian unit vectors
     1527        Kdata = np.nan_to_num(Kdata)    #Ntau,Nops,Natm,Mxyz       
    15211528
    15221529    FF = np.zeros(len(Tdata))
     
    15951602                     
    15961603            HM = np.inner(Bmat,HP.T)                            #put into cartesian space X||H,Z||H*L
    1597             eM = HM/np.sqrt(np.sum(HM**2,axis=0))               #& normalize
     1604            eM = (HM/np.sqrt(np.sum(HM**2,axis=0))).T               #& normalize    Nref,hkl
     1605            eDotK = np.sum(eM[:,nxs,nxs,nxs,:]*Kdata[nxs,:,:,:,:],axis=-1)    #Nref,Ntau,Nops,Natm
    15981606#for fixed moments --> m=0 reflections
    15991607            fam0 = 0.
     
    16161624                fbms += fbm0[:,nxs,:,:,:]
    16171625# do sum on ops, atms 1st                       
    1618             famqs = np.sum(np.sum(fams,axis=-2),axis=-2)      #Nref,Ntau,Mxyz; sum ops & atoms
    1619             fbmqs = np.sum(np.sum(fbms,axis=-2),axis=-2)
     1626            cos2 = np.sqrt(1.-eDotK**2)
    16201627           
    1621             famcs = np.inner(famqs,Bmat)    #convert to cartesian
    1622             fbmcs = np.inner(fbmqs,Bmat)     # as Nref,Ntau,Mxyz
     1628            famqs = np.sum(np.sum(fams*cos2[:,:,:,:,nxs],axis=-2),axis=-2)      #Nref,Ntau,Mxyz; sum ops & atoms
     1629            fbmqs = np.sum(np.sum(fbms*cos2[:,:,:,:,nxs],axis=-2),axis=-2)
    16231630           
    1624             famcs /= np.sqrt(np.sum(famcs**2,axis=-1))[:,:,nxs]     #normalize
    1625             fbmcs /= np.sqrt(np.sum(fbmcs**2,axis=-1))[:,:,nxs]
     1631            fass = np.sum(famqs**2,axis=-1)      #mag intensity calc F^2-(e.F)^2
     1632            fbss = np.sum(fbmqs**2,axis=-1)
    16261633           
    1627             famcs = np.nan_to_num(famcs)    #nan --> 0.0
    1628             fbmcs = np.nan_to_num(fbmcs)
    1629            
    1630             fass = np.sum(famqs**2,axis=-1)*(1.-np.sum(eM.T[:,nxs,:]*famcs,axis=-1)**2)      #mag intensity calc F^2-(e.F)^2
    1631             fbss = np.sum(fbmqs**2,axis=-1)*(1.-np.sum(eM.T[:,nxs,:]*fbmcs,axis=-1)**2)
    1632            
    1633 # do sum on ops atoms last? No!
    1634 #            famcs = np.inner(fams,Bmat)     #convert to cartesian
    1635 #            fbmcs = np.inner(fbms,Bmat)     # as Nref,Ntau,Mxyz
    1636 #           
    1637 #            famcs /= np.sqrt(np.sum(famcs**2,axis=-1))[:,:,:,:,nxs]     #normalize
    1638 #            fbmcs /= np.sqrt(np.sum(fbmcs**2,axis=-1))[:,:,:,:,nxs]
    1639 #           
    1640 #            famcs = np.nan_to_num(famcs)    #nan --> 0.0
    1641 #            fbmcs = np.nan_to_num(fbmcs)
    1642 #           
    1643 #            famqs = np.sum(fams**2,axis=-1)*(1.-np.sum(eM.T[:,nxs,nxs,nxs,:]*famcs,axis=-1)**2)      #mag intensity calc F^2-(e.F)^2
    1644 #            fbmqs = np.sum(fbms**2,axis=-1)*(1.-np.sum(eM.T[:,nxs,nxs,nxs,:]*fbmcs,axis=-1)**2)
    1645 #           
    1646 #            fass = np.sum(np.sum(famqs,axis=-1),axis=-1)      #Nref,Ntau,Mxyz; sum ops & atoms
    1647 #            fbss = np.sum(np.sum(fbmqs,axis=-1),axis=-1)
    1648 #           
    16491634#do integration           
    16501635            fas = np.sum(glWt*fass,axis=1)
Note: See TracChangeset for help on using the changeset viewer.