Ignore:
Timestamp:
Sep 9, 2019 11:50:58 AM (4 years ago)
Author:
vondreele
Message:

save some mSF work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIstrMath.py

    r4139 r4140  
    15281528        Kdata = np.inner(Mmod,uAmat)     #Cartesian vectors; Mxyz,Natm,Nop,Ntau
    15291529        Kmean = np.sqrt(np.sum(Kdata**2,axis=-1))
    1530         Kdata /= Kmean[:,:,:,nxs]      #Ntau,Nop,Natm,Mxyz
    1531 
     1530        Kdata /= Kmean[:,:,:,nxs]      #normalized cartesian mag. moment Ntau,Nop,Natm,Mxyz
    15321531
    15331532    FF = np.zeros(len(Tdata))
     
    16061605#                     
    16071606            HM = np.inner(Bmat,HP.T)                            #put into cartesian space
    1608             eM = HM/np.sqrt(np.sum(HM**2,axis=0)).T               #& normalize; Nref,Mhkl
    1609             eDotK = np.sum(eM[:,nxs,nxs,:]*Kdata[:,nxs,:,:],axis=0)
     1607            eM = (HM/np.sqrt(np.sum(HM**2,axis=0))).T               #& normalize; Nref,Mhkl
     1608            eDotK = np.sum(eM[:,nxs,nxs,nxs,:]*Kdata[nxs,:,:,:,:],axis=-1)  #Nref,Ntau,Nops,Natm
     1609            Q = eM[:,nxs,nxs,nxs,:]*eDotK[:,:,:,:,nxs]-Kdata[nxs,:,:,:,:]   #Nref,Ntau,Nops,Natm,Mxyz
     1610            Q = 1.0
    16101611           
    16111612            fam0 = 0.
    16121613            fbm0 = 0.
    16131614            if not SGData['SGGray']:     #correct -fixed Mx,My,Mz contribution             
    1614                 fam0 = TMcorr[:,nxs,:,nxs]*GSdata[nxs,:,:,:]*cosm[:,:,:,nxs]    #Nref,Nops,Natm,Mxyz
    1615                 fbm0 = TMcorr[:,nxs,:,nxs]*GSdata[nxs,:,:,:]*sinm[:,:,:,nxs]   
     1615                fam0 = Q*TMcorr[:,nxs,nxs,:,nxs]*GSdata[nxs,nxs,:,:,:]*cosm[:,nxs,:,:,nxs]    #Nref,Ntau,Nops,Natm,Mxyz
     1616                fbm0 = Q*TMcorr[:,nxs,nxs,:,nxs]*GSdata[nxs,nxs,:,:,:]*sinm[:,nxs,:,:,nxs]   
    16161617#for modulated moments --> m != 0 reflections
    16171618       
    1618             fams = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*cosm[i,nxs,:,:,nxs]-    \
     1619            fams = Q*TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*cosm[i,nxs,:,:,nxs]-    \
    16191620                np.sign(H[3,i])*MmodB*sinm[i,nxs,:,:,nxs]),0.) for i in range(mRef)])          #Nref,Ntau,Nops,Natm,Mxyz
    16201621                       
    1621             fbms = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*sinm[i,nxs,:,:,nxs]+    \
     1622            fbms = Q*TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*sinm[i,nxs,:,:,nxs]+    \
    16221623                np.sign(H[3,i])*MmodB*cosm[i,nxs,:,:,nxs]),0.) for i in range(mRef)])          #Nref,Ntau,Nops,Natm,Mxyz
    16231624           
     
    16251626                fams *= .5
    16261627                fbms *= .5
    1627                 fams += fam0[:,nxs,:,:,:]
    1628                 fbms += fbm0[:,nxs,:,:,:]
     1628                fams += fam0
     1629                fbms += fbm0
    16291630               
    16301631#   do GL integral before making mag F's - less correct; gives F's where there shouldn't be any                     
    1631            
    1632             faqs = np.sum(fams**2,axis=-1)*(1.-eDotK**2)      #mag intensity calc F^2-(e.F)^2
    1633             fbqs = np.sum(fbms**2,axis=-1)*(1.-eDotK**2)
    1634            
    1635             fass = np.sum(glWt[nxs,:,nxs,nxs]*faqs,axis=1)         #GL integration
    1636             fbss = np.sum(glWt[nxs,:,nxs,nxs]*fbqs,axis=1)
    1637            
    1638             fas = np.sum(np.sum(fass,axis=-1),axis=-1)      #Nref,Ntau,Mxyz; sum ops & atoms
    1639             fbs = np.sum(np.sum(fbss,axis=-1),axis=-1)
    1640 
     1632#                       
     1633#            fass = np.sum(glWt[nxs,:,nxs,nxs,nxs]*fams,axis=1)         #GL integration
     1634#            fbss = np.sum(glWt[nxs,:,nxs,nxs,nxs]*fbms,axis=1)
     1635#           
     1636#            fas = np.sum(np.sum(fass,axis=-1),axis=-1)      #Nref,Ntau,Mxyz; sum ops & atoms
     1637#            fbs = np.sum(np.sum(fbss,axis=-1),axis=-1)
     1638#            refl.T[10] = np.sum(fas**2,axis=1)+np.sum(fbs**2,axis=1)
     1639#            refl.T[11] = atan2d(fbs[:,0],fas[:,0])
     1640##
    16411641# do GL integral after making mag. F's - better but not right               
     1642               
    16421643            famqs = np.sum(np.sum(fams,axis=-2),axis=-2)      #Nref,Ntau,Mxyz; sum ops & atoms
    16431644            fbmqs = np.sum(np.sum(fbms,axis=-2),axis=-2)
     
    16521653            fbmcs = np.nan_to_num(fbmcs)
    16531654           
    1654             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
    1655             fbss = np.sum(fbmqs**2,axis=-1)*(1.-np.sum(eM.T[:,nxs,:]*fbmcs,axis=-1)**2)
     1655            fass = np.sum(famqs**2,axis=-1)*(1.-np.sum(eM[:,nxs,:]*famcs,axis=-1)**2)      #mag intensity calc F^2-(e.F)^2
     1656            fbss = np.sum(fbmqs**2,axis=-1)*(1.-np.sum(eM[:,nxs,:]*fbmcs,axis=-1)**2)       #WRONG - needs mag. moment not F!
    16561657           
    16571658            fas = np.sum(glWt*fass,axis=1)          #GL integration
     
    16601661            refl.T[10] = fas+fbs
    16611662            refl.T[11] = atan2d(fbs,fas)
    1662 
     1663#
    16631664        else:
    16641665            GfpuA = G2mth.Modulation(Uniq,UniqP,nWaves,Fmod,Xmod,Umod,glTau,glWt) #2 x refBlk x sym X atoms
Note: See TracChangeset for help on using the changeset viewer.