Ignore:
Timestamp:
Dec 29, 2017 12:52:35 PM (4 years ago)
Author:
vondreele
Message:

some fixes for magnetic incommensurate cifs - dealing with 2 different dictionary defns for mcif!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/imports/G2phase_CIF.py

    r3208 r3210  
    371371                if blk.get('_atom_site_moment_Fourier_atom_site_label'):
    372372                    MagFloop = blk.GetLoop('_atom_site_moment_Fourier_atom_site_label')
     373                    MagFdict = dict(MagFloop.items())
     374                    Mnames =  ['_atom_site_moment_fourier_atom_site_label',
     375                               '_atom_site_moment_fourier_axis','_atom_site_moment_fourier_wave_vector_seq_id',
     376                               '_atom_site_moment_fourier_param_sin','_atom_site_moment_fourier_param_cos']
     377                elif blk.get('_atom_site_moment_Fourier.atom_site_label'):
     378                    MagFloop = blk.GetLoop('_atom_site_moment_Fourier.atom_site_label')
    373379                    MagFdict = dict(MagFloop.items())                           
     380                    Mnames =  ['_atom_site_moment_fourier.atom_site_label',
     381                               '_atom_site_moment_fourier.axis','_atom_site_moment_fourier.wave_vector_seq_id',
     382                               '_atom_site_moment_fourier_param.sin','_atom_site_moment_fourier_param.cos']
    374383            self.Phase['Atoms'] = []
    375384            if magnetic:
     
    477486                    if MagFdict:
    478487                        nim = -1
    479                         for i,item in enumerate(MagFdict['_atom_site_moment_fourier_atom_site_label']):
     488                        for i,item in enumerate(MagFdict[Mnames[0]]):
    480489                            if item == atomlist[0]:
    481490                                waveType = 'Fourier'                               
    482                                 ix = ['x','y','z'].index(MagFdict['_atom_site_moment_fourier_axis'][i])
    483                                 im = int(MagFdict['_atom_site_moment_fourier_wave_vector_seq_id'][i])
     491                                ix = ['x','y','z'].index(MagFdict[Mnames[1]][i])
     492                                im = int(MagFdict[Mnames[2]][i])
    484493                                if im != nim:
    485494                                    nim = im
    486                                 val = MagFdict['_atom_site_moment_fourier_param_sin'][i]
     495                                val = MagFdict[Mnames[3]][i]
    487496                                Smag[im-1][ix] = cif.get_number_with_esd(val)[0]
    488                                 val = MagFdict['_atom_site_moment_fourier_param_cos'][i]
     497                                val = MagFdict[Mnames[4]][i]
    489498                                Smag[im-1][ix+3] = cif.get_number_with_esd(val)[0]
    490499                        if nim >= 0:
Note: See TracChangeset for help on using the changeset viewer.