Changeset 2767 for trunk/GSASIIpwdGUI.py


Ignore:
Timestamp:
Mar 31, 2017 2:41:15 PM (6 years ago)
Author:
vondreele
Message:

make clearer H->R & R->H transformation labels
implement generic unit scatterer for reflectometry (& small angle) modeling
implement plot of scattering contrast with transition markers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIpwdGUI.py

    r2766 r2767  
    231231    'Fills in default items for the SASD Substances dictionary'
    232232    return {'Substances':{'vacuum':{'Elements':{},'Volume':1.0,'Density':0.0,'Scatt density':0.0,'XImag density':0.0},
    233         'unit scatter':{'Elements':None,'Volume':None,'Density':None,'Scatt density':1.0,'XImag density':0.0}}}
     233        'unit scatter':{'Elements':None,'Volume':None,'Density':None,'Scatt density':1.0,'XImag density':1.0}}}
    234234
    235235def GetFileList(G2frame,fileType):
     
    47404740        SaveState()
    47414741        G2pwd.REFDRefine(Profile,ProfDict,Inst,Limits,Substances,data)
    4742 #        x,xr,y = G2pwd.makeSLDprofile(data,Substances)
    4743 #        ModelPlot(data,x,xr,y)
     4742        x,xr,y = G2pwd.makeSLDprofile(data,Substances)
     4743        ModelPlot(data,x,xr,y)
    47444744        G2plt.PlotPatterns(G2frame,plotType='REFD')
    47454745        wx.CallLater(100,UpdateREFDModelsGrid,G2frame,data)
     
    47474747    def OnModelPlot(event):
    47484748        hst = G2frame.PatternTree.GetItemText(G2frame.PatternId)
    4749         histList = [hst,]
    4750         histList += GetHistsLikeSelected(G2frame)
     4749        histList = GetFileList(G2frame,'REFD')
     4750#        histList = [hst,]
     4751#        histList += GetHistsLikeSelected(G2frame)
    47514752        if not histList:
    47524753            G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame)
     
    47854786        linePos = np.zeros(nLines)
    47864787        for ilay,layer in enumerate(data['Layers'][1:-1]):
    4787             linePos[ilay+1:] += layer['Thick'][0]
     4788            linePos[ilay+1:] += layer.get('Thick',[0.,False])[0]
    47884789        if data['Zero']:
    47894790            XY = [[x,y],]
     
    48014802        G2frame.dataFrame.REFDUndo.Enable(False)
    48024803        G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    4803 #        x,xr,y = G2pwd.makeSLDprofile(data,Substances)
    4804 #        ModelPlot(data,x,xr,y)
     4804        x,xr,y = G2pwd.makeSLDprofile(data,Substances)
     4805        ModelPlot(data,x,xr,y)
    48054806        G2plt.PlotPatterns(G2frame,plotType='REFD')
    48064807        wx.CallLater(100,UpdateREFDModelsGrid,G2frame,data)
     
    49034904            if 'N' in Inst['Type'][0]:
    49044905                data['Layers'][item]['Mag SLD'] = [0.,False]
     4906            if Name == 'unit scatter':
     4907                data['Layers'][item]['iDenMul'] = [0.,False]
    49054908            G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    49064909            G2plt.PlotPatterns(G2frame,plotType='REFD')
     
    49324935                return
    49334936            G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    4934 #            x,xr,y = G2pwd.makeSLDprofile(data,Substances)
    4935 #            ModelPlot(data,x,xr,y)
     4937            x,xr,y = G2pwd.makeSLDprofile(data,Substances)
     4938            ModelPlot(data,x,xr,y)
    49364939            G2plt.PlotPatterns(G2frame,plotType='REFD')
    49374940            wx.CallLater(100,UpdateREFDModelsGrid,G2frame,data)
     
    49564959            midlayer.Add(midSel,0,WACV)
    49574960            if midName != 'vacuum':
    4958                 midlayer.Add(wx.StaticText(G2frame.dataDisplay,label=' Den. Mult.: '),0,WACV)
    4959                 midlayer.Add(G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['Layers'][ilay]['DenMul'],0,
     4961                if midName != 'unit scatter':
     4962                    midlayer.Add(wx.StaticText(G2frame.dataDisplay,label=' Den. Mult.: '),0,WACV)
     4963                    midlayer.Add(G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['Layers'][ilay]['DenMul'],0,
     4964                        nDig=(10,4),typeHint=float,OnLeave=Recalculate),0,WACV)
     4965                    varBox = wx.CheckBox(G2frame.dataDisplay,label='Refine?')
     4966                    Indx[varBox.GetId()] = [ilay,'DenMul']
     4967                    varBox.SetValue(data['Layers'][ilay]['DenMul'][1])
     4968                    varBox.Bind(wx.EVT_CHECKBOX, OnCheckBox)
     4969                    midlayer.Add(varBox,0,WACV)
     4970                    realScatt = data['Layers'][ilay]['DenMul'][0]*Substances[midName]['Scatt density']
     4971                    midlayer.Add(wx.StaticText(G2frame.dataDisplay,
     4972                        label=' Real scat. den.: %.4g'%(realScatt)),0,WACV)
     4973                    imagScatt = data['Layers'][ilay]['DenMul'][0]*Substances[midName]['XImag density']
     4974                    midlayer.Add(wx.StaticText(G2frame.dataDisplay,
     4975                        label=' Imag scat. den.: %.4g'%(imagScatt)),0,WACV)
     4976                else:
     4977                    realScatt = data['Layers'][ilay]['DenMul'][0]
     4978                    midlayer.Add(wx.StaticText(G2frame.dataDisplay,
     4979                        label=' Real scat. den.: %.4g'%(realScatt)),0,WACV)
     4980                    imagScatt = data['Layers'][ilay]['iDenMul'][0]
     4981                    midlayer.Add(wx.StaticText(G2frame.dataDisplay,
     4982                        label=' Imag scat. den.: %.4g'%(imagScatt)),0,WACV)                   
     4983            else:
     4984                midlayer.Add(wx.StaticText(G2frame.dataDisplay,label=', air or gas'),0,WACV)
     4985            layerSizer.Add(midlayer)
     4986            if midName == 'unit scatter':
     4987                nxtlayer = wx.BoxSizer(wx.HORIZONTAL)
     4988                nxtlayer.Add(wx.StaticText(G2frame.dataDisplay,label=' Real Den. : '),0,WACV)               
     4989                nxtlayer.Add(G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['Layers'][ilay]['DenMul'],0,
    49604990                    nDig=(10,4),typeHint=float,OnLeave=Recalculate),0,WACV)
    49614991                varBox = wx.CheckBox(G2frame.dataDisplay,label='Refine?')
     
    49634993                varBox.SetValue(data['Layers'][ilay]['DenMul'][1])
    49644994                varBox.Bind(wx.EVT_CHECKBOX, OnCheckBox)
    4965                 midlayer.Add(varBox,0,WACV)
    4966                 realScatt = data['Layers'][ilay]['DenMul'][0]*Substances[midName]['Scatt density']
    4967                 midlayer.Add(wx.StaticText(G2frame.dataDisplay,
    4968                     label=' Real scat. den.: %.4g'%(realScatt)),0,WACV)
    4969                 if midName != 'unit scatter':
    4970                     midlayer.Add(wx.StaticText(G2frame.dataDisplay,
    4971                         label=' Imag scat. den.: %.4g'%(data['Layers'][ilay]['DenMul'][0]*Substances[midName]['XImag density'])),0,WACV)
    4972             else:
    4973                 midlayer.Add(wx.StaticText(G2frame.dataDisplay,label=', air or gas'),0,WACV)
    4974             layerSizer.Add(midlayer)
     4995                nxtlayer.Add(varBox,0,WACV)
     4996                nxtlayer.Add(wx.StaticText(G2frame.dataDisplay,label=' Imag Den. : '),0,WACV)               
     4997                nxtlayer.Add(G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['Layers'][ilay]['iDenMul'],0,
     4998                    nDig=(10,4),typeHint=float,OnLeave=Recalculate),0,WACV)
     4999                varBox = wx.CheckBox(G2frame.dataDisplay,label='Refine?')
     5000                Indx[varBox.GetId()] = [ilay,'iDenMul']
     5001                varBox.SetValue(data['Layers'][ilay]['iDenMul'][1])
     5002                varBox.Bind(wx.EVT_CHECKBOX, OnCheckBox)
     5003                nxtlayer.Add(varBox,0,WACV)
     5004                layerSizer.Add(nxtlayer)
    49755005            if midName != 'vacuum':
    49765006                if 'N' in Inst['Type'][0] and midName not in ['vacuum','unit scatter']:
     
    50535083    Size[0] += 25
    50545084    G2frame.dataFrame.setSizePosLeft(Size)
    5055     x,xr,y = G2pwd.makeSLDprofile(data,Substances)
    5056     ModelPlot(data,x,xr,y)
     5085#    x,xr,y = G2pwd.makeSLDprofile(data,Substances)
     5086#    ModelPlot(data,x,xr,y)
    50575087   
    50585088   
Note: See TracChangeset for help on using the changeset viewer.