Changeset 2181


Ignore:
Timestamp:
Mar 21, 2016 1:29:43 PM (7 years ago)
Author:
vondreele
Message:

remove stray print from G2plot
cleanup stacking sequence part of Stack GUI. Check if explicit sequence is probable.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r2177 r2181  
    26702670                    table.append(transArray[Yi][Xi])
    26712671                    rowLabels.append(Xname)
     2672                    if transArray[Yi][Xi][0] > 0.:
     2673                        allowedTrans.append([str(Yi+1),str(Xi+1)])
    26722674                transTable = G2G.Table(table,rowLabels=rowLabels,colLabels=transLabels,types=transTypes)
    26732675                transGrid = G2G.GSGrid(layerData)
     
    27182720            stackChoice = ['recursive','explicit',]
    27192721            seqChoice = ['random','list',]
    2720             numChoice = [' ','infinite',] 
    27212722                     
    27222723            def OnStackType(event):
    2723                 data['Layers']['Stacking'][0] = stackType.GetValue()
     2724                newType = stackType.GetValue()
     2725                if newType == data['Layers']['Stacking'][0]:
     2726                    return                   
     2727                data['Layers']['Stacking'][0] = newType
     2728                if newType == 'recursive':
     2729                    data['Layers']['Stacking'][1] = 'infinite'
     2730                else:  #explicit
     2731                    data['Layers']['Stacking'][1] = 'random'
     2732                    data['Layers']['Stacking'][2] = '250'
     2733                wx.CallAfter(UpdateLayerData)
     2734               
     2735            def OnSeqType(event):
     2736                newType = seqType.GetValue()
     2737                if newType == data['Layers']['Stacking'][1]:
     2738                    return
     2739                data['Layers']['Stacking'][1] = newType
     2740                if newType == 'random':
     2741                    data['Layers']['Stacking'][2] = '250'
     2742                else: #List
     2743                    data['Layers']['Stacking'][2] = ''
    27242744                wx.CallAfter(UpdateLayerData)
    27252745               
     
    27292749                    data['Layers']['Stacking'][1] = val
    27302750                else:
    2731                     if int(val) > 1032:
    2732                         data['Layers']['Stacking'][1] = 'infinite'
     2751                    try:
     2752                        if 0 < int(val) < 1023:
     2753                            data['Layers']['Stacking'][1] = val
     2754                        else:
     2755                            data['Layers']['Stacking'][1] = 'infinite'
     2756                    except ValueError:
     2757                        pass
     2758                numLayers.SetValue(data['Layers']['Stacking'][1])
     2759               
     2760            def OnNumRan(event):
     2761                val = numRan.GetValue()
     2762                try:
     2763                    if 0 > int(val) > 1022:
     2764                        raise ValueError
    27332765                    else:
    2734                         data['Layers']['Stacking'][1] = val
    2735                 numLayers.SetValue(val)
    2736                
    2737             def OnSeqType(event):
    2738                 data['Layers']['Stacking'][1] = seqType.GetValue()
    2739                 wx.CallAfter(UpdateLayerData)
     2766                        data['Layers']['Stacking'][2] = val
     2767                except ValueError:
     2768                    val = data['Layers']['Stacking'][2]
     2769                numRan.SetValue(val)
    27402770               
    27412771            def OnStackList(event):
     
    27592789                    except ValueError:
    27602790                        stack += ' Error in string'
    2761                 data['Layers']['Stacking'][2] = stack
     2791                Slist = stack.split()
     2792                if len(Slist) < 2:
     2793                    stack = 'Error in sequence - too short!'
     2794                OKlist = [Slist[i:i+2] in allowedTrans for i in range(len(Slist[:-1]))]
     2795                if all(OKlist):
     2796                    data['Layers']['Stacking'][2] = stack
     2797                else:
     2798                    stack = 'Improbable sequence or bad string'
    27622799                stackList.SetValue(stack)
    27632800           
     
    27732810            topLine.Add(stackType,0,WACV)
    27742811            if Layers['Stacking'][0] == 'recursive':
    2775                 topLine.Add(wx.StaticText(layerData,label=' number of layers: '),0,WACV)
    2776                 numLayers = wx.ComboBox(layerData,value=Layers['Stacking'][1],choices=numChoice,
    2777                     style=wx.CB_DROPDOWN)
    2778                 stackType.Bind(wx.EVT_COMBOBOX,OnNumLayers)
    2779                 stackType.Bind(wx.EVT_TEXT_ENTER,OnNumLayers)       
    2780                 stackType.Bind(wx.EVT_KILL_FOCUS,OnNumLayers)
     2812                topLine.Add(wx.StaticText(layerData,label=' number of layers (<1022 or "infinite"): '),0,WACV)
     2813                numLayers = wx.TextCtrl(layerData,value=data['Layers']['Stacking'][1],style=wx.TE_PROCESS_ENTER)
     2814                numLayers.Bind(wx.EVT_TEXT_ENTER,OnNumLayers)       
     2815                numLayers.Bind(wx.EVT_KILL_FOCUS,OnNumLayers)
    27812816                topLine.Add(numLayers,0,WACV)
    27822817            elif Layers['Stacking'][0] == 'explicit':
    27832818                topLine.Add(wx.StaticText(layerData,label=' layer sequence: '),0,WACV)
    2784                 seqType = wx.ComboBox(layerData,value=Layers['Stacking'][1],choices=seqChoice,
     2819                seqType = wx.ComboBox(layerData,value=data['Layers']['Stacking'][1],choices=seqChoice,
    27852820                    style=wx.CB_READONLY|wx.CB_DROPDOWN)
    27862821                seqType.Bind(wx.EVT_COMBOBOX,OnSeqType)
    27872822                topLine.Add(seqType,0,WACV)
    2788             stackSizer.Add(topLine,0,WACV)
    2789             if Layers['Stacking'][1] == 'list':
    2790                 Names = [' %s: %d,'%(layer['Name'],iL+1) for iL,layer in enumerate(Layers['Layers'])]
    2791                 stackSizer.Add(wx.StaticText(layerData,label=' Explicit layer sequence; enter space delimited list of numbers:'),0,WACV)
    2792                 Str = ' Use sequence nos. from:'
    2793                 for name in Names:
    2794                     Str += name
    2795                 stackSizer.Add(wx.StaticText(layerData,label=Str[:-1]+' Repeat sequences can be used: e.g. 6*(1 2) '),0,WACV)
    2796                 stackSizer.Add(wx.StaticText(layerData,label=' Zero probability sequences not allowed'),0,WACV)   
    2797                 stackList = wx.TextCtrl(layerData,value=Layers['Stacking'][2],size=(600,-1),
    2798                     style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER)
    2799                 stackList.SetValue(Layers['Stacking'][2])
    2800                 stackList.Bind(wx.EVT_TEXT_ENTER,OnStackList)       
    2801                 stackList.Bind(wx.EVT_KILL_FOCUS,OnStackList)
    2802                 stackSizer.Add(stackList,0,wx.ALL|wx.EXPAND|WACV,8)
     2823                if Layers['Stacking'][1] == 'list':
     2824                    stackSizer.Add(topLine,0,WACV)
     2825                    Names = [' %s: %d,'%(layer['Name'],iL+1) for iL,layer in enumerate(Layers['Layers'])]
     2826                    stackSizer.Add(wx.StaticText(layerData,label=' Explicit layer sequence; enter space delimited list of numbers:'),0,WACV)
     2827                    Str = ' Use sequence nos. from:'
     2828                    for name in Names:
     2829                        Str += name
     2830                    stackSizer.Add(wx.StaticText(layerData,label=Str[:-1]+' Repeat sequences can be used: e.g. 6*(1 2) '),0,WACV)
     2831                    stackSizer.Add(wx.StaticText(layerData,label=' Zero probability sequences not allowed'),0,WACV)   
     2832                    stackList = wx.TextCtrl(layerData,value=Layers['Stacking'][2],size=(600,-1),
     2833                        style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER)
     2834                    stackList.Bind(wx.EVT_TEXT_ENTER,OnStackList)       
     2835                    stackList.Bind(wx.EVT_KILL_FOCUS,OnStackList)
     2836                    stackSizer.Add(stackList,0,wx.ALL|wx.EXPAND|WACV,8)
     2837                else:   #random
     2838                    topLine.Add(wx.StaticText(layerData,label=' Length of random sequence: '),0,WACV)
     2839                    numRan = wx.TextCtrl(layerData,value=Layers['Stacking'][2],style=wx.TE_PROCESS_ENTER)
     2840                    numRan.Bind(wx.EVT_TEXT_ENTER,OnNumRan)       
     2841                    numRan.Bind(wx.EVT_KILL_FOCUS,OnNumRan)
     2842                    topLine.Add(numRan,0,WACV)
     2843                    stackSizer.Add(topLine,0,WACV)
    28032844            return stackSizer
    28042845           
    28052846        Layers = data['Layers']
    28062847        layerNames = []
     2848        allowedTrans = []
    28072849        if len(Layers['Layers']):
    28082850            layerNames = [layer['Name'] for layer in Layers['Layers']]
  • trunk/GSASIIplot.py

    r2178 r2181  
    58145814                       
    58155815    cell = Layers['Cell'][1:7]
    5816     print cell
    58175816    Amat,Bmat = G2lat.cell2AB(cell)         #Amat - crystal to cartesian, Bmat - inverse
    58185817    A4mat = np.concatenate((np.concatenate((Amat,[[0],[0],[0]]),axis=1),[[0,0,0,1],]),axis=0)
Note: See TracChangeset for help on using the changeset viewer.