Changeset 4135


Ignore:
Timestamp:
Sep 4, 2019 3:42:25 PM (4 years ago)
Author:
vondreele
Message:

Use ValidatedTextCtrl? for lattice parm inpt in General tab
limit magnetic super lattice index to +/- 1; various places
changes to incomm. mag. str. fctr.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r4052 r4135  
    17121712                generalData['Cell'][0] = cellRef.GetValue()
    17131713               
    1714             def OnCellChange(event):
    1715                 event.Skip()
     1714            def OnCellChange(invalid,value,tc):
     1715#                event.Skip()
    17161716                SGData = generalData['SGData']
    17171717                laue = SGData['SGLaue']
     
    17191719                    laue += SGData['SGUniq']
    17201720                cell = generalData['Cell']
    1721                 Obj = event.GetEventObject()
     1721                Obj = tc
     1722#                Obj = event.GetEventObject()
    17221723                ObjId = cellList.index(Obj.GetId())
    17231724                try:
    1724                     value = max(1.0,float(Obj.GetValue()))
     1725                    value = max(1.0,float(tc.GetValue()))
    17251726                except ValueError:
    17261727                    if ObjId < 3:               #bad cell edge - reset
     
    17311732                    cell[1] = cell[2] = cell[3] = value
    17321733                    cell[4] = cell[5] = cell[6] = 90.0
    1733                     Obj.SetValue("%.5f"%(cell[1]))
     1734                    Obj.SetValue(cell[1])
    17341735                elif laue in ['3R','3mR']:
    17351736                    if ObjId == 0:
    17361737                        cell[1] = cell[2] = cell[3] = value
    1737                         Obj.SetValue("%.5f"%(cell[1]))
     1738                        Obj.SetValue(cell[1])
    17381739                    else:
    17391740                        cell[4] = cell[5] = cell[6] = value
    1740                         Obj.SetValue("%.5f"%(cell[4]))
     1741                        Obj.SetValue(cell[4])
    17411742                elif laue in ['3','3m1','31m','6/m','6/mmm','4/m','4/mmm']:                   
    17421743                    cell[4] = cell[5] = 90.
     
    17461747                    if ObjId == 0:
    17471748                        cell[1] = cell[2] = value
    1748                         Obj.SetValue("%.5f"%(cell[1]))
     1749                        Obj.SetValue(cell[1])
    17491750                    else:
    17501751                        cell[3] = value
    1751                         Obj.SetValue("%.5f"%(cell[3]))
     1752                        Obj.SetValue(cell[3])
    17521753                elif laue in ['mmm']:
    17531754                    cell[ObjId+1] = value
    17541755                    cell[4] = cell[5] = cell[6] = 90.
    1755                     Obj.SetValue("%.5f"%(cell[ObjId+1]))
     1756                    Obj.SetValue(cell[ObjId+1])
    17561757                elif laue in ['2/m'+'a']:
    17571758                    cell[5] = cell[6] = 90.
    17581759                    if ObjId != 3:
    17591760                        cell[ObjId+1] = value
    1760                         Obj.SetValue("%.5f"%(cell[ObjId+1]))
     1761                        Obj.SetValue(cell[ObjId+1])
    17611762                    else:
    17621763                        cell[4] = value
    1763                         Obj.SetValue("%.3f"%(cell[4]))
     1764                        Obj.SetValue(cell[4])
    17641765                elif laue in ['2/m'+'b']:
    17651766                    cell[4] = cell[6] = 90.
    17661767                    if ObjId != 3:
    17671768                        cell[ObjId+1] = value
    1768                         Obj.SetValue("%.5f"%(cell[ObjId+1]))
     1769                        Obj.SetValue(cell[ObjId+1])
    17691770                    else:
    17701771                        cell[5] = value
    1771                         Obj.SetValue("%.3f"%(cell[5]))
     1772                        Obj.SetValue(cell[5])
    17721773                elif laue in ['2/m'+'c']:
    17731774                    cell[4] = cell[5] = 90.
    17741775                    if ObjId != 3:
    17751776                        cell[ObjId+1] = value
    1776                         Obj.SetValue("%.5f"%(cell[ObjId+1]))
     1777                        Obj.SetValue(cell[ObjId+1])
    17771778                    else:
    17781779                        cell[6] = value
    1779                         Obj.SetValue("%.3f"%(cell[6]))
     1780                        Obj.SetValue(cell[6])
    17801781                else:
    17811782                    cell[ObjId+1] = value
    1782                     if ObjId < 3:
    1783                         Obj.SetValue("%.5f"%(cell[1+ObjId]))
    1784                     else:
    1785                         Obj.SetValue("%.3f"%(cell[1+ObjId]))                       
     1783                    Obj.SetValue(cell[1+ObjId])                       
    17861784                cell[7] = G2lat.calc_V(G2lat.cell2A(cell[1:7]))
    17871785                volVal.SetValue("%.3f"%(cell[7]))
     
    18081806            for txt,fmt,ifEdit,Id in useGUI[2]:
    18091807                cellSizer.Add(wx.StaticText(General,label=txt),0,WACV)
     1808                Fmt = (10,5)
     1809                if '.3' in fmt:
     1810                    Fmt = (10,3)
    18101811                if ifEdit:          #a,b,c,etc.
    1811                     cellVal = wx.TextCtrl(General,value=(fmt%(cell[Id+1])),
    1812                         style=wx.TE_PROCESS_ENTER)
    1813                     cellVal.Bind(wx.EVT_TEXT_ENTER,OnCellChange)       
    1814                     cellVal.Bind(wx.EVT_KILL_FOCUS,OnCellChange)
     1812                    cellVal = G2G.ValidatedTxtCtrl(General,generalData['Cell'],Id+1,
     1813                            min=0.1,max=500.,nDig=Fmt,OnLeave=OnCellChange)
    18151814                    cellSizer.Add(cellVal,0,WACV)
    18161815                    cellList.append(cellVal.GetId())
     
    21102109                modSizer.Add(wx.StaticText(General,label=' Max index: '),0,WACV)
    21112110                indChoice = ['1','2','3','4','5','6','7']
     2111                if 'Magnetic' in name.capitalize():    #limit to one for now
     2112                    indChoice = ['1',]
    21122113                Max = wx.ComboBox(General,-1,value='%d'%(generalData['SuperVec'][2]),choices=indChoice,
    21132114                    style=wx.CB_READONLY|wx.CB_DROPDOWN)
     
    52775278                waveHead = wx.BoxSizer(wx.HORIZONTAL)
    52785279                waveHead.Add(wx.StaticText(waveData,label=typeName+' modulation parameters: '),0,WACV)
    5279                 waveAdd = wx.CheckBox(waveData,label='Add wave?   WaveType: ')
    5280                 waveAdd.Bind(wx.EVT_CHECKBOX, OnAddWave)
    5281                 Indx[waveAdd.GetId()] = Stype
    5282                 waveHead.Add(waveAdd,0,WACV)
    5283                 waveType = wx.ComboBox(waveData,value=waveTyp,choices=waveTypes[Stype],
    5284                     style=wx.CB_READONLY|wx.CB_DROPDOWN)
    5285                 Indx[waveType.GetId()] = Stype
    5286                 waveType.Bind(wx.EVT_COMBOBOX,OnWaveType)
    5287                 waveHead.Add(waveType,0,WACV)
     5280                if Stype == 'Smag' and len(waveBlk):    #only allow one magnetic wave - keeps it simple for now
     5281                    pass
     5282                else:
     5283                    waveAdd = wx.CheckBox(waveData,label='Add wave?   WaveType: ')
     5284                    waveAdd.Bind(wx.EVT_CHECKBOX, OnAddWave)
     5285                    Indx[waveAdd.GetId()] = Stype
     5286                    waveHead.Add(waveAdd,0,WACV)
     5287                    waveType = wx.ComboBox(waveData,value=waveTyp,choices=waveTypes[Stype],
     5288                        style=wx.CB_READONLY|wx.CB_DROPDOWN)
     5289                    Indx[waveType.GetId()] = Stype
     5290                    waveType.Bind(wx.EVT_COMBOBOX,OnWaveType)
     5291                    waveHead.Add(waveType,0,WACV)
    52885292                waveSizer.Add(waveHead)
    52895293                if len(waveBlk):
  • trunk/GSASIIpwdGUI.py

    r4113 r4135  
    44164416    if ssopt.get('Use',False):        #super lattice display
    44174417        indChoice = ['1','2','3','4',]
     4418        if 'MagSpGrp' in SGData:    #limit to one for magnetic SS for now
     4419            indChoice = ['1',]
    44184420        SpSg = controls[13]
    44194421        SGData = G2spc.SpcGroup(SpSg)[1]
  • trunk/GSASIIstrMath.py

    r4130 r4135  
    14881488    SGMT = np.array([ops[0].T for ops in SGData['SGOps']])
    14891489    Ncen = len(SGData['SGCen'])
    1490     Nops = len(SGMT)*Ncen*(1+SGData['SGInv'])
     1490    Nops = len(SGMT)*(1+SGData['SGInv'])
    14911491    SSGMT = np.array([ops[0].T for ops in SSGData['SSGOps']])
    14921492    SSGT = np.array([ops[1] for ops in SSGData['SSGOps']])
     
    15941594            sinm = np.sin(phasem)
    15951595            MF = refDict['FF']['MF'][iBeg:iFin].T[Tindx].T   #Nref,Natm
    1596             TMcorr = 0.539*(np.reshape(Tiso,Tuij.shape)*Tuij)[:,0,:]*Mdata*MF/(2.*Nops)     #Nref,Natm
     1596            TMcorr = 0.539*(np.reshape(Tiso,Tuij.shape)*Tuij)[:,0,:]*Mdata*Fdata*MF/(2.*Nops)     #Nref,Natm
    15971597#                     
    15981598            HM = np.inner(Bmat,HP.T)                            #put into cartesian space
     
    16061606#for modulated moments --> m != 0 reflections
    16071607       
    1608             fams = .5*TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*cosm[i,nxs,:,:,nxs]-    \
     1608            fams = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*cosm[i,nxs,:,:,nxs]-    \
    16091609                np.sign(H[3,i])*MmodB*sinm[i,nxs,:,:,nxs]),0.) for i in range(mRef)])          #Nref,Ntau,Nops,Natm,Mxyz
    16101610                       
    1611             fbms = .5*TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*sinm[i,nxs,:,:,nxs]+    \
     1611            fbms = TMcorr[:,nxs,nxs,:,nxs]*np.array([np.where(H[3,i]!=0,(MmodA*sinm[i,nxs,:,:,nxs]+    \
    16121612                np.sign(H[3,i])*MmodB*cosm[i,nxs,:,:,nxs]),0.) for i in range(mRef)])          #Nref,Ntau,Nops,Natm,Mxyz
    16131613           
Note: See TracChangeset for help on using the changeset viewer.