Changeset 353 for trunk/GSASIIgrid.py


Ignore:
Timestamp:
Aug 24, 2011 4:07:29 PM (12 years ago)
Author:
vondreele
Message:

modify psvfcj.for to use sh/l only
add derivative routine to pypowder.for
GSASIIgrid.py - new LS controls for derivative type
GSASIIlattice.py - work on docs as per P Jemian
GSASIIpwd.py - major mods to use FCJpsvoight fortran code & derivatives
GSASIIpwdGUI.py - mod to use LS controls

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r346 r353  
    492492           
    493493def UpdateControls(self,data):
     494    #patch
     495    if 'deriv type' not in data:
     496        data['deriv type'] = 'analytical'
     497        data['min dM/M'] = 0.0001
     498    #end patch
    494499    '''
    495500    #Fourier controls
     
    501506       
    502507    def SetStatusLine(text):
    503         Status.SetStatusText(text)
    504                                      
    505     def OnNumCycles(event):
    506         try:
    507             value = max(0,min(200,int(Ncyc.GetValue())))
    508         except ValueError:
    509             value = 3
    510         data['Ncycles'] = value
    511         Ncyc.SetValue('%d'%(value))
     508        Status.SetStatusText(text)                                     
    512509       
    513510    def OnConvergence(event):
    514511        try:
    515             value = max(0.01,min(100.,float(Cnvrg.GetValue())))
     512            value = max(1.e-9,min(1.0,float(Cnvrg.GetValue())))
    516513        except ValueError:
    517             value = 0.01
    518         data['minSumShftESD'] = value
    519         Cnvrg.SetValue('%.2f'%(value))
    520        
    521     def OnAtomShift(event):
    522         try:
    523             value = max(0.1,min(5.,float(AtShft.GetValue())))
    524         except ValueError:
    525             value = 2.0
    526         data['maxShift'] = value
    527         AtShft.SetValue('%.1f'%(value))
    528        
    529     def OnMarquardt(event):
    530         try:
    531             value = max(1.0,min(10.0,float(Marq.GetValue())))
    532         except ValueError:
    533             value = 1.0
    534         data['Marquardt'] = value
    535         Marq.SetValue('%.2f'%(value))
    536        
    537     def OnBandWidth(event):
    538         try:
    539             value = max(0,min(200,int(Band.GetValue())))
    540         except ValueError:
    541             value = 0
    542         data['bandWidth'] = value
    543         Band.SetValue('%d'%(value))
    544        
    545     def OnRestraint(event):
    546         data['restraintWeight'] = Restraint.GetValue()
    547 
     514            value = 0.0001
     515        data['min dM/M'] = value
     516        Cnvrg.SetValue('%.2g'%(value))
     517       
     518    def OnDerivType(event):
     519        data['deriv type'] = derivSel.GetValue()
     520        derivSel.SetValue(data['deriv type'])
     521       
    548522    if self.dataDisplay:
    549523        self.dataDisplay.Destroy()
     
    558532    mainSizer.Add(wx.StaticText(self.dataDisplay,label=' Refinement Controls:'),0,wx.ALIGN_CENTER_VERTICAL)
    559533    LSSizer = wx.FlexGridSizer(cols=4,vgap=5,hgap=5)
    560     LSSizer.Add(wx.StaticText(self.dataDisplay,label=' Max cycles: '),0,wx.ALIGN_CENTER_VERTICAL)
    561     Ncyc = wx.TextCtrl(self.dataDisplay,-1,value='%d'%(data['Ncycles']),style=wx.TE_PROCESS_ENTER)
    562     Ncyc.Bind(wx.EVT_TEXT_ENTER,OnNumCycles)
    563     Ncyc.Bind(wx.EVT_KILL_FOCUS,OnNumCycles)
    564     LSSizer.Add(Ncyc,0,wx.ALIGN_CENTER_VERTICAL)
    565     LSSizer.Add(wx.StaticText(self.dataDisplay,label=' Min sum(shift/esd)^2: '),0,wx.ALIGN_CENTER_VERTICAL)
    566     Cnvrg = wx.TextCtrl(self.dataDisplay,-1,value='%.2f'%(data['minSumShftESD']),style=wx.TE_PROCESS_ENTER)
     534    LSSizer.Add(wx.StaticText(self.dataDisplay,label='Refinement derivatives: '),0,wx.ALIGN_CENTER_VERTICAL)
     535    Choice=['analytic','numeric']
     536    derivSel = wx.ComboBox(parent=self.dataDisplay,value=data['deriv type'],choices=Choice,
     537        style=wx.CB_READONLY|wx.CB_DROPDOWN)
     538    derivSel.SetValue(data['deriv type'])
     539    derivSel.Bind(wx.EVT_COMBOBOX, OnDerivType)   
     540    LSSizer.Add(derivSel,0,wx.ALIGN_CENTER_VERTICAL)
     541    LSSizer.Add(wx.StaticText(self.dataDisplay,label=' Min delta-M/M: '),0,wx.ALIGN_CENTER_VERTICAL)
     542    Cnvrg = wx.TextCtrl(self.dataDisplay,-1,value='%.2g'%(data['min dM/M']),style=wx.TE_PROCESS_ENTER)
    567543    Cnvrg.Bind(wx.EVT_TEXT_ENTER,OnConvergence)
    568544    Cnvrg.Bind(wx.EVT_KILL_FOCUS,OnConvergence)
    569545    LSSizer.Add(Cnvrg,0,wx.ALIGN_CENTER_VERTICAL)
    570     LSSizer.Add(wx.StaticText(self.dataDisplay,label=' Max atom shift: '),0,wx.ALIGN_CENTER_VERTICAL)
    571     AtShft = wx.TextCtrl(self.dataDisplay,-1,value='%.1f'%(data['maxShift']),style=wx.TE_PROCESS_ENTER)
    572     AtShft.Bind(wx.EVT_TEXT_ENTER,OnAtomShift)
    573     AtShft.Bind(wx.EVT_KILL_FOCUS,OnAtomShift)
    574     LSSizer.Add(AtShft,0,wx.ALIGN_CENTER_VERTICAL)
    575     LSSizer.Add(wx.StaticText(self.dataDisplay,label=' Marquardt factor: '),0,wx.ALIGN_CENTER_VERTICAL)
    576     Marq = wx.TextCtrl(self.dataDisplay,-1,value='%.2f'%(data['Marquardt']),style=wx.TE_PROCESS_ENTER)
    577     Marq.Bind(wx.EVT_TEXT_ENTER,OnMarquardt)
    578     Marq.Bind(wx.EVT_KILL_FOCUS,OnMarquardt)
    579     LSSizer.Add(Marq,0,wx.ALIGN_CENTER_VERTICAL)
    580     LSSizer.Add(wx.StaticText(self.dataDisplay,label=' Matrix band width: '),0,wx.ALIGN_CENTER_VERTICAL)
    581     Band = wx.TextCtrl(self.dataDisplay,-1,value='%d'%(data['bandWidth']),style=wx.TE_PROCESS_ENTER)
    582     Band.Bind(wx.EVT_TEXT_ENTER,OnBandWidth)
    583     Band.Bind(wx.EVT_KILL_FOCUS,OnBandWidth)
    584     LSSizer.Add(Band,0,wx.ALIGN_CENTER_VERTICAL)
    585     Restraint = wx.CheckBox(self.dataDisplay,-1,label='Modify restraint weights?')
    586     Restraint.Bind(wx.EVT_CHECKBOX, OnRestraint)
    587     Restraint.SetValue(data['restraintWeight'])
    588     LSSizer.Add(Restraint,0,wx.ALIGN_CENTER_VERTICAL)
    589546   
    590547   
     
    753710                data = {
    754711                    #least squares controls
    755                     'Ncycles':3,'maxShift':2.0,'bandWidth':0,'Marquardt':1.0,'restraintWeight':False,
    756                     'minSumShftESD':0.01,
     712                    'deriv type':'analytic','min dM/M':0.0001,
    757713                    #Fourier controls
    758714                    'mapType':'Fobs','d-max':100.,'d-min':0.2,'histograms':[],
Note: See TracChangeset for help on using the changeset viewer.