Changeset 1615


Ignore:
Timestamp:
Dec 21, 2014 8:12:54 AM (7 years ago)
Author:
vondreele
Message:

more work on incommensurate wave input to LS
fix FillAtomLookup? problem in G2restrGUI

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r1614 r1615  
    20592059                for iwave,wave in enumerate(waveBlk):
    20602060                    for ival,val in enumerate(wave[0]):
    2061                         if waveCSI[0][ival] < 0:
     2061                        if waveCSI[0][ival] == 0:
    20622062                            waveVal = wx.TextCtrl(waveData,value='%.4f'%(val),style=wx.TE_READONLY)
    20632063                            waveVal.SetBackgroundColour(VERY_LIGHT_GREY)
  • trunk/GSASIIrestrGUI.py

    r1214 r1615  
    7171    Amat,Bmat = G2lat.cell2AB(Cell)
    7272    SGData = General['SGData']
    73     cx,ct,cs = General['AtomPtrs'][:3]
     73    cx,ct,cs,cia = General['AtomPtrs']
    7474    Atoms = phasedata['Atoms']
    75     AtLookUp = G2mth.FillAtomLookUp(Atoms)
     75    AtLookUp = G2mth.FillAtomLookUp(Atoms,cia+8)
    7676    if 'macro' in General['Type']:
    7777        Names = [atom[0]+':'+atom[1]+atom[2]+' '+atom[3] for atom in Atoms]
  • trunk/GSASIIspc.py

    r1613 r1615  
    14231423   
    14241424def GetSSfxuinel(XYZ,UIJ,SGData,SSGData):
    1425     CSI = {'Sfrac':[[0,1],[1.,1.]],'Spos':[[0,1,2, 0,1,2],[1.,1.,1., 1.,1.,1.]],    #sin & cos
    1426         'Sadp':[[0,1,2,3,4,5, 0,1,2,3,4,5],[1.,1.,1.,1.,1.,1., 1.,1.,1.,1.,1.,1.]],
    1427         'Smag':[[0,1,2, 0,1,2],[1.,1.,1., 1.,1.,1.]]}
     1425    CSI = {'Sfrac':[[1,2],[1.,1.]],'Spos':[[1,2,3, 4,5,6],[1.,1.,1., 1.,1.,1.]],    #sin & cos
     1426        'Sadp':[[1,2,3,4,5,6, 7,8,9,10,11,12],[1.,1.,1.,1.,1.,1., 1.,1.,1.,1.,1.,1.]],
     1427        'Smag':[[1,2,3, 4,5,6],[1.,1.,1., 1.,1.,1.]]}
    14281428    deltx = np.ones((3,4))*.01
    14291429    deltx[:3,:3] = np.eye((3))*.001
     
    14531453        return CSI
    14541454    elif siteSym == '-1':   #"-1" site symmetry
    1455         CSI['Spos'][0] = [0,1,2, -1,-1,-1]
    1456         CSI['Sadp'][0] = [-1,-1,-1,-1,-1,-1, 0,1,2,3,4,5,]
     1455        CSI['Spos'][0] = [1,2,3, 0,0,0]
     1456        CSI['Sadp'][0] = [0,0,0,0,0,0, 1,2,3,4,5,6]
    14571457        return CSI       
    14581458    print siteSym,OpText,SSOptext   
     
    14621462            if 's' in SSGData['SSpGrp'].split('(')[1]:
    14631463                if siteSym == 'm':
    1464                     CSI['Spos'][0] = [0,-1,1, -1,1,-1]
    1465                     CSI['Sadp'][0] = [0,1,2,-1,3,-1, -1,-1,-1,4,-1,5]
     1464                    CSI['Spos'][0] = [1,0,2, 0,3,0]
     1465                    CSI['Sadp'][0] = [1,2,3,0,4,0, 0,0,0,5,0,6]
    14661466                elif siteSym == '2/m':
    1467                     CSI['Spos'][0] = [0,-1,1, -1,-1,-1]
    1468                     CSI['Sadp'][0] = [-1,-1,-1,-1,-1,-1, -1,-1,-1,0,-1,1]
     1467                    CSI['Spos'][0] = [1,0,2, 0,0,0]
     1468                    CSI['Sadp'][0] = [0,0,0,0,0,0, 0,0,0,1,0,2]
    14691469                elif siteSym == '2':
    1470                     CSI['Spos'][0] = [0,-1,1, 2,-1,3]               
    1471                     CSI['Sadp'][0] = [-1,-1,-1,0,-1,1, -1,-1,-1,2,-1,3]
     1470                    CSI['Spos'][0] = [1,0,2, 3,0,4]               
     1471                    CSI['Sadp'][0] = [0,0,0,1,0,2, 0,0,0,3,0,4]
    14721472            elif '1/2' in SSGData['modSymb']:    #e.g. (0b1/2)
    14731473                if siteSym == 'm':
    1474                     CSI['Spos'][0] = [-1,-1,-1, -1,-1,-1]
    1475                     CSI['Sadp'][0] = [-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1]
     1474                    CSI['Spos'][0] = [0,0,0, 0,0,0]
     1475                    CSI['Sadp'][0] = [0,0,0,0,0,0, 0,0,0,0,0,0]
    14761476                elif siteSym == '2/m':
    1477                     CSI['Spos'][0] = [0,-1,1, -1,-1,-1]
    1478                     CSI['Sadp'][0] = [-1,-1,-1,-1,-1,-1, 0,1,2,-1,3,-1]
     1477                    CSI['Spos'][0] = [1,0,2, 0,0,0]
     1478                    CSI['Sadp'][0] = [0,0,0,0,0,0, 1,2,3,0,4,0]
    14791479                elif siteSym == '2':
    1480                     CSI['Spos'][0] = [0,-1,1, 2,-1,3]
    1481                     CSI['Sadp'][0] = [-1,-1,-1,0,-1,1, -1,-1,-1,2,-1,3]
     1480                    CSI['Spos'][0] = [1,0,2, 3,0,4]
     1481                    CSI['Sadp'][0] = [0,0,0,1,0,2, 0,0,0,3,0,4]
    14821482            else:
    14831483                if siteSym == 'm':
    1484                     CSI['Spos'][0] = [-1,0,-1, 1,-1,2]
    1485                     CSI['Sadp'][0] = [-1,-1,-1,0,-1,1, 2,3,4,-1,5,-1]
     1484                    CSI['Spos'][0] = [0,1,0, 2,0,3]
     1485                    CSI['Sadp'][0] = [0,0,0,1,0,2, 3,4,5,0,6,0]
    14861486                elif siteSym == '2/m':
    1487                     CSI['Spos'][0] = [-1,0,-1, -1,-1,-1]
    1488                     CSI['Sadp'][0] = [-1,-1,-1,-1,-1,-1, 0,1,2,-1,3,-1]
     1487                    CSI['Spos'][0] = [0,1,0, 0,0,0]
     1488                    CSI['Sadp'][0] = [0,0,0,0,0,0, 1,2,3,0,4,0]
    14891489                elif siteSym == '2':
    1490                     CSI['Spos'][0] = [-1,0,-1, -1,1,-1]
    1491                     CSI['Sadp'][0] = [0,1,2,-1,3,-1, 4,5,6,-1,7,-1]
     1490                    CSI['Spos'][0] = [0,1,0, 0,2,0]
     1491                    CSI['Sadp'][0] = [1,2,3,0,4,0, 5,6,7,0,8,0]
    14921492           
    14931493        else:   #e.g. (a0g)
    14941494            if 's' in SSGData['SSpGrp'].split('(')[1]:
    14951495                if siteSym == 'm':
    1496                     CSI['Spos'][0] = [-1,0,-1, -1,1,-1]
    1497                     CSI['Sadp'][0] = [-1,-1,-1,0,-1,1, -1,-1,-1,2,-1,3]
     1496                    CSI['Spos'][0] = [0,1,0, 0,2,0]
     1497                    CSI['Sadp'][0] = [0,0,0,1,0,2, 0,0,0,3,0,4]
    14981498                elif siteSym == '2/m':
    1499                     CSI['Spos'][0] = [-1,0,-1, -1,-1,-1]
    1500                     CSI['Sadp'][0] = [-1,-1,-1,-1,-1,-1, -1,-1,-1,0,-1,1]
     1499                    CSI['Spos'][0] = [0,1,0, 0,0,0]
     1500                    CSI['Sadp'][0] = [0,0,0,0,0,0, 0,0,0,1,0,2]
    15011501                elif siteSym == '2':
    1502                     CSI['Spos'][0] = [-1,0,-1, 1,-1,2]
    1503                     CSI['Sadp'][0] = [0,1,2,-1,3,-1, -1,-1,-1,4,-1,5]
     1502                    CSI['Spos'][0] = [0,1,0, 2,0,3]
     1503                    CSI['Sadp'][0] = [1,2,3,0,4,0, 0,0,0,5,0,6]
    15041504            else:
    15051505                if siteSym == 'm':
    1506                     CSI['Spos'][0] = [0,-1,1, 2,-1,3]
    1507                     CSI['Sadp'][0] = [0,1,2,-1,3,-1, 4,5,6,-1,7,-1]
     1506                    CSI['Spos'][0] = [1,0,2, 3,0,4]
     1507                    CSI['Sadp'][0] = [1,2,3,0,4,0, 5,6,7,0,8,0]
    15081508                elif siteSym == '2/m':
    1509                     CSI['Spos'][0] = [0,-1,1, -1,-1,-1]
    1510                     CSI['Sadp'][0] = [-1,-1,-1,-1,-1,-1, 0,1,2,-1,3,-1]
     1509                    CSI['Spos'][0] = [1,0,2, 0,0,0]
     1510                    CSI['Sadp'][0] = [0,0,0,0,0,0, 1,2,3,0,4,0]
    15111511                elif siteSym == '2':
    1512                     CSI['Spos'][0] = [0,-1,1, -1,2,-1]
    1513                     CSI['Sadp'][0] = [-1,-1,-1,0,-1,1, 2,3,4,-1,5,-1]
     1512                    CSI['Spos'][0] = [1,0,2, 0,3,0]
     1513                    CSI['Sadp'][0] = [0,0,0,1,0,2, 3,4,5,0,6,0]
    15141514        Sx = CSI['Spos'][0]
    15151515        Su = CSI['Sadp'][0]
  • trunk/GSASIIstrIO.py

    r1614 r1615  
    828828        line = '   name    type  refine?   x         y         z    '+ \
    829829            '  frac site sym  mult I/A   Uiso     U11     U22     U33     U12     U13     U23'
    830         if General['Type'] == 'magnetic':
    831             line += '   Mx     My     Mz'
    832         elif General['Type'] == 'macromolecular':
     830        if General['Type'] == 'macromolecular':
    833831            line = ' res no residue chain'+line
    834832        print >>pFile,line
    835         if General['Type'] == 'nuclear':
     833        if General['Type'] in ['nuclear','modulated','magnetic']:
    836834            print >>pFile,135*'-'
    837835            for i,at in enumerate(Atoms):
     
    857855                        line += '%8.4f'%(at[cia+2+j])
    858856                print >>pFile,line
     857               
     858    def PrintWaves(General,Atoms):
     859        cx,ct,cs,cia = General['AtomPtrs']
     860        print >>pFile,'\n Modulation waves'
     861        names = {'Sfrac':['Fsin','Fcos'],'Spos':['Xsin','Ysin','Zsin','Xcos','Ycos','Zcos'],
     862            'Sadp':['U11sin','U22sin','U33sin','U12sin','U13sin','U23sin','U11cos','U22cos',
     863            'U33cos','U12cos','U13cos','U23cos'],'Smag':['MXsin','MYsin','MZsin','MXcos','MYcos','MZcos']}
     864        print >>pFile,135*'-'
     865        for i,at in enumerate(Atoms):
     866            AtomSS = at[-1]['SS1']
     867            for Stype in ['Sfrac','Spos','Sadp','Smag']:
     868                Waves = AtomSS[Stype]
     869                if len(Waves):
     870                    print >>pFile,' atom: %s, site sym: %s, type: %s wave type: %s:'    \
     871                        %(at[ct-1],at[cs],Stype,AtomSS['waveType'])
     872                    line = ''
     873                    for item in names[Stype]:
     874                        line += '%8s '%(item)
     875                    print >>pFile,line
     876                for wave in Waves:                   
     877                    line = ''
     878                    for item in wave[0]:
     879                        line += '%8.4f '%(item)
     880                    line += ' Refine? '+str(wave[1])
     881                    print >>pFile,line
    859882       
    860883    def PrintTexture(textureData):
     
    11011124                                            eqv[1] /= coef
    11021125                                        G2mv.StoreEquivalence(name,equiv[1:])
    1103                                            
    11041126            textureData = General['SH Texture']
    11051127            if textureData['Order']:
     
    11391161                PrintRBObjects(resRBData,vecRBData)
    11401162                PrintAtoms(General,Atoms)
     1163                if General['Type'] in ['modulated','magnetic']:
     1164                    PrintWaves(General,Atoms)
     1165                raise Exception
    11411166                print >>pFile,'\n Unit cell: a = %.5f'%(cell[1]),' b = %.5f'%(cell[2]),' c = %.5f'%(cell[3]), \
    11421167                    ' alpha = %.3f'%(cell[4]),' beta = %.3f'%(cell[5]),' gamma = %.3f'%(cell[6]), \
Note: See TracChangeset for help on using the changeset viewer.