Changeset 3591


Ignore:
Timestamp:
Sep 11, 2018 4:13:58 PM (5 years ago)
Author:
vondreele
Message:

work on FindNonstandard? for mag space groups
enhance UseMagAtomDialog? to show mag site symmetry

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIlattice.py

    r3590 r3591  
    357357    cba = np.rot90(np.eye(3))
    358358    cba[0,2] *= -1      #makes -cba
    359     Mats = {'abc':abc,'cab':np.roll(abc,2,1),'bca':np.roll(abc,1,1),
    360             'acb':np.roll(cba,1,1),'bac':np.roll(cba,2,1),'cba':cba}
    361     BNS = {'A':{'abc':'A','cab':'C','bca':'B','acb':'B','bac':'C','cba':'A'},
     359    Mats = {'abc':abc,'cab':np.roll(abc,1,1),'bca':np.roll(abc,2,1),
     360            'acb':np.roll(cba,1,1),'bac':np.roll(cba,2,1),'cba':cba}        #ok
     361    BNS = {'A':{'abc':'A','cab':'C','bca':'B','acb':'A','bac':'B','cba':'C'},   
    362362           'B':{'abc':'B','cab':'A','bca':'C','acb':'C','bac':'A','cba':'B'},
    363            'C':{'abc':'C','cab':'B','bca':'A','acb':'A','bac':'B','cba':'C'},
    364            'a':{'abc':'a','cab':'c','bca':'b','acb':'b','bac':'c','cba':'a'},
     363           'C':{'abc':'C','cab':'B','bca':'A','acb':'B','bac':'C','cba':'A'},
     364           'a':{'abc':'a','cab':'c','bca':'b','acb':'a','bac':'b','cba':'c'},   #Ok
    365365           'b':{'abc':'b','cab':'a','bca':'c','acb':'c','bac':'a','cba':'b'},
    366            'c':{'abc':'c','cab':'b','bca':'a','acb':'a','bac':'b','cba':'c'},
     366           'c':{'abc':'c','cab':'b','bca':'a','acb':'b','bac':'c','cba':'a'},
    367367           'S':{'abc':'S','cab':'S','bca':'S','acb':'S','bac':'S','cba':'S'},
    368368           }
    369     Fives = {'ababc':'abc','bcbca':'cba','acacb':'acb'}
    370369    Trans = Phase['Trans']
    371370    Uvec = Phase['Uvec']
     
    377376    spn = SGData['SGSpin']
    378377    if 'ortho' in SGData['SGSys']:
    379 #        transText = G2spc.Trans2Text(nl.inv(Trans.T))
    380         transText = G2spc.Trans2Text(Trans.T)
    381         lattSym = ''
    382         for fld in transText.split(','):
    383             if 'a' in fld: lattSym += 'a'
    384             if 'b' in fld: lattSym += 'b'
    385             if 'c' in fld: lattSym += 'c'
    386         if len(lattSym) == 5:
    387             print(transText,lattSym)
    388             lattSym = Fives[lattSym]
    389 #            return None
     378        lattSym = G2spc.getlattSym(Trans)
    390379        SpGrp = SGData['SpGrp']
    391         NUvec = np.inner(np.abs(Mats[lattSym]),Uvec)
    392         NTrans = np.inner(Mats[lattSym],Trans.T)
    393         spn[1:4] = np.inner(Mats[lattSym],spn[1:4])
    394         if lattSym != 'abc' and SpGrp in G2spc.altSettingOrtho:
    395             NSG = G2spc.altSettingOrtho[SpGrp].get(lattSym,SpGrp).replace("'",'').split(' ')
     380        NUvec = np.inner(Uvec,Mats[lattSym])    #ok
     381        NTrans = np.inner(Mats[lattSym],Trans.T)        #ok
     382        spn[1:4] = np.inner(np.abs(Mats[lattSym]),spn[1:4])         #ok
     383        SGsym = G2spc.getlattSym(Mats[lattSym])
     384       
     385        if lattSym != 'abc':
     386            NSG = G2spc.altSettingOrtho[SpGrp].get(SGsym,SpGrp).replace("'",'').split(' ')
    396387            Bns = ''
    397388            if bns:
  • trunk/GSASIIphsGUI.py

    r3590 r3591  
    572572        self.panel = wx.Panel(self)
    573573        Indx = {}
    574         Mstr = [' Mx ',' My ',' Mz ']
     574        Mstr = [' Mx',' My',' Mz']
    575575        mainSizer = wx.BoxSizer(wx.VERTICAL)
    576576       
    577         mainSizer.Add(wx.StaticText(self.panel,label='        Name, x, y, z, allowed moments:'),0,WACV)
     577        mainSizer.Add(wx.StaticText(self.panel,label='        Name, x, y, z, allowed moments, mag. site sym:'),0,WACV)
    578578        atmSizer = wx.FlexGridSizer(0,2,5,5)
    579579        for iuse,[use,atom,mxyz] in enumerate(zip(self.Use,self.Atoms,self.atMxyz)):
    580             mstr = [' __ ',' __ ',' __ ']
    581             for i,mx in enumerate(mxyz):
     580            mstr = [' ---',' ---',' ---']
     581            for i,mx in enumerate(mxyz[1]):
    582582                if mx:
    583583                    mstr[i] = Mstr[i]
     
    587587            useChk.Bind(wx.EVT_CHECKBOX, OnUseChk)
    588588            atmSizer.Add(useChk,0,WACV)
    589             text = '  %5s %10.5f %10.5f %10.5f %4s %4s %4s   '%(atom[0],atom[3],atom[4],atom[5],mstr[0],mstr[1],mstr[2])
     589            text = '  %5s %10.5f %10.5f %10.5f (%s,%s,%s) %s   '%(atom[0],atom[3],atom[4],atom[5],mstr[0],mstr[1],mstr[2],mxyz[0])
    590590            atmSizer.Add(wx.StaticText(self.panel,label=text),0,WACV)
    591591        mainSizer.Add(atmSizer)
     
    24152415                        SytSym,Mul,Nop,dupDir = G2spc.SytSym(atom[3:6],SGData)
    24162416                        CSI = G2spc.GetCSpqinel(SGData['SpnFlp'],dupDir)
    2417                         atMxyz.append(CSI[0])
     2417                        MagSytSym = G2spc.MagSytSym(SytSym,dupDir,SGData)
     2418                        atMxyz.append([MagSytSym,CSI[0]])
    24182419                    dlg = UseMagAtomDialog(G2frame,SGData['MagSpGrp'],Atoms,atCodes,atMxyz,ifDelete=False)
    24192420                    try:
    2420                         if dlg.ShowModal() == wx.ID_YES:
     2421                        opt = dlg.ShowModal()
     2422                        if  opt == wx.ID_YES:
    24212423                            newPhase['Atoms'],atCodes = dlg.GetSelection()
    24222424                            generalData['Lande g'] = len(generalData['AtomTypes'])*[2.,]
    24232425                            break
     2426                        else:
     2427                            return
    24242428                    finally:
    24252429                        dlg.Destroy()
     
    24892493                Atms.append(atom)
    24902494                AtCods.append(atCodes[ia])
    2491                 atMxyz.append(CSI[0])
     2495                MagSytSym = G2spc.MagSytSym(SytSym,dupDir,SGData)
     2496                atMxyz.append([MagSytSym,CSI[0]])
    24922497            dlg = UseMagAtomDialog(G2frame,magchoice['Name'],Atms,AtCods,atMxyz,ifDelete=True)
    24932498            try:
  • trunk/GSASIIpwdGUI.py

    r3590 r3591  
    34883488                    xyzs = G2spc.GenAtom(matm[3:6],SGData,False,Move=True)
    34893489                    for x in xyzs:
    3490 #                        xyz = np.inner((x[0]-Uvec),invTrans.T)
    34913490                        xyz = G2lat.TransformXYZ(x[0]-Uvec,invTrans.T,np.zeros(3))%1.
    34923491                        SytSym,Mul,Nop,dupDir = G2spc.SytSym(xyz,phase['SGData'])
  • trunk/GSASIIspc.py

    r3589 r3591  
    11161116        Text = Text.replace('1.0','').replace('.0','').replace('0.5','1/2')
    11171117    return Text[:-1]
     1118
     1119def getlattSym(Trans):
     1120    Fives = {'ababc':'abc','bcbca':'cba','acacb':'acb'}
     1121    transText = Trans2Text(Trans)
     1122    lattSym = ''
     1123    for fld in transText.split(','):
     1124        if 'a' in fld: lattSym += 'a'
     1125        if 'b' in fld: lattSym += 'b'
     1126        if 'c' in fld: lattSym += 'c'
     1127    if len(lattSym) == 5:
     1128        lattSym = Fives[lattSym]
     1129    return lattSym
     1130
    11181131
    11191132def Text2MT(mcifOpr,CIF=True):
Note: See TracChangeset for help on using the changeset viewer.