Changeset 2757 for trunk/GSASIIpwdGUI.py


Ignore:
Timestamp:
Mar 21, 2017 11:01:51 AM (6 years ago)
Author:
vondreele
Message:

workable reflectometry fitting by Levenberg-Marquart least squares.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIpwdGUI.py

    r2755 r2757  
    47064706    def OnFitModel(event):
    47074707       
    4708         print 'fit model'
    4709 #        SaveState()
    4710         G2pwd.REFDModelFxn(Profile,ProfDict,Inst,Limits,Substances,data)
    4711         G2plt.PlotPatterns(G2frame,plotType='REFD')
    4712         event.Skip()       
     4708        SaveState()
     4709        G2pwd.REFDRefine(Profile,ProfDict,Inst,Limits,Substances,data)
     4710        wx.CallAfter(G2plt.PlotPatterns,G2frame,plotType='REFD')
     4711        wx.CallAfter(UpdateREFDModelsGrid,G2frame,data)
    47134712       
    47144713    def OnFitModelAll(event):
     
    47204719        data = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,
    47214720            G2frame.PatternId,'Models'))
    4722         G2frame.dataFrame.RefdUndo.Enable(False)
     4721        G2frame.dataFrame.REFDUndo.Enable(False)
    47234722        UpdateREFDModelsGrid(G2frame,data)
    4724         G2pwd.REFDModelFxn(Profile,ProfDict,Inst,Limits,Substances,data)
     4723        G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    47254724
    47264725    def DoUnDo():
    47274726        print 'Undo last refinement'
    4728         file = open(G2frame.undosasd,'rb')
     4727        file = open(G2frame.undorefd,'rb')
    47294728        PatternId = G2frame.PatternId
    47304729        G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Models'),cPickle.load(file))
    4731         print ' Models recovered'
     4730        print ' Model recovered'
    47324731        file.close()
    47334732       
     
    47364735        file = open(G2frame.undorefd,'wb')
    47374736        PatternId = G2frame.PatternId
    4738         for item in ['Models']:
    4739             cPickle.dump(G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId,item)),file,1)
     4737        cPickle.dump(G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId,'Models')),file,1)
    47404738        file.close()
    4741         G2frame.dataFrame.RefdUndo.Enable(True)
     4739        G2frame.dataFrame.REFDUndo.Enable(True)
    47424740   
    47434741    def ControlSizer():
     
    47854783            if invalid:
    47864784                return
    4787             G2pwd.REFDModelFxn(Profile,ProfDict,Inst,Limits,Substances,data)
     4785            G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    47884786            G2plt.PlotPatterns(G2frame,plotType='REFD')
    47894787
     
    48154813            data['Layers'][item]['Rough'] = [0.,False]
    48164814            data['Layers'][item]['Thick'] = [1.,False]
    4817             G2pwd.REFDModelFxn(Profile,ProfDict,Inst,Limits,Substances,data)
     4815            G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    48184816            G2plt.PlotPatterns(G2frame,plotType='REFD')
    48194817            wx.CallAfter(UpdateREFDModelsGrid,G2frame,data)
     
    48284826            ind = Indx[Obj.GetId()]
    48294827            data['Layers'].insert(ind+1,{'Name':'vacuum','DenMul':[1.0,False],})
    4830             G2pwd.REFDModelFxn(Profile,ProfDict,Inst,Limits,Substances,data)
     4828            G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    48314829            G2plt.PlotPatterns(G2frame,plotType='REFD')
    48324830            wx.CallAfter(UpdateREFDModelsGrid,G2frame,data)
     
    48364834            ind = Indx[Obj.GetId()]
    48374835            del data['Layers'][ind]
    4838             G2pwd.REFDModelFxn(Profile,ProfDict,Inst,Limits,Substances,data)
     4836            G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    48394837            G2plt.PlotPatterns(G2frame,plotType='REFD')
    48404838            wx.CallAfter(UpdateREFDModelsGrid,G2frame,data)
     
    48434841            if invalid:
    48444842                return
    4845             G2pwd.REFDModelFxn(Profile,ProfDict,Inst,Limits,Substances,data)
     4843            G2pwd.REFDModelFxn(Profile,Inst,Limits,Substances,data)
    48464844            G2plt.PlotPatterns(G2frame,plotType='REFD')
    48474845            wx.CallAfter(UpdateREFDModelsGrid,G2frame,data)
     
    55085506                data['delt-G(R)'][2] += ('-\n'+subData[2])
    55095507                G2plt.PlotISFG(G2frame,data,newPlot=True,plotType='delt-G(R)')
     5508                wx.CallAfter(UpdatePDFGrid,G2frame,data)
     5509               
     5510        def OnMult(invalid,value,tc):
     5511            if invalid: return
     5512            id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,data['diffGRname'])
     5513            pId = G2gd.GetPatternTreeItemId(G2frame,id,'PDF Controls')
     5514            subData = G2frame.PatternTree.GetItemPyData(pId)['G(R)']
     5515            data['delt-G(R)'][1] = np.array([subData[1][0],data['G(R)'][1][1]-data['diffMult']*subData[1][1]])
     5516            G2plt.PlotISFG(G2frame,data,newPlot=True,plotType='delt-G(R)')
    55105517       
    55115518        diffSizer = wx.BoxSizer(wx.HORIZONTAL)
     
    55155522            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    55165523        grName.Bind(wx.EVT_COMBOBOX,OnSelectGR)       
    5517         diffSizer.Add(grName,0,)
     5524        diffSizer.Add(grName,0,WACV)
     5525        if data['diffGRname']:
     5526            diffSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Mult: '),0,WACV)
     5527            mult = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'diffMult',nDig=(10,3),
     5528                    typeHint=float,OnLeave=OnMult)
     5529            diffSizer.Add(mult,0,WACV)
     5530            OnMult(False,None,None)
    55185531        return diffSizer
    55195532           
     
    57605773    if 'diffGRname' not in data:
    57615774        data['diffGRname'] = ''
     5775    if 'diffMult' not in data:
     5776        data['diffMult'] = 1.0
    57625777    if G2frame.dataDisplay:
    57635778        G2frame.dataFrame.Clear()
Note: See TracChangeset for help on using the changeset viewer.