Changeset 4405


Ignore:
Timestamp:
Apr 20, 2020 7:23:39 PM (18 months ago)
Author:
vondreele
Message:

continue fullrmc interface work
fix bad PatternId? problem in Texture GUI

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r4404 r4405  
    44124412            return atmChoice
    44134413       
     4414        def GetSwapSizer(RMCPdict):
     4415
     4416            def OnDelSwap(event):
     4417                Obj = event.GetEventObject()
     4418                swap = Indx[Obj.GetId()]
     4419                del RMCPdict['Swaps'][swap]
     4420                wx.CallAfter(UpdateRMC)
     4421               
     4422            def OnSwapAtSel(event):
     4423                Obj = event.GetEventObject()
     4424                swap,i = Indx[Obj.GetId()]
     4425                RMCPdict['Swaps'][swap][i] = Obj.GetStringSelection()
     4426                                       
     4427            Indx = {}
     4428            atChoice = RMCPdict['atSeq']
     4429            swapSizer = wx.FlexGridSizer(4,5,5)
     4430            swapLabels = [' ','Atom-A','Atom-B',' Swap prob.']
     4431            for lab in swapLabels:
     4432                swapSizer.Add(wx.StaticText(G2frame.FRMC,label=lab),0,WACV)
     4433            for ifx,swap in enumerate(RMCPdict['Swaps']):
     4434                delBtn = wx.Button(G2frame.FRMC,label='Delete')
     4435                delBtn.Bind(wx.EVT_BUTTON,OnDelSwap)
     4436                Indx[delBtn.GetId()] = ifx
     4437                swapSizer.Add(delBtn,0,WACV)
     4438                for i in [0,1]:
     4439                    atmSel = wx.ComboBox(G2frame.FRMC,choices=atChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY)
     4440                    atmSel.SetStringSelection(swap[i])
     4441                    atmSel.Bind(wx.EVT_COMBOBOX,OnSwapAtSel)
     4442                    Indx[atmSel.GetId()] = [ifx,i]
     4443                    swapSizer.Add(atmSel,0,WACV)
     4444                swapSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,swap,2,min=0.,max=1.,size=(50,25)),0,WACV)
     4445            return swapSizer
     4446       
     4447        def GetPairSizer(RMCdict):
     4448            pairSizer = wx.FlexGridSizer(len(RMCPdict['Pairs'])+1,5,5)
     4449            pairSizer.Add((5,5),0)
     4450            for pair in RMCPdict['Pairs']:
     4451                pairSizer.Add(wx.StaticText(G2frame.FRMC,label=pair),0,WACV)
     4452            if G2frame.RMCchoice == 'RMCProfile':
     4453                pairSizer.Add(wx.StaticText(G2frame.FRMC,label='%14s'%' Hard min: '),0,WACV)
     4454                for pair in RMCPdict['Pairs']:
     4455                    pairSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,RMCPdict['Pairs'][pair],0,min=0.,max=10.,size=(50,25)),0,WACV)
     4456            pairSizer.Add(wx.StaticText(G2frame.FRMC,label='%14s'%' Search from: '),0,WACV)
     4457            for pair in RMCPdict['Pairs']:
     4458                pairSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,RMCPdict['Pairs'][pair],
     4459                    1,min=0.,max=10.,size=(50,25)),0,WACV)
     4460            pairSizer.Add(wx.StaticText(G2frame.FRMC,label='%14s'%'to: '),0,WACV)
     4461            for pair in RMCPdict['Pairs']:
     4462                pairSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,RMCPdict['Pairs'][pair],2,min=0.,max=10.,size=(50,25)),0,WACV)
     4463            return pairSizer
     4464                   
    44144465        def FileSizer(RMCdict):
    44154466           
     
    45574608                data['RMC']['fullrmc'] = {'SuperCell':[1,1,1],'Box':[10.,10.,10.],'aTypes':aTypes,'byMolec':False,
    45584609                    'Natoms':1,'atSeq':atSeq,'Pairs':Pairs,'files':files,'ReStart':[False,False],
    4559                     'Swaps':[],'useBVS':False,'FitScale':False,'AveCN':[],'FxCN':[],
     4610                    'Swaps':[],'useBVS':False,'FitScale':False,'AveCN':[],'FxCN':[],'Angles':[],'Angle Weight':1.e-5,
    45604611                    'moleculePdb':'Select','targetDensity':1.0,'maxRecursion':10000,
    45614612                    'atomPDB':''}
     
    45854636            def OnReStart(event):
    45864637                RMCPdict['ReStart'][0] = not RMCPdict['ReStart'][0]
     4638               
     4639            def OnAddSwap(event):
     4640                RMCPdict['Swaps'].append(['','',0.0,])
     4641                wx.CallAfter(UpdateRMC)
    45874642               
    45884643            def OnPdbButton(event):
     
    46274682                    dlg.Destroy()
    46284683               
     4684            def OnAddAngle(event):
     4685                RMCPdict['Angles'].append(['','','',0.,0.])
     4686                wx.CallAfter(UpdateRMC)
     4687               
     4688            def GetAngleSizer():
     4689               
     4690                def OnDelAngle(event):
     4691                    Obj = event.GetEventObject()
     4692                    angle = Indx[Obj.GetId()]
     4693                    del RMCPdict['Angles'][angle]
     4694                    wx.CallAfter(UpdateRMC)
     4695                   
     4696                def OnAngleAtSel(event):
     4697                    Obj = event.GetEventObject()
     4698                    angle,i = Indx[Obj.GetId()]
     4699                    RMCPdict['Angles'][angle][i] = Obj.GetStringSelection()
     4700                                           
     4701                def SetRestart1(invalid,value,tc):
     4702                    RMCPdict['ReStart'][1] = True
     4703               
     4704                Indx = {}
     4705                atChoice = RMCPdict['atSeq']
     4706                angleSizer = wx.FlexGridSizer(6,5,5)
     4707                fxcnLabels = [' ','Atom-A','Atom-B','Atom-C',' min angle',' max angle']
     4708                for lab in fxcnLabels:
     4709                    angleSizer.Add(wx.StaticText(G2frame.FRMC,label=lab),0,WACV)
     4710                for ifx,angle in enumerate(RMCPdict['Angles']):
     4711                    delBtn = wx.Button(G2frame.FRMC,label='Delete')
     4712                    delBtn.Bind(wx.EVT_BUTTON,OnDelAngle)
     4713                    Indx[delBtn.GetId()] = ifx
     4714                    angleSizer.Add(delBtn,0,WACV)
     4715                    for i in [0,1,2]:
     4716                        atmSel = wx.ComboBox(G2frame.FRMC,choices=atChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY)
     4717                        atmSel.SetStringSelection(angle[i])
     4718                        atmSel.Bind(wx.EVT_COMBOBOX,OnAngleAtSel)
     4719                        Indx[atmSel.GetId()] = [ifx,i]
     4720                        angleSizer.Add(atmSel,0,WACV)
     4721                    angleSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,angle,3,min=0.,max=180.,OnLeave=SetRestart1,size=(50,25)),0,WACV)
     4722                    angleSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,angle,4,min=0.,max=180.,OnLeave=SetRestart1,size=(50,25)),0,WACV)
     4723                return angleSizer
    46294724#patches
    46304725            if 'useBVS' not in RMCPdict:
     
    46404735            if 'atomPDB' not in RMCPdict:
    46414736                RMCPdict['atomPDB'] = ''
     4737            if 'Angles' not in RMCPdict:
     4738                RMCPdict.update({'Angles':[],'Angle Weight':1.e-5,'Bond Weight':1.e-5,'Torsions':[],'Torsion Weight':1.e-5})
    46424739#end patches
    46434740
     
    46904787           
    46914788            G2G.HorizontalLine(mainSizer,G2frame.FRMC)
     4789            swapBox = wx.BoxSizer(wx.HORIZONTAL)
     4790            swapAdd = wx.Button(G2frame.FRMC,label='Add')
     4791            swapAdd.Bind(wx.EVT_BUTTON,OnAddSwap)
     4792            swapBox.Add(swapAdd,0,WACV)
     4793            swapBox.Add(wx.StaticText(G2frame.FRMC,label=' Atom swap probabiities: '),0,WACV)
     4794            mainSizer.Add(swapBox,0,WACV)       
     4795            if len(RMCPdict['Swaps']):
     4796                mainSizer.Add(GetSwapSizer(RMCPdict),0,WACV)           
     4797
     4798            G2G.HorizontalLine(mainSizer,G2frame.FRMC)
     4799            mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' Enter constraints && restraints:'),0,WACV)
     4800            distBox = wx.BoxSizer(wx.HORIZONTAL)
     4801            distBox.Add(wx.StaticText(G2frame.FRMC,label=' Distance constraints, weight: :'),0,WACV)       
     4802            distBox.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,RMCPdict,'Bond Weight',min=0.,max=100.,size=(50,25)),0,WACV)
     4803            mainSizer.Add(distBox,0,WACV)
     4804            mainSizer.Add(GetPairSizer(RMCPdict),0,WACV)
     4805           
     4806            angBox = wx.BoxSizer(wx.HORIZONTAL)
     4807            angAdd = wx.Button(G2frame.FRMC,label='Add')
     4808            angAdd.Bind(wx.EVT_BUTTON,OnAddAngle)
     4809            angBox.Add(angAdd,0,WACV)
     4810            angBox.Add(wx.StaticText(G2frame.FRMC,label=' A-B-C angle restraints, weight: '),0,WACV)
     4811            angBox.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,RMCPdict,'Angle Weight',min=0.,max=100.,size=(50,25)),0,WACV)
     4812            mainSizer.Add(angBox,0,WACV)
     4813            if len(RMCPdict['Angles']):
     4814                mainSizer.Add(GetAngleSizer(),0,WACV)
     4815               
     4816            G2G.HorizontalLine(mainSizer,G2frame.FRMC)
    46924817            mainSizer.Add(FileSizer(RMCPdict),0,WACV)
    46934818               
     
    47954920                return superSizer
    47964921                     
    4797             def GetPairSizer():
    4798                 pairSizer = wx.FlexGridSizer(len(RMCPdict['Pairs'])+1,5,5)
    4799                 pairSizer.Add((5,5),0)
    4800                 for pair in RMCPdict['Pairs']:
    4801                     pairSizer.Add(wx.StaticText(G2frame.FRMC,label=pair),0,WACV)
    4802                 pairSizer.Add(wx.StaticText(G2frame.FRMC,label='%14s'%' Hard min: '),0,WACV)
    4803                 for pair in RMCPdict['Pairs']:
    4804                     pairSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,RMCPdict['Pairs'][pair],0,min=0.,max=10.,size=(50,25)),0,WACV)
    4805                 pairSizer.Add(wx.StaticText(G2frame.FRMC,label='%14s'%' Search from: '),0,WACV)
    4806                 for pair in RMCPdict['Pairs']:
    4807                     pairSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,RMCPdict['Pairs'][pair],
    4808                         1,min=0.,max=10.,size=(50,25)),0,WACV)
    4809                 pairSizer.Add(wx.StaticText(G2frame.FRMC,label='%14s'%'to: '),0,WACV)
    4810                 for pair in RMCPdict['Pairs']:
    4811                     pairSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,RMCPdict['Pairs'][pair],2,min=0.,max=10.,size=(50,25)),0,WACV)
    4812                 return pairSizer
    4813            
    48144922            def GetBvsSizer():
    48154923               
     
    49945102                return bondSizer
    49955103
    4996             def GetSwapSizer():
    4997    
    4998                 def OnDelSwap(event):
    4999                     Obj = event.GetEventObject()
    5000                     swap = Indx[Obj.GetId()]
    5001                     del RMCPdict['Swaps'][swap]
    5002                     wx.CallAfter(UpdateRMC)
    5003                    
    5004                 def OnSwapAtSel(event):
    5005                     Obj = event.GetEventObject()
    5006                     swap,i = Indx[Obj.GetId()]
    5007                     RMCPdict['Swaps'][swap][i] = Obj.GetStringSelection()
    5008                                            
    5009                 atChoice = RMCPdict['atSeq']
    5010                 swapSizer = wx.FlexGridSizer(4,5,5)
    5011                 swapLabels = [' ','Atom-A','Atom-B',' Swap prob.']
    5012                 for lab in swapLabels:
    5013                     swapSizer.Add(wx.StaticText(G2frame.FRMC,label=lab),0,WACV)
    5014                 for ifx,swap in enumerate(RMCPdict['Swaps']):
    5015                     delBtn = wx.Button(G2frame.FRMC,label='Delete')
    5016                     delBtn.Bind(wx.EVT_BUTTON,OnDelSwap)
    5017                     Indx[delBtn.GetId()] = ifx
    5018                     swapSizer.Add(delBtn,0,WACV)
    5019                     for i in [0,1]:
    5020                         atmSel = wx.ComboBox(G2frame.FRMC,choices=atChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY)
    5021                         atmSel.SetStringSelection(swap[i])
    5022                         atmSel.Bind(wx.EVT_COMBOBOX,OnSwapAtSel)
    5023                         Indx[atmSel.GetId()] = [ifx,i]
    5024                         swapSizer.Add(atmSel,0,WACV)
    5025                     swapSizer.Add(G2G.ValidatedTxtCtrl(G2frame.FRMC,swap,2,min=0.,max=1.,size=(50,25)),0,WACV)
    5026                 return swapSizer
    50275104           
    50285105            Indx = {}
     
    50485125            mainSizer.Add(swapBox,0,WACV)       
    50495126            if len(RMCPdict['Swaps']):
    5050                 mainSizer.Add(GetSwapSizer(),0,WACV)           
     5127                mainSizer.Add(GetSwapSizer(RMCPdict),0,WACV)           
    50515128           
    50525129            G2G.HorizontalLine(mainSizer,G2frame.FRMC)
    50535130            mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' Enter constraints && restraints:'),0,WACV)
    50545131            mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' Set minimum && maximum distances for:'),0,WACV)       
    5055             mainSizer.Add(GetPairSizer(),0,WACV)
     5132            mainSizer.Add(GetPairSizer(RMCPdict),0,WACV)
    50565133           
    50575134            G2G.HorizontalLine(mainSizer,G2frame.FRMC)
     
    52015278                if msg != wx.OK:
    52025279                    return
     5280            if os.path.isfile('pdbparser_0.log'):
     5281                os.remove('pdbparser_0.log')           
    52035282            ilog = 0
    52045283            while True:
     
    82068285                for h in data['Histograms']:
    82078286                    PatternId = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,h)
     8287                    if not PatternId:       #skip bogus histograms
     8288                        continue
    82088289                    Inst = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(G2frame,PatternId,'Instrument Parameters'))[0]
    82098290                    Sample = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(G2frame,PatternId,'Sample Parameters'))
  • trunk/GSASIIpwd.py

    r4404 r4405  
    25032503                sfwt = 'xrays'
    25042504            if 'G(r)' in File:
    2505                 rundata += '    GofR = PairDistributionConstraint(experimentalData=%s, weighting="%s"\n'%(filDat[0],sfwt)
     2505                rundata += '    GofR = PairDistributionConstraint(experimentalData=%s, weighting="%s")\n'%(filDat[0],sfwt)
    25062506                rundata += '    GofR.set_variance_squared(%f)\n'%filDat[1]
    25072507                rundata += '    ENGINE.add_constraints([GofR])\n'
    25082508            else:
    2509                 rundata += '    FofQ = StructureFactorConstraint(experimentalData=%s, weighting="%s"\n'%(filDat[0],sfwt)
     2509                rundata += '    FofQ = StructureFactorConstraint(experimentalData=%s, weighting="%s")\n'%(filDat[0],sfwt)
    25102510                rundata += '    FofQ.set_variance_squared(%f)\n'%filDat[1]
    25112511                rundata += '    ENGINE.add_constraints([FofQ])\n'
Note: See TracChangeset for help on using the changeset viewer.