Changeset 2481 for trunk/GSASIIstrIO.py


Ignore:
Timestamp:
Sep 30, 2016 10:33:12 AM (5 years ago)
Author:
vondreele
Message:

force Transform to delete nonmagnetic atoms if phase made magnetic & add 'mag' to new phase name
fix TOF cosine background function
magnetic structure refinement works (in numeric mode only)
magnetic structure factor calculation correct

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIstrIO.py

    r2478 r2481  
    10991099        BLtables.update(BLtable)
    11001100        phaseDict[pfx+'isMag'] = False
     1101        SGData = General['SGData']
     1102        SGtext,SGtable = G2spc.SGPrint(SGData)
    11011103        if General['Type'] == 'magnetic':
    11021104            MFtable = G2el.GetMFtable(General['AtomTypes'],General['Lande g'])
    11031105            MFtables.update(MFtable)
    11041106            phaseDict[pfx+'isMag'] = True
     1107            SpnFlp = SGData['SpnFlp']
    11051108        Atoms = PhaseData[name]['Atoms']
    11061109        if Atoms and not General.get('doPawley'):
     
    11081111            AtLookup = G2mth.FillAtomLookUp(Atoms,cia+8)
    11091112        PawleyRef = PhaseData[name].get('Pawley ref',[])
    1110         SGData = General['SGData']
    1111         SGtext,SGtable = G2spc.SGPrint(SGData)
    11121113        cell = General['Cell']
    11131114        A = G2lat.cell2A(cell[1:7])
     
    12081209                                G2mv.StoreEquivalence(name,equiv[1:])
    12091210                if 'M' in at[ct+1]:
    1210                     pass    #magnetic moment vary here
     1211                    SytSym,Mul,Nop = G2spc.SytSym(at[cx:cx+3],SGData)
     1212                    if SpnFlp[Nop] > 0.:    #black use p
     1213                        mId,mCoef = G2spc.GetCSpqinel(SytSym)[0]
     1214                    else:                   #red use q
     1215                        mId,mCoef = G2spc.GetCSpqinel(SytSym)[1]
     1216                    names = [pfx+'AMx:'+str(i),pfx+'AMy:'+str(i),pfx+'AMz:'+str(i)]
     1217                    equivs = [[],[],[]]
     1218                    for j in range(3):
     1219                        if mId[j] > 0:
     1220                            phaseVary.append(names[j])
     1221                            equivs[mId[j]-1].append([names[j],mCoef[j]])
     1222                    for equiv in equivs:
     1223                        if len(equiv) > 1:
     1224                            name = equiv[0][0]
     1225                            coef = equiv[0][1]
     1226                            for eqv in equiv[1:]:
     1227                                eqv[1] /= coef
     1228                                G2mv.StoreEquivalence(name,(eqv,))
    12111229                if General.get('Modulated',False):
    12121230                    AtomSS = at[-1]['SS1']
     
    19691987                names = {cx:pfx+'Ax:'+str(i),cx+1:pfx+'Ay:'+str(i),cx+2:pfx+'Az:'+str(i),cx+3:pfx+'Afrac:'+str(i),
    19701988                    cia+1:pfx+'AUiso:'+str(i),cia+2:pfx+'AU11:'+str(i),cia+3:pfx+'AU22:'+str(i),cia+4:pfx+'AU33:'+str(i),
    1971                     cia+5:pfx+'AU12:'+str(i),cia+6:pfx+'AU13:'+str(i),cia+7:pfx+'AU23:'+str(i)}
     1989                    cia+5:pfx+'AU12:'+str(i),cia+6:pfx+'AU13:'+str(i),cia+7:pfx+'AU23:'+str(i),
     1990                    cx+4:pfx+'AMx:'+str(i),cx+5:pfx+'AMy:'+str(i),cx+6:pfx+'AMz:'+str(i)}
    19721991                for ind in range(cx,cx+4):
    19731992                    at[ind] = parmDict[names[ind]]
     
    19842003                else:
    19852004                    for ind in range(cia+2,cia+8):
     2005                        at[ind] = parmDict[names[ind]]
     2006                        if names[ind] in sigDict:
     2007                            atomsSig[str(i)+':'+str(ind)] = sigDict[names[ind]]
     2008                if General['Type'] == 'magnetic':
     2009                    for ind in range(cx+4,cx+7):
    19862010                        at[ind] = parmDict[names[ind]]
    19872011                        if names[ind] in sigDict:
Note: See TracChangeset for help on using the changeset viewer.