Changeset 2501


Ignore:
Timestamp:
Oct 22, 2016 1:21:40 PM (5 years ago)
Author:
vondreele
Message:

fix (again!) mag moment drawings
clean up testDeriv

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r2497 r2501  
    23172317            atomData = data['Atoms']
    23182318            SGData = generalData['SGData']
    2319             SpnFlp = SGData.get('SpnFlp',[])
    23202319            dlg = G2gd.SymOpDialog(G2frame,SGData,True,True)
    23212320            New = False
     
    43394338                                opNum = G2spc.GetOpNum(OprNum,SGData)
    43404339                                mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4341                                 print OprNum,newOp,opNum,SpnFlp
    4342                                 if Inv:
    4343                                     atom[cmx:cmx+3] = np.inner(np.inner(mom,-M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    4344                                 else:
    4345                                     atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
     4340#                                print OprNum,newOp,opNum,SpnFlp
     4341                                atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    43464342                            if atom[cui] == 'A':
    43474343                                Uij = atom[cuij:cuij+6]
     
    43934389                                opNum = G2spc.GetOpNum(item[2],SGData)
    43944390                                mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4395                                 if item[2] < 0:
    4396                                     atom[cmx:cmx+3] = np.inner(np.inner(mom,-M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    4397                                 else:
    4398                                     atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
     4391                                atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    43994392                            atom[cs-1] = str(item[2])+'+'
    44004393                            atom[cuij:cuij+6] = item[1]
     
    44524445                            opNum = G2spc.GetOpNum(OprNum,SGData)
    44534446                            mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4454                             if Inv:
    4455                                 atom[cmx:cmx+3] = np.inner(np.inner(mom,-M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    4456                             else:
    4457                                 atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
     4447                            atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    44584448                        atomOp = atom[cs-1]
    44594449                        newOp = str(((Opr+1)+100*Cent)*(1-2*Inv))+'+'+ \
     
    45374527            SGData = generalData['SGData']
    45384528            SpnFlp = SGData.get('SpnFlp',[])
     4529            MagMom = SGData.get('MagMom',[])
    45394530            wx.BeginBusyCursor()
    45404531            try:
     
    45524543                            opNum = G2spc.GetOpNum(item[2],SGData)
    45534544                            mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4554                             if item[2] < 0:
    4555                                 atom[cmx:cmx+3] = np.inner(np.inner(mom,-M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    4556                             else:
    4557                                 atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
     4545                            atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    45584546                        atom[cs-1] = str(item[2])+'+' \
    45594547                            +str(item[3][0])+','+str(item[3][1])+','+str(item[3][2])
  • trunk/GSASIIstrMath.py

    r2500 r2501  
    12541254        SQ = 1./(2.*refl.T[4])**2             # or (sin(theta)/lambda)**2
    12551255        SQfactor = 8.0*SQ*np.pi**2
    1256 #        GSASIIpath.IPyBreak()
    12571256        Uniq = np.inner(H,SGMT)             # array(nSGOp,3)
    12581257        Phi = np.inner(H,SGT)
     
    12631262        HbH = -np.sum(Uniq.T*np.swapaxes(np.inner(bij,Uniq),2,-1),axis=1)
    12641263        Tuij = np.where(HbH<1.,np.exp(HbH),1.0).T
     1264#        GSASIIpath.IPyBreak()
    12651265        Hij = np.array([Mast*np.multiply.outer(U,U) for U in np.reshape(Uniq,(-1,3))])
    12661266        Hij = np.reshape(np.array([G2lat.UijtoU6(Uij) for Uij in Hij]),(-1,len(SGT),6))
     
    12931293        fbmx = Q*TMcorr[nxs,:,nxs,:]*Mag[nxs,nxs,:,:]*cosm[nxs,:,:,:]
    12941294        #sum below is over Uniq
    1295         dfadfr = np.sum(fam/occ,axis=2)        #array(Mxyz,refBlk,nAtom) Fdata != 0 avoids /0. problem
    1296         dfadx = np.sum(twopi*Uniq[nxs,:,:,nxs,:]*famx[:,:,:,:,nxs],axis=2)
     1295        dfadfr = np.sum(fam/occ,axis=2)        #array(Mxyz,refBlk,nAtom) Fdata != 0 avoids /0. problem deriv OK
     1296        dfadx = np.sum(twopi*Uniq[nxs,:,:,nxs,:]*famx[:,:,:,:,nxs],axis=2)          #deriv OK
    12971297        dmx = dqdm[:,:,:,nxs,nxs]*Mag[nxs,nxs,nxs,:,:]+Q[nxs,:,:,:,:]*Gdata[:,nxs,nxs,:,:]
    12981298        dfadmx = np.sum(TMcorr[nxs,nxs,:,nxs,:]*cosm[nxs,nxs,:,:,:]*dmx,axis=-2)
    12991299        dfadmx = np.reshape(dfadmx,(3,iFin-iBeg,-1,3))
    1300         dfadui = np.sum(-SQfactor[:,nxs,nxs]*fam,axis=2) #array(Ops,refBlk,nAtoms)
    1301         dfadua = np.sum(-Hij[nxs,:,:,nxs,:]*fam[:,:,:,:,nxs],axis=2)
     1300        dfadui = np.sum(-SQfactor[:,nxs,nxs]*fam,axis=2) #array(Ops,refBlk,nAtoms)  OK
     1301        dfadua = np.sum(-Hij[nxs,:,:,nxs,:]*fam[:,:,:,:,nxs],axis=2)    #OK? not U12 & U23 in sarc
    13021302        # array(3,refBlk,nAtom,3) & array(3,refBlk,nAtom,6)
    13031303        dfbdfr = np.sum(fbm/occ,axis=2)        #array(mxyz,refBlk,nAtom) Fdata != 0 avoids /0. problem
     
    13071307        dfbdui = np.sum(-SQfactor[:,nxs,nxs]*fbm,axis=2) #array(Ops,refBlk,nAtoms)
    13081308        dfbdua = np.sum(-Hij[nxs,:,:,nxs,:]*fbm[:,:,:,:,nxs],axis=2)
    1309         dFdfr[iBeg:iFin] = np.sum(2.*(fams[:,:,nxs]*dfadfr+fbms[:,:,nxs]*dfbdfr)*Mdata/(2*Nops*Ncen),axis=0)
    1310         dFdx[iBeg:iFin] = np.sum(2.*(fams[:,:,nxs,nxs]*dfadx+fbms[:,:,nxs,nxs]*dfbdx),axis=0)
    1311         dFdMx[iBeg:iFin] = np.sum(2.*(fams[:,:,nxs,nxs]*dfadmx+fbms[:,:,nxs,nxs]*dfbdmx),axis=0)
     1309        dFdfr[iBeg:iFin] = 2.*np.sum((fams[:,:,nxs]*dfadfr+fbms[:,:,nxs]*dfbdfr)*Mdata/(2*Nops*Ncen),axis=0)
     1310        dFdx[iBeg:iFin] =  2.*np.sum(fams[:,:,nxs,nxs]*dfadx+fbms[:,:,nxs,nxs]*dfbdx,axis=0)
     1311        dFdMx[iBeg:iFin] = 2.*np.sum(fams[:,:,nxs,nxs]*dfadmx+fbms[:,:,nxs,nxs]*dfbdmx,axis=0)
    13121312        dFdui[iBeg:iFin] = 2.*np.sum(fams[:,:,nxs]*dfadui+fbms[:,:,nxs]*dfbdui,axis=0)
    13131313        dFdua[iBeg:iFin] = 2.*np.sum(fams[:,:,nxs,nxs]*dfadua+fbms[:,:,nxs,nxs]*dfbdua,axis=0)
  • trunk/testDeriv.py

    r2500 r2501  
    178178                if name in self.varylist:
    179179                    self.values[self.varylist.index(name)] -= delt
    180                 else:
     180                    M0 = G2stMth.errRefine(self.values,self.HistoPhases,self.parmDict,
     181                        varyList,self.calcControls,self.pawleyLookup,None)
     182                    self.values[self.varylist.index(name)] += 2.*delt
     183                    M1 = G2stMth.errRefine(self.values,self.HistoPhases,self.parmDict,
     184                        varyList,self.calcControls,self.pawleyLookup,None)
     185                    self.values[self.varylist.index(name)] -= delt
     186                else:   #in depVarList
    181187                    self.parmDict[name] -= delt
    182                 M0 = G2stMth.errRefine(self.values,self.HistoPhases,self.parmDict,
    183                     varyList,self.calcControls,self.pawleyLookup,None)
    184                 if name in self.varylist:
    185                     self.values[self.varylist.index(name)] += 2.*delt
    186                 else:
     188                    M0 = G2stMth.errRefine(self.values,self.HistoPhases,self.parmDict,
     189                        varyList,self.calcControls,self.pawleyLookup,None)
    187190                    self.parmDict[name] += 2.*delt
    188                 M1 = G2stMth.errRefine(self.values,self.HistoPhases,self.parmDict,
    189                     varyList,self.calcControls,self.pawleyLookup,None)
    190                 if name in self.varylist:
    191                     self.values[self.varylist.index(name)] -= delt
    192                 else:
     191                    M1 = G2stMth.errRefine(self.values,self.HistoPhases,self.parmDict,
     192                        varyList,self.calcControls,self.pawleyLookup,None)
    193193                    self.parmDict[name] -= delt   
    194194                Mn = (M1-M0)/(2.*delt)
     
    200200        while self.plotNB.nb.GetPageCount():
    201201            self.plotNB.nb.DeletePage(0)
     202        test1()
    202203        for use,name,delt in zip(self.use,self.varylist+self.depVarList,self.delt):
    203204            if use:
Note: See TracChangeset for help on using the changeset viewer.