Changeset 2050


Ignore:
Timestamp:
Nov 13, 2015 3:46:35 PM (8 years ago)
Author:
vondreele
Message:

include Bank no in Instrument parameters - no check yet
expand range on monoclinic cell search
expand range on mod vec search
fix bug for no atom phases (no mass!)
fix map error for 4D maps
fix AddAtom? problem for SSatoms
deal wiht difference between Jana2000 & Jana2006 temperature factors

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r2048 r2050  
    11291129                Iparm1 = G2IO.makeInstDict(names,data,codes)
    11301130                Iparm1['Source'] = [Irads[irad],Irads[irad]]
     1131                Iparm1['Bank'] = [Bank,Bank,0]
    11311132                return [Iparm1,{}]
    11321133            elif 'T' in DataType:
     
    11761177                            data.extend([0.0,0.0,G2IO.sfloat(s[0]),G2IO.sfloat(s[1]),0.0,0.0,0.0,azm])    #beta-q, sig-0, sig-1, sig-2, sig-q, X, Y                       
    11771178                Inst1 = G2IO.makeInstDict(names,data,codes)
     1179                Iparm1['Bank'] = [Bank,Bank,0]
    11781180                Inst2 = {}
    11791181                if pfType < 0:
  • trunk/GSASIIindex.py

    r2038 r2050  
    158158        c = ac[1]
    159159        alp = gam = 90
    160         bet = ranaxis(90.,130.)
     160        bet = ranaxis(90.,140.)
    161161    else:                           #triclinic - a<b<c convention
    162162        abc = [ranaxis(dmin,dmax),ranaxis(dmin,dmax),ranaxis(dmin,dmax)]
     
    268268            if r:
    269269                if values.size > 1:
    270                     Vec.append(max(0.0,min(2.0,values[i])))
     270                    Vec.append(max(-1.,min(1.0,values[i])))
    271271                else:
    272272                    Vec.append(max(0.0,min(2.0,values)))                   
  • trunk/GSASIImath.py

    r2046 r2050  
    786786    for i,elem in enumerate(generalData['AtomTypes']):
    787787        mass += generalData['NoAtoms'][elem]*generalData['AtomMass'][i]
    788     return mass   
     788    return max(mass,1.0)   
    789789
    790790def getDensity(generalData):
     
    23522352    cell = generalData['Cell'][1:8]       
    23532353    A = G2lat.cell2A(cell[:6])
    2354     maxM = generalData['SuperVec'][2]
     2354    maxM = 4
    23552355    Hmax = G2lat.getHKLmax(dmin,SGData,A)+[maxM,]
    23562356    adjHKLmax(SGData,Hmax)
     
    26912691    A = G2lat.cell2A(cell[:6])
    26922692    Vol = cell[6]
    2693     maxM = generalData['SuperVec'][2]
     2693    maxM = 4
    26942694    Hmax = np.asarray(G2lat.getHKLmax(dmin,SGData,A)+[maxM,],dtype='i')+1
    26952695    adjHKLmax(SGData,Hmax)
  • trunk/GSASIIphsGUI.py

    r2040 r2050  
    745745                val = Obj.GetValue()
    746746                try:
    747                     val = min(2.0,max(0.0,float(val)))
     747                    val = min(2.0,max(-1.0,float(val)))
    748748                except ValueError:
    749749                    val = generalData['SuperVec'][0][ind]
     
    11771177################################################################################
    11781178
    1179     SSdefault = {'SS1':{'waveType':'Fourier','Sfrac':[],'Spos':[],'Sadp':[],'Smag':[]}}
    11801179    def FillAtomsGrid(Atoms):
    11811180        '''Display the contents of the Atoms tab
     
    16151614            atomData.append([Name,El,'',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0,atId])
    16161615        elif generalData['Type'] in ['modulated','magnetic']:
    1617             atomData.append([Name,El,'',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0,atId,[],[],SSdefault])
     1616            atomData.append([Name,El,'',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0,atId,[],[],
     1617                {'SS1':{'waveType':'Fourier','Sfrac':[],'Spos':[],'Sadp':[],'Smag':[]}}])
    16181618        SetupGeneral()
    16191619        if 'Atoms' in data['Drawing']:           
     
    18321832            atomData.insert(indx,[Name,El,'',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0,atId])
    18331833        elif generalData['Type'] in ['modulated','magnetic']:
    1834             atomData.insert(indx,[Name,El,'',x,y,z,1,Sytsym,Mult,0,'I',0.01,0,0,0,0,0,0,atId,[],[],SSdefault])
     1834            atomData.insert(indx,[Name,El,'',x,y,z,1,Sytsym,Mult,0,'I',0.01,0,0,0,0,0,0,atId,[],[],
     1835                {'SS1':{'waveType':'Fourier','Sfrac':[],'Spos':[],'Sadp':[],'Smag':[]}}])
    18351836        SetupGeneral()
    18361837
     
    24912492        mainSizer.Add(wx.StaticText(waveData,label=' Incommensurate propagation wave data:'),0,WACV)
    24922493        if generalData['Type'] in ['modulated','magnetic']:
    2493             for iatm,atom in enumerate(atomData):
    2494                 xyz = atom[cx:cx+3]
    2495                 uij = atom[cia+2:cia+8]
     2494            for iatm,atm in enumerate(atomData):
     2495                xyz = atm[cx:cx+3]
     2496                uij = atm[cia+2:cia+8]
    24962497                for SS in ['SS1',]:  #future SS2 & SS3 - I doubt it!
    24972498                    G2G.HorizontalLine(mainSizer,waveData)
    2498                     mainSizer.Add(AtomSizer(SS,atom))
     2499                    mainSizer.Add(AtomSizer(SS,atm))
    24992500                    for Stype in ['Sfrac','Spos','Sadp','Smag']:
    2500                         if atom[cia] != 'A' and Stype == 'Sadp':    #Uiso can't have modulations!
     2501                        if atm[cia] != 'A' and Stype == 'Sadp':    #Uiso can't have modulations!
    25012502                            continue
    25022503                        if generalData['Type'] != 'magnetic' and Stype == 'Smag':
    25032504                            break
    2504                         mainSizer.Add(WaveSizer(atom[-1][SS]['waveType'],atom[-1][SS][Stype],Stype,typeNames[Stype],Labels[Stype]))                       
     2505                        mainSizer.Add(WaveSizer(atm[-1][SS]['waveType'],atm[-1][SS][Stype],Stype,typeNames[Stype],Labels[Stype]))                       
    25052506        SetPhaseWindow(G2frame.dataFrame,waveData,mainSizer)
    25062507                       
  • trunk/GSASIIplot.py

    r2043 r2050  
    30463046                G2frame.G2plotNB.status.SetStatusText('t =%9.3f %s =%9.3f %s=%9.3f'%(xpos,GkDelta+Ax,ypos,Gkrho,Slab[iy,ix]/8.),1)                   
    30473047#                GSASIIpath.IPyBreak()                 
    3048             except TypeError:
     3048            except (TypeError,IndexError):
    30493049                G2frame.G2plotNB.status.SetStatusText('Select '+Title+' pattern first',1)
    30503050   
  • trunk/GSASIIpwdGUI.py

    r2049 r2050  
    11821182    data tree item.
    11831183    '''
     1184#patch
     1185    if 'Bank' not in data:
     1186        data['Bank'] = [1,1,0]
     1187#end patch   
    11841188    def keycheck(keys):
    11851189        good = []
    11861190        for key in keys:
    1187             if key in ['Type','U','V','W','X','Y','SH/L','I(L2)/I(L1)','alpha',
     1191            if key in ['Type','Bank','U','V','W','X','Y','SH/L','I(L2)/I(L1)','alpha',
    11881192                'beta-0','beta-1','beta-q','sig-0','sig-1','sig-2','sig-q','Polariz.',
    11891193                'Lam','Azimuth','2-theta','fltPath','difC','difA','difB','Zero','Lam1','Lam2']:
     
    12731277                File.close()
    12741278                Inst,Inst2 = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId,'Instrument Parameters'))
     1279                if 'Bank' not in Inst:  #patch for old .instprm files - may cause faults for TOF data
     1280                    Inst['Bank'] = [1,1,0]
    12751281                data = G2IO.makeInstDict(newItems,newVals,len(newVals)*[False,])
    12761282                G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId,'Instrument Parameters'),[data,Inst2])
     
    14261432        instSizer = wx.FlexGridSizer(0,6,5,5)
    14271433        subSizer = wx.BoxSizer(wx.HORIZONTAL)
    1428         subSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Histogram Type: '+insVal['Type']),0,WACV)
     1434        text = ' Histogram Type: %s  Bank: %d'%(insVal['Type'],insVal['Bank'])
     1435        subSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,text),0,WACV)
    14291436        mainSizer.Add(subSizer)
    14301437        labelLst[:],elemKeysLst[:],dspLst[:],refFlgElem[:] = [],[],[],[]
     
    24552462        Id = Indx[ObjId]
    24562463        try:
    2457             value = min(1.0,max(0.,float(Obj.GetValue())))
     2464            value = min(1.0,max(-1.0,float(Obj.GetValue())))
    24582465        except ValueError:
    24592466            value = ssopt['ModVec'][Id]
     
    24662473        ObjId = Obj.GetId()
    24672474        Id,valObj = Indx[ObjId]
    2468         move = Obj.GetValue()*0.0005
     2475        move = Obj.GetValue()*0.001
    24692476        Obj.SetValue(0)
    2470         value = min(1.0,max(.0,float(valObj.GetValue())+move))
     2477        value = min(1.0,max(-1.0,float(valObj.GetValue())+move))
    24712478        valObj.SetValue('%.4f'%(value))
    24722479        ssopt['ModVec'][Id] = value
     
    28852892    littleSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Max Nc/Nobs '),0,WACV)
    28862893    NcNo = wx.SpinCtrl(G2frame.dataDisplay)
    2887     NcNo.SetRange(2,6)
     2894    NcNo.SetRange(2,8)
    28882895    NcNo.SetValue(controls[2])
    28892896    NcNo.Bind(wx.EVT_SPINCTRL,OnNcNo)
  • trunk/imports/G2phase.py

    r2040 r2050  
    394394        cell = None
    395395        nqi = 0
     396        version = '2000'
    396397        while S:
    397398            self.errors = 'Error reading at line '+str(line)
    398399            if 'title' in S and S != 'title\n':
    399400                Title = S.split()[1]
     401            elif 'Jana2006' in S:
     402                self.warnings += '\nJana2006 file detected'
     403                version = '2006'
    400404            elif 'cell' in S[:4]:
    401405                cell = S[5:].split()
     
    475479            if S1[11:15].strip() == '1':
    476480                S2 = file2.readline()
    477                 Uiso = R2pisq*float(S2[:9])/4.      #Biso -> Uiso
     481                Uiso = S2[:9]
     482                if version == '2000':
     483                    Uiso = R2pisq*float(Uiso)/4.      #Biso -> Uiso
    478484                Uij = [0,0,0,0,0,0]
    479485                IA = 'I'
     
    483489                Uiso = 0.
    484490                Uij = [float(S2[:9]),float(S2[9:18]),float(S2[18:27]),
    485                     float(S2[27:36]),float(S2[36:45]),float(S2[45:54])] #these things are betaij! need to convert to Uij
    486                 Uij = R2pisq*G2lat.UijtoU6(G2lat.U6toUij(Uij)/Mast)
     491                    float(S2[27:36]),float(S2[36:45]),float(S2[45:54])] #Uij in Jana2006!
     492                if version == '2000':
     493                    Uij = R2pisq*G2lat.UijtoU6(G2lat.U6toUij(Uij)/Mast) #these things are betaij in Jana2000! need to convert to Uij
    487494            for i in range(S1N[0]):
    488495                if not i:
     
    520527                Spos[i] = [vals,False]
    521528            for i,it in enumerate(Sadp):
    522                 #these are betaij modulations! need to convert to Uij modulations
    523529                vals = [float(it[:9]),float(it[9:18]),float(it[18:27]),float(it[27:36]),float(it[36:45]),float(it[45:54]),
    524                     float(it[54:63]),float(it[63:72]),float(it[72:81]),float(it[81:90]),float(it[90:99]),float(it[99:108])]               
    525                 vals[:6] = R2pisq*G2lat.UijtoU6(G2lat.U6toUij(vals[:6])/Mast)    #convert sin bij to Uij
    526                 vals[6:] = R2pisq*G2lat.UijtoU6(G2lat.U6toUij(vals[6:])/Mast)    #convert cos bij to Uij
     530                    float(it[54:63]),float(it[63:72]),float(it[72:81]),float(it[81:90]),float(it[90:99]),float(it[99:108])]
     531                #these are betaij modulations in Jana2000! need to convert to Uij modulations
     532                if version == '2000':               
     533                    vals[:6] = R2pisq*G2lat.UijtoU6(G2lat.U6toUij(vals[:6])/Mast)    #convert sin bij to Uij
     534                    vals[6:] = R2pisq*G2lat.UijtoU6(G2lat.U6toUij(vals[6:])/Mast)    #convert cos bij to Uij
    527535                Sadp[i] = [vals,False]
    528536            Atom = [Name,aType,'',XYZ[0],XYZ[1],XYZ[2],1.0,SytSym,Mult,IA,Uiso]
Note: See TracChangeset for help on using the changeset viewer.