Changeset 3261


Ignore:
Timestamp:
Feb 5, 2018 11:44:57 AM (4 years ago)
Author:
vondreele
Message:

implement import of mcif with Crenel site fraction functions

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIImath.py

    r3259 r3261  
    16811681                    scof.append(spos[0][:3])
    16821682                    ccof.append(spos[0][3:])
    1683                 if len(scof):
     1683                if len(scof):               #ToDo: something odd here, but it works
    16841684                    if icent < 0:                       
    16851685                        mom += np.sum(posFourier(.25-tauT,np.array(scof),np.array(ccof)),axis=1)
  • trunk/imports/G2phase_CIF.py

    r3257 r3261  
    383383                UijFloop = None
    384384                UijFdict = {}
     385                #occupancy modulation
    385386                if blk.get('_atom_site_occ_Fourier_atom_site_label'):
    386387                    occFloop = blk.GetLoop('_atom_site_occ_Fourier_atom_site_label')
     
    389390                    occCloop = blk.GetLoop('_atom_site_occ_special_func_atom_site_label')
    390391                    occCdict = dict(occCloop.items())
     392                #position modulation
    391393                if blk.get('_atom_site_displace_Fourier_atom_site_label'):
    392394                    displFloop = blk.GetLoop('_atom_site_displace_Fourier_atom_site_label')
     
    395397                    displSloop = blk.GetLoop('_atom_site_displace_special_func_atom_site_label')
    396398                    displSdict = dict(displSloop.items())
     399                #U modulation
    397400                if blk.get('_atom_site_U_Fourier_atom_site_label'):
    398401                    UijFloop = blk.GetLoop('_atom_site_U_Fourier_atom_site_label')
    399402                    UijFdict = dict(UijFloop.items())
     403                #Mag moment modulation
    400404                if blk.get('_atom_site_moment_Fourier_atom_site_label'):
    401405                    MagFloop = blk.GetLoop('_atom_site_moment_Fourier_atom_site_label')
     
    475479                    self.MPhase['Atoms'].append(matomlist)
    476480                if Super:
    477                     Sfrac = []
     481                    Sfrac = np.zeros((4,2))
    478482                    Sadp = np.zeros((4,12))
    479483                    Spos = np.zeros((4,6))
    480484                    Smag = np.zeros((4,6))
    481485                    nim = -1
    482                     waveType = 'Fourier'                               
     486                    waveType = 'Fourier'
     487                    if  occCdict:
     488                        for i,item in enumerate(occCdict['_atom_site_occ_special_func_atom_site_label']):
     489                            if item == atomlist[0]:
     490                                waveType = 'Crenel'
     491                                val = occCdict['_atom_site_occ_special_func_crenel_c'][i]
     492                                Sfrac[0][0] = cif.get_number_with_esd(val)[0]
     493                                val = occCdict['_atom_site_occ_special_func_crenel_w'][i]
     494                                Sfrac[0][1] = cif.get_number_with_esd(val)[0]
     495                                nim = 1
     496                   
     497                    if nim >= 0:
     498                        Sfrac = [[sfrac,False] for sfrac in Sfrac[:nim]]
     499                    else:
     500                        Sfrac = []
    483501                    if displFdict:
    484502                        for i,item in enumerate(displFdict['_atom_site_displace_fourier_atom_site_label']):
     
    501519                        for i,item in enumerate(UijFdict['_atom_site_u_fourier_atom_site_label']):
    502520                            if item == atomlist[0]:
     521                                waveType = 'Fourier'                               
    503522                                ix = ['U11','U22','U33','U12','U13','U23'].index(UijFdict['_atom_site_u_fourier_tens_elem'][i])
    504523                                im = int(UijFdict['_atom_site_u_fourier_wave_vector_seq_id'][i])
Note: See TracChangeset for help on using the changeset viewer.