Changeset 1453


Ignore:
Timestamp:
Aug 1, 2014 3:19:48 PM (7 years ago)
Author:
vondreele
Message:

get HKLF data type into RefDict?
create a SetDefaultDData routine in GSASII.py
fix copyflags for sc extinction coeff
fix neutron resonant ff for TOF
fix error in making Hessian v-cov matrix - now matches the Jabobian one
put names in the Es, Ep & Eg sc extinction coeff
fix errors in SCExtinction - still problem with derivatives

Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Exercises/single crystal/IB3.EXP

    r902 r1453  
    1313    HSTRY 11 GENLES  Win32  Apr 18 15:20:59 2013                               
    1414    HSTRY 12 EXPEDT  Win32  May 02 11:05:24 2013             L  L               
     15    HSTRY 13 GENLES  Win32  May 02 11:05:28 2013                               
     16    HSTRY 14 EXPEDT  Win32  Jul 30 15:03:20 2014             L   O             
    1517  DSGL CDAT1  DRAD ARAD NOFO                                                   
    1618  FOUR CDAT1  PTSN X    1 NOPR   0.00      999.99                               
     
    128130INST 1PHIR    -1.                                                               
    129131ZZZZZZZZZZZZ  Last EXP file record                                             
    130     HSTRY 13 GENLES  Win32  May 02 11:05:28 2013                               
     132    HSTRY 15 GENLES  Win32  Jul 30 15:03:24 2014                               
  • trunk/GSASII.py

    r1449 r1453  
    9999    return GSASII(parent)
    100100
     101def SetDefaultDData(dType,histoName,NShkl=0,NDij=0):
     102    if dType in ['SXC','SNC']:
     103        return {'Histogram':histoName,'Show':False,'Scale':[1.0,True],
     104            'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]},
     105            'Extinction':['Lorentzian','None', {'Tbar':0.1,'Cos2TM':0.955,
     106            'Eg':[1.e-10,False],'Es':[1.e-10,False],'Ep':[1.e-10,False]}]}
     107    elif dType == 'SNT':
     108        return {'Histogram':histoName,'Show':False,'Scale':[1.0,True],
     109            'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]},
     110            'Extinction':['Lorentzian','None', {
     111            'Eg':[1.e-10,False],'Es':[1.e-10,False],'Ep':[1.e-10,False]}]}
     112    elif 'P' in dType:
     113        return {'Histogram':histoName,'Show':False,'Scale':[1.0,False],
     114            'Pref.Ori.':['MD',1.0,False,[0,0,1],0,{}],
     115            'Size':['isotropic',[1.,1.,1.],[False,False,False],[0,0,1],
     116                [1.,1.,1.,0.,0.,0.],6*[False,]],
     117            'Mustrain':['isotropic',[1000.0,1000.0,1.0],[False,False,False],[0,0,1],
     118                NShkl*[0.01,],NShkl*[False,]],
     119            'HStrain':[NDij*[0.0,],NDij*[False,]],                         
     120            'Extinction':[0.0,False],'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]}}
     121
    101122class GSASII(wx.Frame):
    102123    '''Define the main GSAS-II frame and its associated menu items
    103124    '''
     125   
    104126    def _Add_FileMenuItems(self, parent):
    105127        item = parent.Append(
     
    625647                histoName = TextList[i]
    626648                if histoName in HKLFlist:
    627                     UseList[histoName] = {
    628                         'Histogram':histoName,'Show':False,'Scale':[1.0,True],
    629                         'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]},
    630                         'Extinction':['Lorentzian','None', {'Tbar':0.1,'Cos2TM':0.955,
    631                                                             'Eg':[1.e-10,False],
    632                                                             'Es':[1.e-10,False],
    633                                                             'Ep':[1.e-10,False]},]
    634                         }
    635649                    #redo UpdateHKLFdata(histoName) here:
    636650                    Id = G2gd.GetPatternTreeItemId(self,self.root,histoName)
     
    641655                        ref[4] = np.sqrt(1./G2lat.calc_rDsq2(H,G))
    642656                        iabsnt,ref[3],Uniq,phi = G2spc.GenHKLf(H,SGData)
     657                    UseList[histoName] = SetDefaultDData(refDict['Type'],histoName)
    643658                elif histoName in PWDRlist:
    644                     UseList[histoName] = {
    645                         'Histogram':histoName,'Show':False,
    646                         'Scale':[1.0,False],'Pref.Ori.':['MD',1.0,False,[0,0,1],0,{}],
    647                         'Size':['isotropic',[1.,1.,1.],[False,False,False],[0,0,1],
    648                                 [1.,1.,1.,0.,0.,0.],6*[False,]],
    649                         'Mustrain':['isotropic',[1000.0,1000.0,1.0],[False,False,False],[0,0,1],
    650                                     NShkl*[0.01,],NShkl*[False,]],
    651                         'HStrain':[NDij*[0.0,],NDij*[False,]],                         
    652                         'Extinction':[0.0,False],'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]}}
    653659                    Id = G2gd.GetPatternTreeItemId(self,self.root,histoName)
    654660                    refList = self.PatternTree.GetItemPyData(
    655661                        G2gd.GetPatternTreeItemId(self,Id,'Reflection Lists'))
    656662                    refList[generalData['Name']] = []
     663                    UseList[histoName] = SetDefaultDData('PWDR',histoName,NShkl=NShkl,NDij=NDij)
    657664                else:
    658665                    raise Exception('Unexpected histogram '+str(histoName))
     
    714721            HistName = 'HKLF '+HistName
    715722            # make new histogram names unique
    716             valuesdict = {
    717                 'wtFactor':1.0,
    718                 'Dummy':False,
    719                 'ranId':ran.randint(0,sys.maxint),
    720                 }
    721723            if len(rd.Banks):
    722724                for Bank in rd.Banks:
     725                    valuesdict = {'wtFactor':1.0,'Dummy':False,'ranId':ran.randint(0,sys.maxint),}
    723726                    HistName = G2obj.MakeUniqueLabel(HistName,HKLFlist)
    724727                    print 'Read structure factor table '+str(HistName)+' from file '+str(self.lastimport)
     
    732735                        self.PatternTree.AppendItem(Id,text='Reflection List'),[])  #dummy entry for GUI use
    733736            else:
     737                valuesdict = {'wtFactor':1.0,'Dummy':False,'ranId':ran.randint(0,sys.maxint),}
    734738                HistName = G2obj.MakeUniqueLabel(HistName,HKLFlist)
    735739                print 'Read structure factor table '+str(HistName)+' from file '+str(self.lastimport)
     
    774778            SGData = generalData['SGData']
    775779            UseList = data['Histograms']
    776             NShkl = len(G2spc.MustrainNames(SGData))
    777             NDij = len(G2spc.HStrainNames(SGData))
    778780            for histoName in newHistList:
    779                 UseList[histoName] = {
    780                     'Histogram':histoName,'Show':False,'Scale':[1.0,True],
    781                     'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]},
    782                     'Extinction':['Lorentzian','None', {'Tbar':0.1,'Cos2TM':0.955,
    783                                                         'Eg':[1.e-10,False],
    784                                                         'Es':[1.e-10,False],
    785                                                         'Ep':[1.e-10,False]},]
    786                     }
    787781                #redo UpdateHKLFdata(histoName) here:
    788782                Id = G2gd.GetPatternTreeItemId(self,self.root,histoName)
    789783                refDict,reflData = self.PatternTree.GetItemPyData(Id)
     784                UseList[histoName] = SetDefaultDData(refDict['Type'],histoName)
    790785                G,g = G2lat.cell2Gmat(generalData['Cell'][1:7])
    791786                for iref,ref in enumerate(reflData['RefList']):
     
    13261321            NDij = len(G2spc.HStrainNames(SGData))
    13271322            for histoName in newHistList:
    1328                 UseList[histoName] = {
    1329                     'Histogram':histoName,'Show':False,
    1330                     'Scale':[1.0,False],'Pref.Ori.':['MD',1.0,False,[0,0,1],0,{}],
    1331                     'Size':['isotropic',[1.,1.,1.],[False,False,False],[0,0,1],
    1332                             [1.,1.,1.,0.,0.,0.],6*[False,]],
    1333                     'Mustrain':['isotropic',[1000.0,1000.0,1.0],[False,False,False],[0,0,1],
    1334                                 NShkl*[0.01,],NShkl*[False,]],
    1335                     'HStrain':[NDij*[0.0,],NDij*[False,]],                         
    1336                     'Extinction':[0.0,False],'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]}}
     1323                UseList[histoName] = SetDefaultDData('PWDR',histoName,NShkl=NShkl,NDij=NDij)
    13371324                Id = G2gd.GetPatternTreeItemId(self,self.root,histoName)
    13381325                refList = self.PatternTree.GetItemPyData(
     
    14961483            NShkl = len(G2spc.MustrainNames(SGData))
    14971484            NDij = len(G2spc.HStrainNames(SGData))
    1498             UseList[HistName] = {
    1499                 'Histogram':HistName,'Show':False,
    1500                 'Scale':[1.0,False],'Pref.Ori.':['MD',1.0,False,[0,0,1],0,{}],
    1501                 'Size':['isotropic',[1.,1.,1.],[False,False,False],[0,0,1],
    1502                         [1.,1.,1.,0.,0.,0.],6*[False,]],
    1503                 'Mustrain':['isotropic',[1000.0,1000.0,1.0],[False,False,False],[0,0,1],
    1504                             NShkl*[0.01,],NShkl*[False,]],
    1505                 'HStrain':[NDij*[0.0,],NDij*[False,]],                         
    1506                 'Extinction':[0.0,False],'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]}}
     1485            UseList[HistName] = SetDefaultDData('PWDR',histoName,NShkl=NShkl,NDij=NDij)
    15071486            Id = G2gd.GetPatternTreeItemId(self,self.root,HistName)
    15081487            refList = self.PatternTree.GetItemPyData(
  • trunk/GSASIIElem.py

    r1428 r1453  
    326326    return FP,FPP
    327327   
    328 def BlenResTOF(El,BLtables,wave):
    329     FP = np.zeros(len(wave))
    330     FPP = np.zeros(len(wave))
    331     BL = BLtables[El][1]
    332     print BL
    333     if 'BW-LS' in BL:
    334         Re,Im,E0,gam,A,E1,B,E2 = BL['BW-LS'][1:]
    335         Emev = 81.80703/wave**2
    336         T0 = Emev-E0
    337         T1 = Emev-E1
    338         T2 = Emev-E2
    339         D0 = T0**2+gam**2
    340         D1 = T1**2+gam**2
    341         D2 = T2**2+gam**2
    342         FP = Re*(T0/D0+A*T1/D1+B*T2/D2)
    343         FPP = Im*(1/D0+A/D1+B/D2)
    344     else:
    345         FPP = np.ones(len(wave))*BL['SL'][1]    #for Li, B, etc.
     328def BlenResTOF(Els,BLtables,wave):
     329    FP = np.zeros((len(Els),len(wave)))
     330    FPP = np.zeros((len(Els),len(wave)))
     331    BL = [BLtables[el][1] for el in Els]
     332    for i,El in enumerate(Els):
     333        if 'BW-LS' in BL[i]:
     334            Re,Im,E0,gam,A,E1,B,E2 = BL[i]['BW-LS'][1:]
     335            Emev = 81.80703/wave**2
     336            T0 = Emev-E0
     337            T1 = Emev-E1
     338            T2 = Emev-E2
     339            D0 = T0**2+gam**2
     340            D1 = T1**2+gam**2
     341            D2 = T2**2+gam**2
     342            FP[i] = Re*(T0/D0+A*T1/D1+B*T2/D2)
     343            FPP[i] = Im*(1/D0+A/D1+B/D2)
     344        else:
     345            FPP[i] = np.ones(len(wave))*BL[i]['SL'][1]    #for Li, B, etc.
    346346    return FP,FPP
    347347   
  • trunk/GSASIIddataGUI.py

    r1378 r1453  
    163163        hist = Indx[Obj.GetId()]
    164164        sourceDict = UseList[hist]
    165         copyNames = ['Scale','Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet']
     165        if 'HKLF' in sourceDict['Histogram']:
     166            copyNames = ['Scale','Extinction','Babinet']
     167        else:  #PWDR 
     168            copyNames = ['Scale','Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet']
    166169        copyDict = {}
    167170        for name in copyNames:
     
    185188        sourceDict = UseList[hist]
    186189        copyDict = {}
    187         copyNames = ['Scale','Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet']
     190        if 'HKLF' in sourceDict['Histogram']:
     191            copyNames = ['Scale','Extinction','Babinet']
     192        else:  #PWDR 
     193            copyNames = ['Scale','Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet']
    188194        babNames = ['BabA','BabU']
    189195        for name in copyNames:
    190196            if name in ['Scale','Extinction','HStrain']:
    191                 copyDict[name] = sourceDict[name][1]
     197                if name == 'Extinction' and 'HKLF' in sourceDict['Histogram']:
     198                    copyDict[name] = {}
     199                    for item in ['Eg','Es','Ep']:
     200                        copyDict[name][item] = sourceDict[name][2][item][1]
     201                else:
     202                    copyDict[name] = sourceDict[name][1]
    192203            elif name in ['Size','Mustrain']:
    193204                copyDict[name] = [sourceDict[name][0],sourceDict[name][2],sourceDict[name][4]]
     
    216227                        for name in copyNames:
    217228                            if name in ['Scale','Extinction','HStrain']:
    218                                 UseList[item][name][1] = copy.copy(copyDict[name])
     229                                if name == 'Extinction' and 'HKLF' in sourceDict['Histogram']:
     230                                    for itm in ['Eg','Es','Ep']:
     231                                        UseList[item][name][2][itm][1] = copy.copy(copyDict[name][itm])                                 
     232                                else:
     233                                    UseList[item][name][1] = copy.copy(copyDict[name])
    219234                            elif name in ['Size','Mustrain']:
    220235                                UseList[item][name][0] = copy.copy(copyDict[name][0])
     
    779794        if UseList[item]['Extinction'][1] != 'None':
    780795            extSizer.Add((0,5),)
    781             valSizer =wx.BoxSizer(wx.HORIZONTAL)
    782             valSizer.Add(wx.StaticText(DData,-1,' Tbar(mm):'),0,WACV)
    783             tbarVal = wx.TextCtrl(DData,wx.ID_ANY,
    784                 '%.3f'%(UseList[item]['Extinction'][2]['Tbar']),style=wx.TE_PROCESS_ENTER)
    785             Indx[tbarVal.GetId()] = item
    786             tbarVal.Bind(wx.EVT_TEXT_ENTER,OnTbarVal)
    787             tbarVal.Bind(wx.EVT_KILL_FOCUS,OnTbarVal)
    788             valSizer.Add(tbarVal,0,WACV)
    789             valSizer.Add(wx.StaticText(DData,-1,' cos(2ThM):'),0,WACV)
    790             cos2tm = wx.TextCtrl(DData,wx.ID_ANY,
    791                 '%.3f'%(UseList[item]['Extinction'][2]['Cos2TM']),style=wx.TE_PROCESS_ENTER)
    792             Indx[cos2tm.GetId()] = item
    793             cos2tm.Bind(wx.EVT_TEXT_ENTER,OnCos2TM)
    794             cos2tm.Bind(wx.EVT_KILL_FOCUS,OnCos2TM)
    795             valSizer.Add(cos2tm,0,WACV)
    796             extSizer.Add(valSizer,0,WACV)
     796            if 'Tbar' in UseList[item]['Extinction'][2]:       #skipped for TOF   
     797                valSizer =wx.BoxSizer(wx.HORIZONTAL)
     798                valSizer.Add(wx.StaticText(DData,-1,' Tbar(mm):'),0,WACV)
     799                tbarVal = wx.TextCtrl(DData,wx.ID_ANY,
     800                    '%.3f'%(UseList[item]['Extinction'][2]['Tbar']),style=wx.TE_PROCESS_ENTER)
     801                Indx[tbarVal.GetId()] = item
     802                tbarVal.Bind(wx.EVT_TEXT_ENTER,OnTbarVal)
     803                tbarVal.Bind(wx.EVT_KILL_FOCUS,OnTbarVal)
     804                valSizer.Add(tbarVal,0,WACV)
     805                valSizer.Add(wx.StaticText(DData,-1,' cos(2ThM):'),0,WACV)
     806                cos2tm = wx.TextCtrl(DData,wx.ID_ANY,
     807                    '%.3f'%(UseList[item]['Extinction'][2]['Cos2TM']),style=wx.TE_PROCESS_ENTER)
     808                Indx[cos2tm.GetId()] = item
     809                cos2tm.Bind(wx.EVT_TEXT_ENTER,OnCos2TM)
     810                cos2tm.Bind(wx.EVT_KILL_FOCUS,OnCos2TM)
     811                valSizer.Add(cos2tm,0,WACV)
     812                extSizer.Add(valSizer,0,WACV)
    797813            val2Sizer =wx.BoxSizer(wx.HORIZONTAL)
    798814            if 'Primary' in UseList[item]['Extinction'][1]:
  • trunk/GSASIImath.py

    r1418 r1453  
    152152            break
    153153        icycle += 1
    154     else:       #after last cycle or if zero cycles
    155         M = func(x0,*args)
    156         nfev += 1
    157         Yvec,Amat = Hess(x0,*args)
    158         Adiag = np.sqrt(np.diag(Amat))
    159         Anorm = np.outer(Adiag,Adiag)
    160         Amatlam = Amat*(One+Lam)/Anorm              #scale Amat to Marquardt array       
     154    M = func(x0,*args)
     155    nfev += 1
     156    Yvec,Amat = Hess(x0,*args)
     157    Adiag = np.sqrt(np.diag(Amat))
     158    Anorm = np.outer(Adiag,Adiag)
     159    Lam = np.eye(Amat.shape[0])*lam
     160    Amatlam = Amat/Anorm  #*(One+Lam)              #don't scale Amat to Marquardt array       
    161161    try:
    162         Bmat = nl.inv(Amatlam)*(One+Lam)/Anorm      #rescale Bmat to Marquardt array
     162        Bmat = nl.inv(Amatlam)/Anorm  #*(One+Lam)      #don't rescale Bmat to Marquardt array
    163163        return [x0,Bmat,{'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':lamMax,'psing':[], 'Converged': ifConverged, 'DelChi2':deltaChi2}]
    164164    except nl.LinAlgError:
    165         print 'ouch #2 linear algebra error in LS'
     165        print 'ouch #2 linear algebra error in making v-cov matrix'
    166166        psing = []
    167167        if maxcyc:
  • trunk/GSASIIobj.py

    r1402 r1453  
    12711271        'Mustrain;.*' : 'Microstrain coef.',
    12721272        'Size;.*' : 'Crystallite size value',
    1273         'eA' : '?',
     1273        'eA' : 'Cubic mustrain value',
     1274        'Ep' : 'Primary extinction',
     1275        'Es' : 'Secondary type II extinction',
     1276        'Eg' : 'Secondary type I extinction',
    12741277        #Histogram vars (:h:<var>)
    12751278        'Absorption' : 'Absorption coef.',
  • trunk/GSASIIphsGUI.py

    r1450 r1453  
    7575    phasePage.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1)
    7676    mainFrame.setSizePosLeft(Size)
    77 
     77   
    7878def UpdatePhaseData(G2frame,Item,data,oldPage):
    7979    '''Create the data display window contents when a phase is clicked on
  • trunk/GSASIIpwdGUI.py

    r1445 r1453  
    25062506    Types = 4*[wg.GRID_VALUE_LONG,]+4*[wg.GRID_VALUE_FLOAT+':10,4',]+ \
    25072507        2*[wg.GRID_VALUE_FLOAT+':10,2',]+[wg.GRID_VALUE_FLOAT+':10,3',]+ \
    2508         [wg.GRID_VALUE_FLOAT+':10,2',]
     2508        [wg.GRID_VALUE_FLOAT+':10,3',]
    25092509    G2frame.PeakTable = G2gd.Table(refs,rowLabels=rowLabels,colLabels=colLabels,types=Types)
    25102510    G2frame.dataFrame.SetLabel('Reflection List for '+phaseName)
  • trunk/GSASIIstrMath.py

    r1391 r1453  
    557557    Tdata,Mdata,Fdata,Xdata,dXdata,IAdata,Uisodata,Uijdata = GetAtomFXU(pfx,calcControls,parmDict)
    558558    FF = np.zeros(len(Tdata))
    559     if 'N' in calcControls[hfx+'histType']:
     559    if 'NC' in calcControls[hfx+'histType']:
    560560        FP,FPP = G2el.BlenResCW(Tdata,BLtables,parmDict[hfx+'Lam'])
    561561    else:
     
    572572        refDict['FF']['FF'] = np.zeros((len(refDict['RefList']),len(dat)))   
    573573    for iref,refl in enumerate(refDict['RefList']):
     574        if 'NT' in calcControls[hfx+'histType']:
     575            FP,FPP = G2el.BlenResCW(Tdata,BLtables,refl[12])
    574576        fbs = np.array([0,0])
    575577        H = refl[:3]
     
    632634    Tdata,Mdata,Fdata,Xdata,dXdata,IAdata,Uisodata,Uijdata = GetAtomFXU(pfx,calcControls,parmDict)
    633635    FF = np.zeros(len(Tdata))
    634     if 'N' in calcControls[hfx+'histType']:
     636    if 'NC' in calcControls[hfx+'histType']:
    635637        FP,FPP = G2el.BlenResCW(Tdata,BLtables,parmDict[hfx+'Lam'])
    636     else:
     638    elif 'X' in calcControls[hfx+'histType']:
    637639        FP = np.array([FFtables[El][hfx+'FP'] for El in Tdata])
    638640        FPP = np.array([FFtables[El][hfx+'FPP'] for El in Tdata])
     
    662664        SQ = 1./(2.*refl.T[4])**2
    663665        SQfactor = 4.0*SQ*twopisq
     666        if 'T' in calcControls[hfx+'histType']:
     667            FP,FPP = G2el.BlenResTOF(Tdata,BLtables,refl.T[12])
     668            FP = np.repeat(FP.T,len(SGT),axis=0)
     669            FPP = np.repeat(FPP.T,len(SGT),axis=0)
    664670        Bab = np.repeat(parmDict[phfx+'BabA']*np.exp(-parmDict[phfx+'BabU']*SQfactor),len(SGT))
    665671        Tindx = np.array([refDict['FF']['El'].index(El) for El in Tdata])
     
    796802    dervDict = {}
    797803    if calcControls[phfx+'EType'] != 'None':
    798         cos2T = 1.0-0.5*(parmDict[hfx+'Lam']/ref[4])**2         #cos(2theta)
     804        SQ = 1/(4.*ref[4]**2)
     805        if 'C' in parmDict[hfx+'Type']:           
     806            cos2T = 1.0-2.*SQ*parmDict[hfx+'Lam']**2           #cos(2theta)
     807        else:   #'T'
     808            cos2T = 1.0-2.*SQ*ref[12]**2                       #cos(2theta)           
    799809        if 'SXC' in parmDict[hfx+'Type']:
    800810            AV = 7.9406e5/parmDict[pfx+'Vol']**2
    801811            PL = np.sqrt(1.0-cos2T**2)/parmDict[hfx+'Lam']
    802812            P12 = (calcControls[phfx+'Cos2TM']+cos2T**4)/(calcControls[phfx+'Cos2TM']+cos2T**2)
     813            PLZ = AV*P12*ref[7]*parmDict[hfx+'Lam']**2
    803814        elif 'SNT' in parmDict[hfx+'Type']:
    804815            AV = 1.e7/parmDict[pfx+'Vol']**2
    805             PL = 1./(4.*refl[4]**2)
    806             P12 = 1.0
     816            PL = SQ
     817            PLZ = AV*ref[7]*ref[12]**2
    807818        elif 'SNC' in parmDict[hfx+'Type']:
    808819            AV = 1.e7/parmDict[pfx+'Vol']**2
    809820            PL = np.sqrt(1.0-cos2T**2)/parmDict[hfx+'Lam']
    810             P12 = 1.0
     821            PLZ = AV*ref[7]*parmDict[hfx+'Lam']**2
    811822           
    812         PLZ = AV*P12*parmDict[hfx+'Lam']**2*ref[7]
    813823        if 'Primary' in calcControls[phfx+'EType']:
    814824            PLZ *= 1.5
    815825        else:
    816             PLZ *= calcControls[phfx+'Tbar']
    817                        
     826            if 'C' in parmDict[hfx+'Type']:
     827                PLZ *= calcControls[phfx+'Tbar']
     828            else: #'T'
     829                PLZ *= ref[13]
    818830        if 'Primary' in calcControls[phfx+'EType']:
     831            PLZ *= 1.5
    819832            PSIG = parmDict[phfx+'Ep']
    820833        elif 'I & II' in calcControls[phfx+'EType']:
     
    844857            PF3 = 0.5*(CL+2.*AL*PF/(1.+BL*PF)-AL*PF**2*BL/(1.+BL*PF)**2)/(PF4*extCor)
    845858
    846         dervCor = (1.+PF)*PF3
     859        dervCor = (1.+PF)*PF3   #extinction corr for other derivatives
    847860        if 'Primary' in calcControls[phfx+'EType'] and phfx+'Ep' in varyList:
    848861            dervDict[phfx+'Ep'] = -ref[7]*PLZ*PF3
     
    18931906            time0 = time.time()
    18941907            dFdvDict = StructureFactorDerv(refDict,G,hfx,pfx,SGData,calcControls,parmDict)
    1895             print 'sf-deriv time: %.3f'%(time.time()-time0)
     1908#            print 'sf-deriv time: %.3f'%(time.time()-time0)
    18961909            ApplyRBModelDervs(dFdvDict,parmDict,rigidbodyDict,Phase)
    18971910            dMdvh = np.zeros((len(varylist),len(refDict['RefList'])))
     
    19161929                                    depDerivDict[var][iref] = w*dFdvDict[var][iref]*dervCor*parmDict[phfx+'Scale']
    19171930                            if phfx+'Scale' in varylist:
    1918                                 dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]*dervCor
     1931                                dMdvh[varylist.index(phfx+'Scale')][iref] = w*ref[9]    #*dervCor
    19191932                            elif phfx+'Scale' in dependentVars:
    1920                                 depDerivDict[phfx+'Scale'][iref] = w*ref[9]*dervCor
     1933                                depDerivDict[phfx+'Scale'][iref] = w*ref[9] #*dervCor
    19211934                            for item in ['Ep','Es','Eg']:
    19221935                                if phfx+item in varylist:
     
    19261939                            for item in ['BabA','BabU']:
    19271940                                if phfx+item in varylist:
    1928                                     dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
     1941                                    dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']  #*dervCor
    19291942                                elif phfx+item in dependentVars:
    1930                                     depDerivDict[phfx+item][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
     1943                                    depDerivDict[phfx+item][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']   #*dervCor
    19311944            else:
    19321945                for iref,ref in enumerate(refDict['RefList']):
     
    19491962                                depDerivDict[phfx+'Scale'][iref] = w*ref[9]*dervCor                           
    19501963                            for item in ['Ep','Es','Eg']:
    1951                                 if phfx+item in varylist:
    1952                                     dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]*parmDict[phfx+'Scale']
    1953                                 elif phfx+item in dependentVars:
    1954                                     depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]*parmDict[phfx+'Scale']
     1964                                if phfx+item in varylist and dervDict:
     1965                                   dMdvh[varylist.index(phfx+item)][iref] = w*dervDict[phfx+item]*parmDict[phfx+'Scale']/dervCor
     1966                                elif phfx+item in dependentVars and dervDict:
     1967                                    depDerivDict[phfx+item][iref] = w*dervDict[phfx+item]*parmDict[phfx+'Scale']/dervCor
    19551968                            for item in ['BabA','BabU']:
    19561969                                if phfx+item in varylist:
    1957                                     dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
     1970                                    dMdvh[varylist.index(phfx+item)][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']  #*dervCor
    19581971                                elif phfx+item in dependentVars:
    1959                                     depDerivDict[phfx+item][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']*dervCor
     1972                                    depDerivDict[phfx+item][iref] = w*dFdvDict[pfx+item][iref]*parmDict[phfx+'Scale']   #*dervCor
    19601973            # now process derivatives in constraints
    19611974            G2mv.Dict2Deriv(varylist,depDerivDict,dMdvh)
    1962             print 'matrix build time: %.3f'%(time.time()-time0)
     1975#            print 'matrix build time: %.3f'%(time.time()-time0)
    19631976
    19641977            if dlg:
     
    20492062            time0 = time.time()
    20502063            StructureFactor2(refDict,G,hfx,pfx,SGData,calcControls,parmDict)
    2051             print 'sf-calc time: %.3f'%(time.time()-time0)
     2064#            print 'sf-calc time: %.3f'%(time.time()-time0)
    20522065            df = np.zeros(len(refDict['RefList']))
    20532066            sumwYo = 0
  • trunk/imports/G2sfact.py

    r1446 r1453  
    7575            self.errors = 'Error after reading reflections (unexpected!)'
    7676            self.RefDict['RefList'] = np.array(self.RefDict['RefList'])
     77            self.RefDict['Type'] = 'SXC'
    7778            self.UpdateParameters(Type='SXC',Wave=None) # histogram type
    7879            return True
     
    115116            self.errors = 'Error after reading reflections (unexpected!)'
    116117            self.RefDict['RefList'] = np.array(self.RefDict['RefList'])
     118            self.RefDict['Type'] = 'SXC'
    117119            self.UpdateParameters(Type='SXC',Wave=None) # histogram type
    118120            return True
     
    174176                self.UpdateParameters(Type='SNT',Wave=None) # histogram type
    175177                for Bank in self.Banks:
    176                     Bank['RefDict']['RefList'] = np.array(Bank['RefDict']['RefList'])                   
     178                    Bank['RefDict']['RefList'] = np.array(Bank['RefDict']['RefList'])
     179                    Bank['RefDict']['Type'] = 'SNT'                   
    177180            else:
    178181                self.RefDict['RefList'] = np.array(self.RefDict['RefList'])
     182                self.RefDict['Type'] = 'SNT'
    179183                self.errors = 'Error after reading reflections (unexpected!)'
    180184                self.UpdateParameters(Type='SNT',Wave=None) # histogram type
     
    235239                self.UpdateParameters(Type='SNT',Wave=None) # histogram type
    236240                for Bank in self.Banks:
    237                     Bank['RefDict']['RefList'] = np.array(Bank['RefDict']['RefList'])                   
     241                    Bank['RefDict']['RefList'] = np.array(Bank['RefDict']['RefList'])
     242                    Bank['RefDict']['Type'] = 'SNT'                   
    238243            else:
    239244                self.RefDict['RefList'] = np.array(self.RefDict['RefList'])
     245                self.RefDict['Type'] = 'SNT'
    240246                self.errors = 'Error after reading reflections (unexpected!)'
    241247                self.UpdateParameters(Type='SNT',Wave=None) # histogram type
  • trunk/imports/G2sfact_CIF.py

    r1418 r1453  
    316316            if blk.get('_diffrn_radiation_probe'):
    317317                if blk['_diffrn_radiation_probe'] == 'neutron':
    318                     type = 'SNC'
     318                    Type = 'SNC'
    319319            elif blk.get('_diffrn_radiation.probe'):
    320320                if blk['_diffrn_radiation.probe'] == 'neutron':
    321                     type = 'SNC'
     321                    Type = 'SNC'
    322322            else:
    323323                type = 'SXC'
     324            self.RefDict['Type'] = Type
    324325            if blk.get('_diffrn_radiation_wavelength'):
    325326                wave = float(blk['_diffrn_radiation_wavelength'])
     
    328329            else:
    329330                wave = 1.5418
    330             self.UpdateParameters(Type=type,Wave=wave) # histogram type
     331            self.UpdateParameters(Type=Type,Wave=wave) # histogram type
    331332            return True
    332333        except Exception as detail:
Note: See TracChangeset for help on using the changeset viewer.