Changeset 2475


Ignore:
Timestamp:
Sep 21, 2016 10:01:41 AM (5 years ago)
Author:
vondreele
Message:

fix spin transform errors - now match old GSAS
fix spin flip import error from EXP file
fix bug on new phase after display on draw atoms (etc.)

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r2474 r2475  
    410410                            TabSelectionIdDict[Id] = 'Layers'
    411411                        wx.CallAfter(UpdateGeneral)
     412                    elif generalData['Type'] == 'magnetic':
     413                        SGData = generalData['SGData']
     414                        Nops = len(SGData['SGOps'])*len(SGData['SGCen'])
     415                        if SGData['SGInv']:
     416                            Nops *= 2
     417                        SGData['SpnFlp'] = Nops*[1,]
    412418                    else:
    413419                        if 'Wave Data' in pages:
     
    448454                    msg = 'Space Group Information'
    449455                    G2gd.SGMessageBox(General,msg,text,table).Show()
     456                if generalData['Type'] == 'magnetic':
     457                    Nops = len(SGData['SGOps'])*len(SGData['SGCen'])
     458                    if SGData['SGInv']:
     459                        Nops *= 2
     460                    SGData['SpnFlp'] = Nops*[1,]
    450461                if generalData['Modulated']:
    451462                    generalData['SuperSg'] = SetDefaultSSsymbol()
     
    22772288            atomData = data['Atoms']
    22782289            SGData = generalData['SGData']
     2290            SpnFlp = SGData.get('SpnFlp',[])
    22792291            dlg = G2gd.SymOpDialog(G2frame,SGData,True,True)
    22802292            New = False
     
    23002312                        atom[cx:cx+3] = XYZ
    23012313                        atom[css:css+2] = G2spc.SytSym(XYZ,SGData)[:2]
     2314                        OprNum = ((Opr+1)+100*Cent)*(1-2*Inv)
    23022315                        if atom[cuia] == 'A':
    23032316                            Uij = atom[cuij:cuij+6]
     
    23072320                            atom[cuij:cuij+6] = Uij
    23082321                        if cmx:
     2322                            opNum = G2spc.GetOpNum(OprNum,SGData)
    23092323                            mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    2310                             atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)
     2324                            atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    23112325                        if New:
    23122326                            atomData.append(atom)
     
    42854299                                opNum = G2spc.GetOpNum(OprNum,SGData)
    42864300                                mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4287                                 atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)
     4301                                atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    42884302                            if atom[cui] == 'A':
    42894303                                Uij = atom[cuij:cuij+6]
     
    43354349                                opNum = G2spc.GetOpNum(item[2],SGData)
    43364350                                mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4337                                 atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)
     4351                                atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    43384352                            atom[cs-1] = str(item[2])+'+'
    43394353                            atom[cuij:cuij+6] = item[1]
     
    43914405                            opNum = G2spc.GetOpNum(OprNum,SGData)
    43924406                            mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4393                             atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)
     4407                            atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    43944408                        atomOp = atom[cs-1]
    43954409                        newOp = str(((Opr+1)+100*Cent)*(1-2*Inv))+'+'+ \
     
    44594473                                        opNum = G2spc.GetOpNum(OpN,SGData)
    44604474                                        mom = np.inner(np.array(newAtom[cmx:cmx+3]),Bmat)
    4461                                         newAtom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)
     4475                                        newAtom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    44624476                                    atomData.append(newAtom[:cij+9])  #not SS stuff
    44634477            finally:
     
    44994513                                opNum = G2spc.GetOpNum(item[2],SGData)
    45004514                                mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4501                                 atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)
     4515                                atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    45024516                            atom[cs-1] = str(item[2])+'+' \
    45034517                                +str(item[3][0])+','+str(item[3][1])+','+str(item[3][2])
     
    45224536                                opNum = G2spc.GetOpNum(item[1],SGData)
    45234537                                mom = np.inner(np.array(atom[cmx:cmx+3]),Bmat)
    4524                                 atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)
     4538                                atom[cmx:cmx+3] = np.inner(np.inner(mom,M),Amat)*nl.det(M)*SpnFlp[opNum-1]
    45254539                            atom[cs-1] = str(item[1])+'+' \
    45264540                                +str(item[2][0])+','+str(item[2][1])+','+str(item[2][2])
  • trunk/GSASIIplot.py

    r2474 r2475  
    47764776    if generalData['Modulated']:
    47774777        SSGData = generalData['SSGData']
    4778     SpnFlp = SGData.get('SpnFlp',[])
     4778    SpnFlp = SGData.get('SpnFlp',[1,])
    47794779    Mydir = generalData['Mydir']
    47804780    Super = generalData.get('Super',0)
     
    57685768                if SpnFlp[OpNum] < 0:
    57695769                    color = Rd/255.
    5770                     Moment *= -1.
    57715770                RenderMoment(x,y,z,Moment,color)                   
    57725771
  • trunk/imports/G2phase.py

    r2473 r2475  
    262262                    self.warnings += "Change this in phase's General tab."                       
    263263            elif 'SPNFLP' in key:
    264                 SpnFlp = [int(s) for s in EXPphase[key].split()]
     264                SpnFlp = np.array([int(float(s)) for s in EXPphase[key].split()])
     265                SpnFlp = np.where(SpnFlp==0,1,SpnFlp)
    265266                if SGData['SpGrp'][0] in ['A','B','C','I','R','F']:
    266267                    SpnFlp += [1,1,1,1]
Note: See TracChangeset for help on using the changeset viewer.