Ignore:
Timestamp:
Jan 13, 2018 9:20:13 AM (4 years ago)
Author:
vondreele
Message:

fix import of magnetic structures from .EXP files
complete list of pre & post 2002 cubic space groups
make sure SGDataSGGray? is present

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/imports/G2phase.py

    r3213 r3221  
    262262                    self.warnings += '\nThe GSAS space group was not interpreted(!) and has been set to "P 1".'
    263263                    self.warnings += "Change this in phase's General tab."                       
    264 #            elif 'SPNFLP' in key:
    265 #                SpnFlp = np.array([int(float(s)) for s in EXPphase[key].split()])
    266 #                SpnFlp = np.where(SpnFlp==0,1,SpnFlp)
    267 #                if SGData['SpGrp'][0] in ['A','B','C','I','R','F']:
    268 #                    SpnFlp += [1,1,1,1]
    269 #            elif 'MXDSTR' in key:
    270 #                MagDmin = float(EXPphase[key][:10])               
     264            elif 'SPNFLP' in key:
     265                SpnFlp = np.array([int(float(s)) for s in EXPphase[key].split()])
     266                SpnFlp = np.where(SpnFlp==0,1,SpnFlp)
     267                if SGData['SpGrp'][0] in ['A','B','C','I','R','F']:
     268                    SpnFlp += [1,1,1,1]
     269            elif 'MXDSTR' in key:
     270                MagDmin = float(EXPphase[key][:10])               
    271271            elif 'OD    ' in key:
    272272                SHdata = EXPphase[key].split() # may not have all 9 values
     
    285285                shNcof = int(SHvals[1])
    286286        Atoms = []
     287        Amat,Bmat = G2lat.cell2AB(abc+angles)
    287288        if Ptype in ['nuclear','magnetic',]:
    288289            for key in keyList:
     
    308309                        XYZ = Atom[3:6]
    309310                        Atom[7],Atom[8] = G2spc.SytSym(XYZ,SGData)[:2]
    310 #                        if Ptype == 'magnetic':
    311 #                            Atom = Atom[:7]+[0.,0.,0.]+Atom[7:]
    312311                        Atom.append(ran.randint(0,sys.maxsize))
    313312                        Atoms.append(Atom)
    314313                    elif key[11:] == 'M' and key[6:8] == 'AT':
     314                        Ptype = 'magnetic'
    315315                        S = EXPphase[key]
    316                         Atoms[-1] = Atom[:7]+[float(S[:10]),float(S[10:20]),float(S[20:30])]+Atom[7:]
     316                        mom = np.array([float(S[:10]),float(S[10:20]),float(S[20:30])])
     317                        mag = np.sqrt(np.sum(mom**2))
     318                        mom = np.inner(Bmat,mom)*mag
     319                        print (mom,mag)
     320                        Atoms[-1] = Atom[:7]+list(mom)+Atom[7:]
    317321        elif Ptype == 'macromolecular':
    318322            for key in keyList:
     
    355359        elif general['Type'] =='magnetic':
    356360            general['AtomPtrs'] = [3,1,10,12]
    357 #            general['SGData']['SGSpin'] = SpnFlp
    358 #            general['MagDmin'] = MagDmin   
     361            general['SGData']['SGSpin'] = SpnFlp
     362            general['MagDmin'] = MagDmin   
    359363        else:   #nuclear
    360364            general['AtomPtrs'] = [3,1,7,9]   
Note: See TracChangeset for help on using the changeset viewer.