Changeset 1875


Ignore:
Timestamp:
Jun 2, 2015 2:36:58 PM (7 years ago)
Author:
vondreele
Message:

add Flack parameter to GUI (commented out for now)

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r1861 r1875  
    9595            'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]},
    9696            'Extinction':['Lorentzian','None', {'Tbar':0.1,'Cos2TM':0.955,
    97             'Eg':[1.e-10,False],'Es':[1.e-10,False],'Ep':[1.e-10,False]}]}
     97            'Eg':[1.e-10,False],'Es':[1.e-10,False],'Ep':[1.e-10,False]}],
     98            'Flack':[0.0,False]}
    9899    elif dType == 'SNT':
    99100        return {'Histogram':histoName,'Show':False,'Scale':[1.0,True],
  • trunk/GSASIIddataGUI.py

    r1837 r1875  
    396396        UseList[item]['Babinet']['Bab'+bab][1] = Obj.GetValue()
    397397       
     398    def OnFlackRef(event):
     399        Obj = event.GetEventObject()
     400        UseList[G2frame.hist]['Flack'][1] = Obj.GetValue()
     401       
    398402    def OnBabVal(event):
    399403        Obj = event.GetEventObject()
     
    406410            pass
    407411        Obj.SetValue("%.3f"%(UseList[item]['Babinet']['Bab'+bab][0]))
     412       
     413    def OnFlackVal(event):
     414        Obj = event.GetEventObject()
     415        try:
     416            flack = float(Obj.GetValue())
     417            UseList[G2frame.hist]['Flack'][0] = flack
     418        except ValueError:
     419            pass
     420        Obj.SetValue("%.3f"%(UseList[G2frame.hist]['Flack'][0]))
    408421
    409422    def OnTbarVal(event):
     
    784797            babVal.Bind(wx.EVT_TEXT_ENTER,OnBabVal)
    785798            babVal.Bind(wx.EVT_KILL_FOCUS,OnBabVal)
    786             babSizer.Add(babVal,0,WACV|wx.BOTTOM,5)
     799            babSizer.Add(babVal,0,WACV)
    787800        return babSizer
     801       
     802    def FlackSizer():
     803        flackSizer = wx.BoxSizer(wx.HORIZONTAL)
     804        flackRef = wx.CheckBox(DData,wx.ID_ANY,label=' Flack parameter: ')
     805        flackRef.SetValue(UseList[G2frame.hist]['Flack'][1])
     806        flackRef.Bind(wx.EVT_CHECKBOX, OnFlackRef)
     807        flackSizer.Add(flackRef,0,WACV|wx.LEFT,5)
     808        flackVal = wx.TextCtrl(DData,wx.ID_ANY,
     809            '%.3f'%(UseList[G2frame.hist]['Flack'][0]),style=wx.TE_PROCESS_ENTER)
     810        flackVal.Bind(wx.EVT_TEXT_ENTER,OnFlackVal)
     811        flackVal.Bind(wx.EVT_KILL_FOCUS,OnFlackVal)
     812        flackSizer.Add(flackVal,0,WACV)
     813        return flackSizer
    788814       
    789815    def OnSelect(event):
     
    816842            UseList[G2frame.hist]['Babinet'] = {'BabA':[0.0,False],'BabU':[0.0,False]}
    817843        bottomSizer = wx.BoxSizer(wx.VERTICAL)
    818         showSizer = wx.BoxSizer(wx.HORIZONTAL)
    819844        useData = wx.CheckBox(DData,wx.ID_ANY,label='Use Histogram: '+G2frame.hist+' ?')
    820         showSizer.Add(useData,0,WACV|wx.TOP|wx.BOTTOM,5)
    821845        useData.Bind(wx.EVT_CHECKBOX, OnUseData)
    822846        useData.SetValue(UseList[G2frame.hist]['Use'])
    823         bottomSizer.Add(showSizer,0,WACV|wx.TOP|wx.BOTTOM|wx.LEFT,5)
     847        bottomSizer.Add(useData,0,WACV|wx.TOP|wx.BOTTOM|wx.LEFT,5)
    824848       
    825849        bottomSizer.Add(ScaleSizer(),0,WACV|wx.BOTTOM,5)
     
    909933            bottomSizer.Add(BabSizer(),0,WACV|wx.BOTTOM,5)
    910934        elif G2frame.hist[:4] == 'HKLF':
    911             bottomSizer.Add(SCExtSizer(),0,WACV|wx.TOP|wx.BOTTOM,5)
     935#patch
     936            if 'Flack' not in UseList[G2frame.hist]:
     937                UseList[G2frame.hist]['Flack'] = [0.0,False]
     938#end patch
     939            bottomSizer.Add(SCExtSizer(),0,WACV|wx.BOTTOM,5)
    912940            bottomSizer.Add(BabSizer(),0,WACV|wx.BOTTOM,5)
    913    
     941#            if not SGData['SGInv']:        #not operational yet - no test data
     942#                bottomSizer.Add(FlackSizer(),0,WACV|wx.BOTTOM,5)
    914943        return bottomSizer
    915944               
  • trunk/GSASIIobj.py

    r1833 r1875  
    13001300        'Es$' : 'Secondary type II extinction',
    13011301        'Eg$' : 'Secondary type I extinction',
     1302        'Flack' : 'Flack parameter',
    13021303        #Histogram vars (:h:<var>)
    13031304        'Absorption' : 'Absorption coef.',
  • trunk/GSASIIphsGUI.py

    r1852 r1875  
    38003800            item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie)                       
    38013801        dlg = G2G.G2MultiChoiceDialog(G2frame, 'Select reflection sets to use',
    3802                     'Use data',TextList)
     3802            'Use data',TextList)
    38033803        try:
    38043804            if dlg.ShowModal() == wx.ID_OK:
     
    38323832            histoName = TextList[i]
    38333833            UseList[histoName] = {'Histogram':histoName,'Show':False,'Scale':[1.0,True],
    3834                                   'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]},
    3835                                   'Extinction':['Lorentzian','None',
    3836                                                 {'Tbar':0.1,'Cos2TM':0.955,'Eg':[1.e-7,False],'Es':[1.e-7,False],'Ep':[1.e-7,False]},]}                       
     3834                'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]},
     3835                'Extinction':['Lorentzian','None',
     3836                {'Tbar':0.1,'Cos2TM':0.955,'Eg':[1.e-7,False],'Es':[1.e-7,False],'Ep':[1.e-7,False]},],
     3837                'Flack':[0.0,False]}                       
    38373838            UpdateHKLFdata(histoName)
    38383839            data['Histograms'] = UseList
     
    38593860        sourceDict = UseList[hist]
    38603861        if 'HKLF' in sourceDict['Histogram']:
    3861             copyNames = ['Scale','Extinction','Babinet']
     3862            copyNames = ['Scale','Extinction','Babinet','Flack']
    38623863        else:  #PWDR 
    38633864            copyNames = ['Scale','Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet']
     
    38813882        copyDict = {}
    38823883        if 'HKLF' in sourceDict['Histogram']:
    3883             copyNames = ['Scale','Extinction','Babinet']
     3884            copyNames = ['Scale','Extinction','Babinet','Flack']
    38843885        else:  #PWDR 
    38853886            copyNames = ['Scale','Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet']
    38863887        babNames = ['BabA','BabU']
    38873888        for name in copyNames:
    3888             if name in ['Scale','Extinction','HStrain']:
     3889            if name in ['Scale','Extinction','HStrain','Flack']:
    38893890                if name == 'Extinction' and 'HKLF' in sourceDict['Histogram']:
    38903891                    copyDict[name] = {name:[sourceDict[name][:2]]}
     
    39183919                        UseList[item]
    39193920                        for name in copyNames:
    3920                             if name in ['Scale','Extinction','HStrain']:
     3921                            if name in ['Scale','Extinction','HStrain','Flack']:
    39213922                                if name == 'Extinction' and 'HKLF' in sourceDict['Histogram']:
    39223923                                    UseList[item][name][:2] = copy.deepcopy(sourceDict[name][:2])
     
    39503951        copyDict = {}
    39513952        if 'HKLF' in sourceDict['Histogram']:
    3952             copyNames = ['Scale','Extinction','Babinet']
     3953            copyNames = ['Scale','Extinction','Babinet','Flack']
    39533954        else:  #PWDR 
    39543955            copyNames = ['Scale','Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet']
     
    39743975            finally:
    39753976                dlg.Destroy()           
    3976 
    39773977       
    39783978    def OnPwdrAdd(event):
  • trunk/GSASIIstrIO.py

    r1861 r1875  
    22402240                    if hapData['Babinet'][bab][1]:
    22412241                        hapVary.append(pfx+bab)
     2242                hapDict[pfx+'Flack'] = hapData['Flack'][0]
     2243                if hapData['Flack'][1]:
     2244                    hapVary.append(pfx+'Flack')
    22422245                if Print:
    22432246                    print >>pFile,'\n Phase: ',phase,' in histogram: ',histogram
     
    22522255                    if hapData['Babinet']['BabA'][0]:
    22532256                        PrintBabinet(hapData['Babinet'])
     2257                    if not SGData['SGInv']:
     2258                        print >>pFile,' Flack parameter: %10.3f'%(hapData['Flack'][0]),' Refine?',hapData['Flack'][1]
    22542259                Histogram['Reflection Lists'] = phase       
    22552260               
     
    24812486               
    24822487            elif 'HKLF' in histogram:
    2483                 for item in ['Scale',]:
     2488                for item in ['Scale','Flack']:
    24842489                    if parmDict.get(pfx+item):
    24852490                        hapData[item][0] = parmDict[pfx+item]
     
    25542559                    if len(BabSig):
    25552560                        PrintBabinetAndSig(pfx,hapData['Babinet'],BabSig)
     2561                    if pfx+'Flack' in ScalExtSig:
     2562                        print >>pFile,' Flack parameter : %10.3f, sig %10.3f'%(hapData['Flack'][0],ScalExtSig[pfx+'Flack'])
    25562563
    25572564################################################################################
  • trunk/GSASIIstrMath.py

    r1874 r1875  
    856856            FPP = np.repeat(FPP.T,len(SGT),axis=0)
    857857        Bab = np.repeat(parmDict[phfx+'BabA']*np.exp(-parmDict[phfx+'BabU']*SQfactor),len(SGT))
     858        Flack = 1.-2.*parmDict[phfx+'Flack']
    858859        Tindx = np.array([refDict['FF']['El'].index(El) for El in Tdata])
    859860        FF = np.repeat(refDict['FF']['FF'][iBeg:iFin].T[Tindx].T,len(SGT),axis=0)
     
    868869        Tuij = np.where(HbH<1.,np.exp(HbH),1.0).T
    869870        Tcorr = Tiso*Tuij*Mdata*Fdata/len(SGMT)
    870         fa = np.array([((FF+FP).T-Bab).T*cosp*Tcorr,-FPP*sinp*Tcorr])
     871        fa = np.array([((FF+FP).T-Bab).T*cosp*Tcorr,-Flack*FPP*sinp*Tcorr])
    871872        fa = np.reshape(fa,(2,len(refl),len(SGT),len(Mdata)))   #real A,-b
    872873        fas = np.sum(np.sum(fa,axis=2),axis=2)        #real sum over atoms & unique hkl
    873         fb = np.array([((FF+FP).T-Bab).T*sinp*Tcorr,FPP*cosp*Tcorr])
     874        fb = np.array([((FF+FP).T-Bab).T*sinp*Tcorr,Flack*FPP*cosp*Tcorr])
    874875        fb = np.reshape(fb,(2,len(refl),len(SGT),len(Mdata)))   #imag -B,+a
    875876        fbs = np.sum(np.sum(fb,axis=2),axis=2)  #imag sum over atoms & uniq hkl
     
    933934        Tuij = np.where(HbH<1.,np.exp(HbH),1.0)
    934935        Tcorr = Tiso*Tuij
     936        Flack = (1.-2.*parmDict[phfx+'Flack'])
    935937        fot = (FF+FP-Bab)*occ*Tcorr
    936         fotp = FPP*occ*Tcorr
     938        fotp = Flack*FPP*occ*Tcorr
    937939        fa = np.array([fot[:,np.newaxis]*cosp,fotp[:,np.newaxis]*cosp])       #non positions
    938940        fb = np.array([fot[:,np.newaxis]*sinp,-fotp[:,np.newaxis]*sinp])
Note: See TracChangeset for help on using the changeset viewer.