Changeset 3300


Ignore:
Timestamp:
Mar 1, 2018 2:30:45 PM (5 years ago)
Author:
vondreele
Message:

magnetic phase changes, check importers, read old gpxfiles, etc.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIdataGUI.py

    r3290 r3300  
    26152615            self.OnGPXtreeEndDrag, id=G2G.wxID_GPXTREE)       
    26162616        self.root = self.GPXtree.root       
    2617 
    2618 #        self.dataWindow.SetupScrolling()
    26192617
    26202618        try:
  • trunk/GSASIIphsGUI.py

    r3297 r3300  
    136136        mainSizer.Add((0,10))
    137137        mainSizer.Add(btnsizer,0)
     138       
    138139        self.panel.SetSizer(mainSizer)
    139         size = np.array(self.GetSize())
    140         self.panel.SetupScrolling()
    141         size = [size[0]-5,size[1]-20]       #this fiddling is needed for older wx!
    142         self.panel.SetSize(size)
    143         self.panel.SetAutoLayout(1)
     140        self.panel.SetAutoLayout(True)
     141        self.panel.SetScrollRate(10,10)
     142        self.panel.SendSizeEvent()
     143
    144144
    145145    def Show(self):
     
    148148        self.ShowModal()
    149149        return
     150   
    150151
    151152################################################################################
     
    510511        mainSizer.Add(sgSizer,0,WACV)
    511512        if 'magnetic' not in self.Phase['General']['Type']:
    512             mag = wx.CheckBox(self.panel,label=' Make new phase magnetic?')
    513             mag.Bind(wx.EVT_CHECKBOX,OnMag)
    514             mainSizer.Add(mag,0,WACV)
     513            if self.ifMag:
     514                GenSym,GenFlg,BNSsym = G2spc.GetGenSym(SGData)
     515                BNSizer = wx.BoxSizer(wx.HORIZONTAL)
     516                BNSizer.Add(wx.StaticText(self.panel,label=' Select BNS lattice:'),0,WACV)
     517                BNS = wx.ComboBox(self.panel,value=SGData['BNSlattsym'][0],choices=list(BNSsym.keys()),style=wx.CB_READONLY|wx.CB_DROPDOWN)
     518                BNS.Bind(wx.EVT_COMBOBOX,OnBNSlatt)
     519                BNSizer.Add(BNS,0,WACV)
     520                mainSizer.Add(BNSizer,0,WACV)
     521            else:
     522                mag = wx.CheckBox(self.panel,label=' Make new phase magnetic?')
     523                mag.Bind(wx.EVT_CHECKBOX,OnMag)
     524                mainSizer.Add(mag,0,WACV)
    515525            mainSizer.Add(wx.StaticText(self.panel, \
    516526                label=' NB: Nonmagnetic atoms will be deleted from new phase'),0,WACV)
     
    521531            constr.Bind(wx.EVT_CHECKBOX,OnConstr)
    522532            mainSizer.Add(constr,0,WACV)
    523         if self.ifMag:
    524             GenSym,GenFlg,BNSsym = G2spc.GetGenSym(SGData)
    525             BNSizer = wx.BoxSizer(wx.HORIZONTAL)
    526             BNSizer.Add(wx.StaticText(self.panel,label=' BNS lattice:'),0,WACV)
    527             BNS = wx.ComboBox(self.panel,value=SGData['BNSlattsym'][0],choices=list(BNSsym.keys()),style=wx.CB_READONLY|wx.CB_DROPDOWN)
    528             BNS.Bind(wx.EVT_COMBOBOX,OnBNSlatt)
    529             BNSizer.Add(BNS,0,WACV)
    530             mainSizer.Add(BNSizer,0,WACV)
    531533        TestBtn = wx.Button(self.panel,-1,"Test")
    532534        TestBtn.Bind(wx.EVT_BUTTON, OnTest)
     
    18451847                    spinColor = ['black','red']
    18461848                    spCode = {-1:'red',1:'black'}
    1847                     for isym,sym in enumerate(GenSym):
     1849                    for isym,sym in enumerate(GenSym[1:]):
    18481850                        spinSizer.Add(wx.StaticText(General,label=' %s: '%(sym.strip())),0,WACV)               
    1849                         spinOp = wx.ComboBox(General,value=spCode[SGData['SGSpin'][isym]],choices=spinColor,
     1851                        spinOp = wx.ComboBox(General,value=spCode[SGData['SGSpin'][isym+1]],choices=spinColor,
    18501852                            style=wx.CB_READONLY|wx.CB_DROPDOWN)               
    18511853                        Indx[spinOp.GetId()] = isym
  • trunk/GSASIIspc.py

    r3297 r3300  
    113113        lattSpin += [1,1,1,1]
    114114    elif SGData['SGLatt'] == 'R':
    115         SGData['SGCen'] = np.array(([0,0,0],[1./3.,2./3.,2./3.],[2./3.,1./3.,1./3.]))
    116         lattSpin += [1,1,]
    117 
    118 #    if SGData['SGLaue'] == '2/m' and SGData['SGLatt'] != 'P' and '/' in SGData['SpGrp']:
    119 #        SGData['SGSpin'].append(1)  #fix bug in fortran
    120 #    if 'F' in SGData['SpGrp']:
    121 #        SGData['SGSpin'] += [1,1,1,1]
    122 #    elif 'R' in SGData['SpGrp']:
    123 #        SGData['SGSpin'] += [1,1,1]
    124 #    elif SGData['SpGrp'][0] in ['A','B','C','I']:
    125 #        SGData['SGSpin'] += [1,]
     115        SGData['SGCen'] = np.array(([0,0,0],[2./3,1./3,1./3],[1./3,2./3,2./3]))
    126116
    127117    if SGData['SGInv']:
     
    207197
    208198    if SGData['SGLatt'] == 'R':
    209         if SGData['SGPtGrp'] in ['3']:
     199        if SGData['SGPtGrp'] in ['3',]:
     200            SGData['SGSpin'] = 4*[1,]
     201        elif SGData['SGPtGrp'] in  ['-3','32','3m']:
     202            SGData['SGSpin'] = 5*[1,]
     203        elif SGData['SGPtGrp'] in  ['-3m',]:
     204            SGData['SGSpin'] = 6*[1,]
     205       
     206    else:
     207        if SGData['SGPtGrp'] in ['1','3','23',]:
    210208            SGData['SGSpin'] = lattSpin+[1,]
    211         else:
     209        elif SGData['SGPtGrp'] in ['-1','2','m','4','-4','-3','312','321','3m1','31m','6','-6','432','-43m','m3']:
     210            SGData['SGSpin'] = lattSpin+[1,1,]
     211        elif SGData['SGPtGrp'] in ['2/m','4/m','422','4mm','-42m','-4m2','-3m1','-31m',
     212            '6/m','622','6mm','-6m2','-62m','m-3m']:
    212213            SGData['SGSpin'] = lattSpin+[1,1,1,]
     214        else: #'222'-'mmm','4/mmm','6/mmm'
     215            SGData['SGSpin'] = lattSpin+[1,1,1,1,]
    213216           
    214          
    215     else:
    216         if SGData['SGPtGrp'] in ['1','3']:
    217             SGData['SGSpin'] = lattSpin
    218         elif SGData['SGPtGrp'] in ['-1','2','m','4','-4','-3','312','321','3m1','31m','6','-6','432','-43m',]:
    219             SGData['SGSpin'] = lattSpin+[1,]
    220         elif SGData['SGPtGrp'] in ['2/m','4/m','422','4mm','-42m','-4m2','-3m1','-31m',
    221             '6/m','622','6mm','-6m2','-62m',]:
    222             SGData['SGSpin'] = lattSpin+[1,1,]
    223         elif SGData['SGPtGrp'] in ['3',]:
    224             SGData['SGSpin'] = lattSpin+[1,1,1,1,]
    225         else: #'222'-'mmm','4/mmm','6/mmm'
    226             SGData['SGSpin'] = lattSpin+[1,1,1,]
    227217   
    228218    return SGInfo[-1],SGData
     
    578568    Nsyms = len(SGData['SGOps'])
    579569    if SGData['SGInv']: Nsyms *= 2
    580     UsymOp = []
    581     OprFlg = [
     570    UsymOp = ['1',]
     571    OprFlg = [0,
    582572    if Nsyms == 2:                    #Centric triclinic or acentric monoclinic
    583573        UsymOp.append(OprNames[1])
     
    701691    if 'P' in SGData['SGLatt']:
    702692        if SGData['SGSys'] == 'triclinic':
    703             BNSsym = {'P':[0,0,0],'P(a)':[.5,0,0],'P(b)':[0,.5,0],'P(c)':[0,0,.5]}           
     693            BNSsym = {'P(a)':[.5,0,0],'P(b)':[0,.5,0],'P(c)':[0,0,.5]}           
    704694        elif SGData['SGSys'] == 'monoclinic':
    705             BNSsym = {'P':[0,0,0],'P(a)':[.5,0,0],'P(b)':[0,.5,0],'P(c)':[0,0,.5]}
     695            BNSsym = {'P(a)':[.5,0,0],'P(b)':[0,.5,0],'P(c)':[0,0,.5]}
    706696            if SGData['SGUniq'] == 'a':
    707697                BNSsym.update({'P(B)':[.5,0,.5],'P(C)':[.5,.5,0]})
     
    711701                BNSsym.update({'P(A)':[0,.5,.5],'P(B)':[.5,0,.5]})
    712702        elif SGData['SGSys'] == 'orthorhombic':
    713             BNSsym = {'P':[0,0,0],'P(a)':[.5,0,0],'P(b)':[0,.5,0],'P(c)':[0,0,.5],
     703            BNSsym = {'P(a)':[.5,0,0],'P(b)':[0,.5,0],'P(c)':[0,0,.5],
    714704                'P(A)':[0,.5,.5],'P(B)':[.5,0,.5],'P(C)':[.5,.5,0],'P(I)':[.5,.5,.5]}
    715705        elif SGData['SGSys'] == 'tetragonal':
    716             BNSsym = {'P':[0,0,0],'P(c)':[0,0,.5],'P(C)':[.5,.5,0],'P(I)':[.5,.5,.5]}           
     706            BNSsym = {'P(c)':[0,0,.5],'P(C)':[.5,.5,0],'P(I)':[.5,.5,.5]}           
    717707        elif SGData['SGSys'] in ['trigonal','hexagonal']:
    718             BNSsym = {'P':[0,0,0],'P(c)':[0,0,.5]}           
     708            BNSsym = {'P(c)':[0,0,.5]}           
    719709        elif SGData['SGSys'] == 'cubic':
    720             BNSsym = {'P':[0,0,0],'P(I)':[.5,.5,.5]}           
     710            BNSsym = {'P(I)':[.5,.5,.5]}           
    721711           
    722712    elif 'A' in SGData['SGLatt']:
    723713        if SGData['SGSys'] == 'monoclinic':
    724             BNSsym = {'A':[0,0,0],}
     714            BNSsym = {}
    725715            if SGData['SGUniq'] == 'b':
    726716                BNSsym.update({'A(a)':[.5,0,0],'A(c)':[0,0,.5]})
     
    728718                BNSsym.update({'A(a)':[.5,0,0],'A(b)':[0,.5,0]})
    729719        elif SGData['SGSys'] == 'orthorhombic':
    730             BNSsym = {'A':[0,0,0],'A(a)':[.5,0,0],'A(b)':[0,.5,0],'A(c)':[0,0,.5],
     720            BNSsym = {'A(a)':[.5,0,0],'A(b)':[0,.5,0],'A(c)':[0,0,.5],
    731721               'A(B)':[.5,0,.5],'A(C)':[.5,.5,0]}   
     722        elif SGData['SGSys'] == 'triclinic':
     723            BNSsym = {'A(a)':[.5,0,0],'A(b)':[0,.5,0],'A(c)':[0,0,.5]}   
    732724           
    733725    elif 'B' in SGData['SGLatt']:
    734726        if SGData['SGSys'] == 'monoclinic':
    735             BNSsym = {'B':[0,0,0],}
     727            BNSsym = {}
    736728            if SGData['SGUniq'] == 'a':
    737729                BNSsym.update({'B(b)':[0,.5,0],'B(c)':[0,0,.5]})
     
    739731                BNSsym.update({'B(a)':[.5,0,0],'B(b)':[0,.5,0]})
    740732        elif SGData['SGSys'] == 'orthorhombic':
    741             BNSsym = {'B':[0,0,0],'B(a)':[.5,0,0],'B(b)':[0,.5,0],'B(c)':[0,0,.5],
     733            BNSsym = {'B(a)':[.5,0,0],'B(b)':[0,.5,0],'B(c)':[0,0,.5],
    742734                'B(A)':[0,.5,.5],'B(C)':[.5,.5,0]}     
     735        elif SGData['SGSys'] == 'triclinic':
     736            BNSsym = {'B(a)':[.5,0,0],'B(b)':[0,.5,0],'B(c)':[0,0,.5]}     
    743737           
    744738    elif 'C' in SGData['SGLatt']:
    745739        if SGData['SGSys'] == 'monoclinic':
    746             BNSsym = {'C':[0,0,0],}
     740            BNSsym = {}
    747741            if SGData['SGUniq'] == 'a':
    748742                BNSsym.update({'C(b)':[0,.5,.0],'C(c)':[0,0,.5]})
     
    750744                BNSsym.update({'C(a)':[.5,0,0],'C(c)':[0,0,.5]})
    751745        elif SGData['SGSys'] == 'orthorhombic':
    752             BNSsym = {'C':[0,0,0],'C(a)':[.5,0,0],'C(b)':[0,.5,0],'C(c)':[0,0,.5],
     746            BNSsym = {'C(a)':[.5,0,0],'C(b)':[0,.5,0],'C(c)':[0,0,.5],
    753747                'C(A)':[0,.5,.5],'C(B)':[.5,0,.5]}     
     748        elif SGData['SGSys'] == 'triclinic':
     749            BNSsym = {'C(a)':[.5,0,0],'C(b)':[0,.5,0],'C(c)':[0,0,.5]}     
    754750           
    755751    elif 'I' in SGData['SGLatt']:
    756         if SGData['SGSys'] in ['monoclinic','orthorhombic']:
    757             BNSsym = {'I':[0,0,0],'I(a)':[.5,0,0],'I(b)':[0,.5,0],'I(c)':[0,0,.5]}
     752        if SGData['SGSys'] in ['monoclinic','orthorhombic','triclinic']:
     753            BNSsym = {'I(a)':[.5,0,0],'I(b)':[0,.5,0],'I(c)':[0,0,.5]}
    758754        elif SGData['SGSys'] == 'tetragonal':
    759             BNSsym = {'I':[0,0,0],'I(c)':[0,0,.5]}
     755            BNSsym = {'I(c)':[0,0,.5]}
    760756        elif SGData['SGSys'] == 'cubic':
    761             BNSsym = {'I':[0,0,0]}
     757            BNSsym = {}
    762758           
    763759    elif 'F' in SGData['SGLatt']:
    764         if SGData['SGSys'] in ['monoclinic','orthorhombic','cubic']:
    765             BNSsym = {'F':[0,0,0],'F(S)':[.5,.5,.5]}
     760        if SGData['SGSys'] in ['monoclinic','orthorhombic','cubic','triclinic']:
     761            BNSsym = {'F(S)':[.5,.5,.5]}
    766762           
    767763    elif 'R' in SGData['SGLatt']:
    768         BNSsym = {'R':[0,0,0],'R(I)':[0,0,.5]}
     764        BNSsym = {'R(I)':[0,0,.5]}
    769765    return UsymOp,OprFlg,BNSsym
    770766
     
    788784    elif '(I)' in BNS:
    789785        Tmat *= 2.0
     786        if 'R' in BNS:
     787            SGData['SGSpin'][-1] = -1
    790788    elif '(S)' in BNS:
    791789        SGData['SGSpin'][-1] = -1
     
    841839def MagSGSym(SGData):       #needs to use SGPtGrp not SGLaue!
    842840    SGLaue = SGData['SGLaue']
     841    if '1' not in SGData['GenSym']:        #patch for old gpx files
     842        SGData['GenSym'] = ['1',]+SGData['GenSym']
     843        SGData['SGSpin'] = [1,]+list(SGData['SGSpin'])
     844    if len(SGData['SGSpin'])<len(SGData['GenSym']):
     845        SGData['SGSpin'] = [1,]+list(SGData['SGSpin'])      #end patch
     846    GenSym = SGData['GenSym'][1:]       #skip identity
    843847    SpnFlp = SGData['SGSpin']
    844848#    print('SpnFlp',SpnFlp)
    845     GenSym = SGData['GenSym']
    846849    SGPtGrp = SGData['SGPtGrp']
    847     if not len(SpnFlp):
     850    if len(SpnFlp) == 1:
    848851        SGData['MagPtGp'] = SGPtGrp
    849852        return SGData['SpGrp']
     
    851854    if SGLaue in ['-1',]:
    852855        SGData['MagPtGp'] = SGPtGrp
    853         if SpnFlp[0] == -1:
     856        if SpnFlp[1] == -1:
    854857            magSym[1] += "'"
    855858            SGData['MagPtGp'] += "'"
     
    863866        if len(GenSym) == 3:
    864867            for i in [0,1,2]:
    865                 if SpnFlp[i] < 0:
     868                if SpnFlp[i+1] < 0:
    866869                    sym[i] += "'"
    867870                    Ptsym[i] += "'"
    868871        else:
    869872            for i in range(len(GenSym)):
    870                 if SpnFlp[i] < 0:                     
     873                if SpnFlp[i+1] < 0:                     
    871874                    sym[i] += "'"
    872875                    Ptsym[i] += "'"
     
    877880        for i in [0,1,2]:
    878881            SGData['MagPtGp'] += SGPtGrp[i]
    879             if SpnFlp[i] < 0:
     882            if SpnFlp[i+1] < 0:
    880883                magSym[i+1] += "'"
    881884                SGData['MagPtGp'] += "'"
     
    884887        if len(GenSym) == 2:
    885888            for i in [0,1]:
    886                 if SpnFlp[i] < 0:
     889                if SpnFlp[i+1] < 0:
    887890                    magSym[i+2] += "'"
    888891                    magPtGp[i+1] += "'"
    889             if SpnFlp[0]*SpnFlp[1] < 0:
     892            if SpnFlp[1]*SpnFlp[2] < 0:
    890893                magSym[1] += "'"
    891894                magPtGp[0] += "'"
     
    895898            magPtGp = ['','m','m']
    896899            for i in [0,1,2]:
    897                 if SpnFlp[i] < 0:
     900                if SpnFlp[i+1] < 0:
    898901                    if i:
    899902                        magSym[i+1] += "'"
     
    902905                        sym[1] += "'"
    903906                        Ptsym[0] += "'"
    904             if SpnFlp[1]*SpnFlp[2] < 0:
     907            if SpnFlp[2]*SpnFlp[3] < 0:
    905908                sym[0] += "'"                   
    906909                Ptsym[0] += "'"                   
     
    912915        if len(GenSym) == 2:
    913916            for i in [0,1]:
    914                 if SpnFlp[i] < 0:
     917                if SpnFlp[i+1] < 0:
    915918                    magSym[i+2] += "'"
    916919                    magPtGp[i+1] += "'"
    917             if SpnFlp[0]*SpnFlp[1] < 0:
     920            if SpnFlp[1]*SpnFlp[2] < 0:
    918921                magSym[1] += "'"
    919922                magPtGp[0] += "'"
     
    924927                magPtGp = ['','m','m']
    925928                for i in [0,1,2]:
    926                     if SpnFlp[i] < 0:
     929                    if SpnFlp[i+1] < 0:
    927930                        if i:
    928931                            magSym[i+1] += "'"
     
    931934                            sym[1] += "'"
    932935                            Ptsym[1] += "'"
    933                 if SpnFlp[1]*SpnFlp[2] < 0:
     936                if SpnFlp[2]*SpnFlp[3] < 0:
    934937                    sym[0] += "'"                   
    935938                    Ptsym[0] += "'"                   
     
    938941            else:
    939942                for i in [0,1]:
    940                     if SpnFlp[i] < 0:
     943                    if SpnFlp[i+1] < 0:
    941944                        magSym[i+2] += "'"
    942                 if SpnFlp[0]*SpnFlp[1] < 0:
     945                if SpnFlp[1]*SpnFlp[2] < 0:
    943946                    magSym[1] += "'"
    944947        SGData['MagPtGp'] = ''.join(magPtGp)
     
    952955                id = 1
    953956            magSym[id].strip("'")
    954             if SpnFlp[0] < 0:
     957            if SpnFlp[1] < 0:
    955958                magSym[id] += "'"
    956959                Ptsym[id-1] += "'"
     
    958961            if 'R' in GenSym[1]:
    959962                magSym[-1].strip("'")
    960                 if SpnFlp[0] < 0:
     963                if SpnFlp[1] < 0:
    961964                    magSym[-1] += "'"
    962965                    Ptsym[-1] += "'"
     
    969972                magSym[j].strip("'")
    970973                Ptsym[j-1].strip("'")
    971                 if SpnFlp[:2] == [1,-1]:
     974                if SpnFlp[1:3] == [1,-1]:
    972975                    magSym[i] += "'"
    973976                    Ptsym[i-1] += "'"
    974                 elif SpnFlp[:2] == [-1,-1]:
     977                elif SpnFlp[1:3] == [-1,-1]:
    975978                    magSym[j] += "'"
    976979                    Ptsym[j-1] += "'"
    977                 elif SpnFlp[:2] == [-1,1]:
     980                elif SpnFlp[1:3] == [-1,1]:
    978981                    magSym[i] += "'"
    979982                    Ptsym[i-1] += "'"
     
    987990                magSym[j].strip("'")
    988991                Ptsym[j-1].strip("'")
    989                 if SpnFlp[:2] == [1,-1]:
     992                if SpnFlp[1:3] == [1,-1]:
    990993                    magSym[i] += "'"
    991994                    Ptsym[i-1] += "'"
    992                 elif SpnFlp[:2] == [-1,-1]:
     995                elif SpnFlp[1:3] == [-1,-1]:
    993996                    magSym[j] += "'"
    994997                    Ptsym[j-1] += "'"
    995                 elif SpnFlp[:2] == [-1,1]:
     998                elif SpnFlp[2] == [-1,1]:
    996999                    magSym[i] += "'"
    9971000                    Ptsym[i-1] += "'"
     
    10031006    elif SGData['SGPtGrp'] == 'm3':
    10041007        SGData['MagPtGp'] = "m3"
    1005         if SpnFlp[0] < 0:
     1008        if SpnFlp[1] < 0:
    10061009            magSym[1] += "'"
    10071010            magSym[2] += "'"
    10081011            SGData['MagPtGp'] = "m'3'"
    1009         if SpnFlp[1] < 0:
     1012        if SpnFlp[2] < 0:
    10101013            if not 'm' in magSym[1]:    #only Ia3
    10111014                magSym[1].strip("'")
     
    10131016    elif SGData['SGPtGrp'] in ['432','-43m']:
    10141017        Ptsym = SGData['SGPtGrp'].split('3')
    1015         if SpnFlp[0] < 0:
     1018        if SpnFlp[1] < 0:
    10161019            magSym[1] += "'"
    10171020            Ptsym[0] += "'"
     
    10211024    elif SGData['SGPtGrp'] == 'm-3m':
    10221025        Ptsym = ['m','3','m']
    1023         if SpnFlp[:2] == [-1,1]:
     1026        if SpnFlp[1:3] == [-1,1]:
    10241027            magSym[1] += "'"
    10251028            Ptsym[0] += "'"
    10261029            magSym[2] += "'"
    10271030            Ptsym[1] += "'"
    1028         elif SpnFlp[:2] == [1,-1]:
     1031        elif SpnFlp[1:3] == [1,-1]:
    10291032            magSym[3] += "'"
    10301033            Ptsym[2] += "'"
    1031         elif SpnFlp[:2] == [-1,-1]:
     1034        elif SpnFlp[1:3] == [-1,-1]:
    10321035            magSym[1] += "'"
    10331036            Ptsym[0] += "'"
     
    11061109        OprNames += OprName   
    11071110    SpnFlp = np.ones(Nsym,dtype=np.int)
    1108     Nfl = len(SGData.get('GenFlg',[]))
    1109     if Nfl:
     1111    GenFlg = SGData.get('GenFlg',[0])
     1112    Nfl = len(GenFlg)
     1113    if Nfl>1:
    11101114        for ieqv in range(Nsym):
    11111115            for iunq in range(Nfl):
    1112                 if SGData['SGGen'][ieqv] & SGData['GenFlg'][iunq]:
     1116                if SGData['SGGen'][ieqv] & GenFlg[iunq]:
    11131117                    SpnFlp[ieqv] *= FlpSpn[iunq]
    1114     #    print '\nMagSpGrp:',SGData['MagSpGrp'],Ncv
    1115     #    print 'GenFlg:',SGData['GenFlg']
    1116     #    print 'GenSym:',SGData['GenSym']
    1117     #    print 'FlpSpn:',Nfl,FlpSpn
     1118#        print ('\nMagSpGrp:',SGData['MagSpGrp'],Ncv)
     1119#        print ('GenFlg:',SGData['GenFlg'])
     1120#        print ('GenSym:',SGData['GenSym'])
     1121#        print ('FlpSpn:',Nfl,FlpSpn)
    11181122        detM = [nl.det(M) for M in sgOp]
    11191123        for incv in range(Ncv):
    11201124            if incv:
    1121                 SpnFlp = np.concatenate((SpnFlp,SpnFlp[:Nsym]*FlpSpn[Nfl+incv-1]))
     1125                try:
     1126                    SpnFlp = np.concatenate((SpnFlp,SpnFlp[:Nsym]*FlpSpn[Nfl+incv-1]))
     1127                except IndexError:
     1128                    FlpSpn = [1,]+FlpSpn
     1129                    SpnFlp = np.concatenate((SpnFlp,SpnFlp[:Nsym]*FlpSpn[Nfl+incv-1]))                   
    11221130        if ' 1bar ' in SGData['GenSym'][0] and FlpSpn[0] < 0:
    11231131            detM[1] = 1.
    11241132        MagMom = SpnFlp*np.array(Ncv*detM)
    11251133        SGData['MagMom'] = MagMom
    1126 #    print 'SgOps:',OprNames
    1127 #    print 'SGGen:',SGData['SGGen']
    1128 #    print 'SpnFlp:',SpnFlp
    1129 #    print 'MagMom:',MagMom
     1134#        print ('SgOps:',OprNames)
     1135#        print ('SGGen:',SGData['SGGen'])
     1136#        print ('SpnFlp:',SpnFlp)
     1137#        print ('MagMom:',MagMom)
    11301138    return OprNames,SpnFlp
    11311139   
     
    21712179    "returns Mxyz terms, multipliers, GUI flags"
    21722180    CSI = [[1,2,3],[1.0,1.0,1.0]]
    2173     if '-1' in siteSym and SpnFlp[len(SpnFlp)//2] < 0:
    2174         return [[0,0,0],[0.,0.,0.]]
     2181    if siteSym.strip() in ['-1','m3m']:
     2182        if SpnFlp[len(SpnFlp)//2] < 0:
     2183            return [[0,0,0],[0.,0.,0.]]
     2184        else:
     2185            return [[1,1,1],[1.,1.,1.]]
    21752186    for opr in dupDir:
    21762187        indx = GetNXUPQsym(opr)
  • trunk/imports/G2phase.py

    r3266 r3300  
    274274                SpnFlp = np.array([int(float(s)) for s in EXPphase[key].split()])
    275275                SpnFlp = np.where(SpnFlp==0,1,SpnFlp)
     276                SpnFlp = [1,]+list(SpnFlp)
    276277                if SGData['SpGrp'][0] in ['A','B','C','I','R','F']:
    277278                    SpnFlp = list(SpnFlp)+[1,1,1,1]
Note: See TracChangeset for help on using the changeset viewer.