Changeset 3221


Ignore:
Timestamp:
Jan 13, 2018 9:20:13 AM (6 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

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r3220 r3221  
    11571157                generalData['AtomPtrs'] = [3,1,10,12]
    11581158        if generalData['Modulated']:
    1159             if 'SGGray' not in generalData['SGData']:
    1160                 generalData['SGData']['SGGray'] = False
    1161             generalData['Modulated'] = True
    11621159            if 'Super' not in generalData:
    11631160                generalData['Super'] = 1
     
    11711168        if 'HydIds' not in generalData:
    11721169            generalData['HydIds'] = {}
     1170        if generalData['Type'] == 'magnetic':
     1171            if 'SGGray' not in generalData['SGData']:
     1172                generalData['SGData']['SGGray'] = False
     1173               
    11731174# end of patches
    11741175        cx,ct,cs,cia = generalData['AtomPtrs']
  • trunk/GSASIIspc.py

    r3220 r3221  
    30943094        'P m 3 m','P m -3 m','P n 3 n','P n -3 n',
    30953095        'P m 3 n','P m -3 n','P n 3 m','P n -3 m',),
    3096     'Im3m':('I 2 3','I 21 3','I m -3','I a -3', 'I 4 3 2','I 41 3 2',
    3097         'I -4 3 m', 'I -4 3 d','I m -3 m','I m 3 m','I a -3 d','I n -3 n'),
    3098     'Fm3m':('F 2 3','F m -3','F d -3','F 4 3 2','F 41 3 2','F -4 3 m',
    3099         'F -4 3 c','F m -3 m','F m 3 m','F m -3 c','F d -3 m','F d -3 c',),
     3096    'Im3m':('I 2 3','I 21 3','I m 3','I m -3','I a 3','I a -3', 'I 4 3 2','I 41 3 2',
     3097        'I -4 3 m', 'I -4 3 d','I m -3 m','I m 3 m','I a 3 d','I a -3 d','I n 3 n','I n -3 n'),
     3098    'Fm3m':('F 2 3','F m 3','F m -3','F d 3','F d -3',
     3099        'F 4 3 2','F 41 3 2','F -4 3 m','F -4 3 c',
     3100        'F m 3 m','F m -3 m','F m 3 c','F m -3 c',
     3101        'F d 3 m','F d -3 m','F d 3 c','F d -3 c',),
    31003102}
    31013103sgequiv_2002_orthorhombic = {}
  • 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.