Changeset 2475 for trunk/GSASIIphsGUI.py


Ignore:
Timestamp:
Sep 21, 2016 10:01:41 AM (7 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.)

File:
1 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])
Note: See TracChangeset for help on using the changeset viewer.