Ignore:
Timestamp:
Jul 23, 2020 12:28:51 PM (3 years ago)
Author:
vondreele
Message:

fix math error in incomm mag str fctr stuff $ expand equations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIstrMath.py

    r4531 r4533  
    15161516        if SGData['SGGray']:
    15171517            mXYZ = np.hstack((mXYZ,mXYZ))
    1518 # this done in wrong place - should be
    1519         MmodA,MmodB = G2mth.MagMod(glTau,mXYZ,modQ,MSSdata,SGData,SSGData)  #Ntau,Nops,Natm,Mxyz cos,sim parts sum matches drawing
    1520         Mmod = MmodA+MmodB
     1518
     1519        MmodAp,MmodBp,MmodAm,MmodBm = G2mth.MagMod(glTau,mXYZ,modQ,MSSdata,SGData,SSGData)  #Ntau,Nops,Natm,Mxyz cos,sim parts sum matches drawing
     1520#        MmodAp,MmodBp,MmodAm,MmodBm = G2mth.MagMod2(mXYZ,modQ,MSSdata,SGData,SSGData)  #Nops,Natm,Mxyz cos,sim parts sum matches drawing
    15211521       
    15221522        if not SGData['SGGray']:    #for fixed Mx,My,Mz
     
    15271527            GSdata = SGData['MagMom'][nxs,:,nxs]*GSdata   #flip vectors according to spin flip * det(opM)
    15281528            GSdata = np.swapaxes(GSdata,0,1)    #Nop,Natm,Mxyz
    1529             Mmod += GSdata[nxs,:,:,:]
    1530 
    1531 #        Kdata = np.inner(Mmod,uAmat)          #Ntau,Nops,Natm,Mxyz
    1532 #        Kmean = np.mean(np.sqrt(np.sum(Kdata**2,axis=0)),axis=0)
    1533 #        Kdata /= Kmean     #Ntau,Nops,Natm,Mxyz  Cartesian unit vectors along mag moments
    15341529       
    15351530    FF = np.zeros(len(Tdata))
     
    16081603            eM = (HM/np.sqrt(np.sum(HM**2,axis=0))).T    # normalize  HP  Nref,hkl=Unit vectors || Q
    16091604
    1610             fam0 = 0.
    1611             fbm0 = 0.
     1605#            fam0 = 0.
     1606#            fbm0 = 0.
    16121607            if not SGData['SGGray']:     #correct -fixed Mx,My,Mz contribution             
    16131608                fam0 = TMcorr[:,nxs,:,nxs]*GSdata[nxs,:,:,:]*cosm[:,:,:,nxs]    #Nref,Nops,Natm,Mxyz
    16141609                fbm0 = TMcorr[:,nxs,:,nxs]*GSdata[nxs,:,:,:]*sinm[:,:,:,nxs]
    16151610#  calc mag. structure factors; Nref,Ntau,Nops,Natm,Mxyz                           
    1616             fams = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*cosm[i,nxs,:,:,nxs]+   
    1617                 H[3,i]*MmodB*sinm[i,nxs,:,:,nxs]),0.) for i in range(mRef)])          #Nref,Ntau,Nops,Natm,Mxyz
     1611#            fams = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*cosm[i,nxs,:,:,nxs]+   
     1612#                H[3,i]*MmodB*sinm[i,nxs,:,:,nxs]),0.) for i in range(mRef)])          #Nref,Ntau,Nops,Natm,Mxyz
     1613#                       
     1614#            fbms = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*sinm[i,nxs,:,:,nxs]+   
     1615#                H[3,i]*MmodB*cosm[i,nxs,:,:,nxs]),0.) for i in range(mRef)])          #Nref,Ntau,Nops,Natm,Mxyz
     1616#
     1617#            if not SGData['SGGray']:           
     1618#                fams += fam0[:,nxs,:,:,:]
     1619#                fbms += fbm0[:,nxs,:,:,:]
     1620               
     1621            fams = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,np.where(H[3,i]>0,
     1622                (MmodAp*cosm[i,nxs,:,:,nxs]+MmodBp*sinm[i,nxs,:,:,nxs]),
     1623                (MmodAm*cosm[i,nxs,:,:,nxs]+MmodBm*sinm[i,nxs,:,:,nxs])),0.) for i in range(mRef)])  #Nref,Nops,Natm,Mxyz
    16181624                       
    1619             fbms = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*sinm[i,nxs,:,:,nxs]+   
    1620                 H[3,i]*MmodB*cosm[i,nxs,:,:,nxs]),0.) for i in range(mRef)])          #Nref,Ntau,Nops,Natm,Mxyz
     1625            fbms = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,np.where(H[3,i]>0,
     1626                (MmodAp*sinm[i,nxs,:,:,nxs]+MmodBp*cosm[i,nxs,:,:,nxs]),
     1627                (MmodAm*sinm[i,nxs,:,:,nxs]+MmodBm*cosm[i,nxs,:,:,nxs])),0.) for i in range(mRef)])  #Nref,Nops,Natm,Mxyz
    16211628
    16221629            if not SGData['SGGray']:           
     
    16241631                fbms += fbm0[:,nxs,:,:,:]
    16251632               
    1626 # this is the best, but not exactly right
    16271633#sum ops & atms                               
    1628             fasm = np.sum(np.sum(fams,axis=-2),axis=-2)    #Nref,Ntau,Mxyz; sum ops & atoms
     1634            fasm = np.sum(np.sum(fams,axis=-2),axis=-2)    #Nref,Mxyz; sum ops & atoms
    16291635            fbsm = np.sum(np.sum(fbms,axis=-2),axis=-2)
    16301636#put into cartesian space
     
    16351641            eDotFb = np.sum(eM[:,nxs,:]*fbcm,axis=-1)
    16361642#intensity Halpern & Johnson
    1637 #            fass = np.sum((facm-eM[:,nxs,:]*eDotFa[:,:,nxs])**2,axis=-1)
    1638 #            fbss = np.sum((fbcm-eM[:,nxs,:]*eDotFb[:,:,nxs])**2,axis=-1)
    1639             fass = np.sum(facm**2,axis=-1)-eDotFa**2
    1640             fbss = np.sum(fbcm**2,axis=-1)-eDotFb**2
     1643            fass = np.sum((facm-eM[:,nxs,:]*eDotFa[:,:,nxs])**2,axis=-1)
     1644            fbss = np.sum((fbcm-eM[:,nxs,:]*eDotFb[:,:,nxs])**2,axis=-1)
    16411645## #do integration           
    16421646            fas = np.sum(fass*glWt[nxs,:],axis=1)
Note: See TracChangeset for help on using the changeset viewer.