Changeset 1391 for trunk/GSASIIElem.py


Ignore:
Timestamp:
Jun 20, 2014 1:43:42 PM (9 years ago)
Author:
vondreele
Message:

remove stray prints
Breit-Wigner & Lynn & Seeger neutron anomalous form factors for CW data
Add 'Ext' to HKLF reflection lists
make sure wave & tbar are in TOF HKLF reflection lists
add '_refln_f_sigma' & '_refln_f_squared_sigma' to possible cif reflection columns

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIElem.py

    r1365 r1391  
    6868    atomTypes = General['AtomTypes']
    6969    BLtable = {}
    70     isotopes = General['Isotopes']
    7170    isotope = General['Isotope']
    7271    for El in atomTypes:
     
    9594        BLvals = []
    9695        for El in BLtables:
    97             BLvals.append(BLtables[El][1]['SL'][0])
     96            if 'BW-LS' in El:
     97                BLvals.append(BLtables[El][1]['BW-LS'][0])
     98            else:
     99                BLvals.append(BLtables[El][1]['SL'][0])
    98100    else:
    99101        BLvals = {}
    100102        for El in BLtables:
    101             BLvals[El] = BLtables[El][1]['SL'][0]
     103            if 'BW-LS' in El:
     104                BLvals[El] = BLtables[El][1]['BW-LS'][0]
     105            else:
     106                BLvals[El] = BLtables[El][1]['SL'][0]
    102107    return BLvals
    103108       
     
    301306    return np.sum(fa[:,np.newaxis]*np.exp(t)[:],axis=0)+El['fc']
    302307       
    303 def BlenRes(Elist,BLtables,wave):
    304     FP = np.zeros(len(Elist))
    305     FPP = np.zeros(len(Elist))
    306     Emev = 81.80703/wave**2
    307     for i,El in enumerate(Elist):
    308         BL = BLtables[El]
    309         if len(BL) >= 6:
     308def BlenResCW(Els,BLtables,wave):
     309    FP = np.zeros(len(Els))
     310    FPP = np.zeros(len(Els))
     311    for i,El in enumerate(Els):
     312        BL = BLtables[El][1]
     313        if 'BW-LS' in BL:
     314            Re,Im,E0,gam,A,E1,B,E2 = BL['BW-LS'][1:]
    310315            Emev = 81.80703/wave**2
    311             G2 = BL[5]**2
    312             T = [Emev-BL[4],0,0]
    313             D = [T**2+G2,0,0]
    314             fp = T/D
    315             fpp = 1.0/D
    316             if len(BL) == 8:
    317                 T = Emev-BL[7]
    318                 D = T**2+G2
    319                 fp += BL[6]*T/D
    320                 fpp += BL[6]/D
    321             if len(BL) == 10:
    322                 T = Emev-BL[9]
    323                 D = T**2+G2
    324                 fp += BL[8]*T/D
    325                 fpp += BL[8]/D
    326             FP[i] = (BL[2]*fp)
    327             FPP[i] = (-BL[3]*fpp)
     316            T0 = Emev-E0
     317            T1 = Emev-E1
     318            T2 = Emev-E2
     319            D0 = T0**2+gam**2
     320            D1 = T1**2+gam**2
     321            D2 = T2**2+gam**2
     322            FP[i] = Re*(T0/D0+A*T1/D1+B*T2/D2)
     323            FPP[i] = Im*(1/D0+A/D1+B/D2)
    328324        else:
    329             FP[i] = 0.0
    330             FPP[i] = 0.0
     325            FPP[i] = BL['SL'][1]    #for Li, B, etc.
    331326    return FP,FPP
    332327   
    333 #def BlenRes(BLdata,wave):
    334 #    FP = []
    335 #    FPP = []
    336 #    Emev = 81.80703/wave**2
    337 #    for BL in BLdata:
    338 #        if len(BL) >= 6:
    339 #            G2 = BL[5]**2
    340 #            T = [Emev-BL[4],0,0]
    341 #            D = [T**2+G2,0,0]
    342 #            fp = T/D
    343 #            fpp = 1.0/D
    344 #            if len(BL) == 8:
    345 #                T = Emev-BL[7]
    346 #                D = T**2+G2
    347 #                fp += BL[6]*T/D
    348 #                fpp += BL[6]/D
    349 #            if len(BL) == 10:
    350 #                T = Emev-BL[9]
    351 #                D = T**2+G2
    352 #                fp += BL[8]*T/D
    353 #                fpp += BL[8]/D
    354 #            FP.append(BL[2]*fp)
    355 #            FPP.append(-BL[3]*fpp)
    356 #        else:
    357 #            FP.append(0.0)
    358 #            FPP.append(0.0)
    359 #    return np.array(FP),np.array(FPP)
     328def 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.
     346    return FP,FPP
    360347   
    361348def ComptonFac(El,SQ):
Note: See TracChangeset for help on using the changeset viewer.