Changeset 945 for trunk/GSASIIpwd.py
- Timestamp:
- Jun 11, 2013 9:58:44 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIpwd.py
r939 r945 716 716 cw = np.append(cw,cw[-1]) 717 717 if 'C' in dataType: 718 U = parmDict['U']719 V = parmDict['V']720 W = parmDict['W']721 X = parmDict['X']722 Y = parmDict['Y']723 718 shl = max(parmDict['SH/L'],0.002) 724 719 Ka2 = False … … 737 732 sig = parmDict[sigName] 738 733 else: 739 sig = U*tand(theta)**2+V*tand(theta)+W734 sig = G2mth.getCWsig(parmDict,theta) 740 735 sig = max(sig,0.001) #avoid neg sigma 741 736 gamName = 'gam'+str(iPeak) … … 743 738 gam = parmDict[gamName] 744 739 else: 745 gam = X/cosd(theta)+Y*tand(theta)740 gam = G2mth.getCWgam(parmDict,theta) 746 741 gam = max(gam,0.001) #avoid neg gamma 747 742 Wd,fmin,fmax = getWidthsCW(pos,sig,gam,shl) … … 766 761 Pdabc = parmDict['Pdabc'] 767 762 difC = parmDict['difC'] 768 alp0 = parmDict['alpha']769 bet0 = parmDict['beta-0']770 bet1 = parmDict['beta-1']771 sig0 = parmDict['sig-0']772 sig1 = parmDict['sig-1']773 X = parmDict['X']774 Y = parmDict['Y']775 763 iPeak = 0 776 764 while True: … … 787 775 alp = np.interp(dsp,Pdabc[0],Pdabc[1]) 788 776 else: 789 alp = alp0/dsp777 alp = G2mth.getTOFalpha(parmDict,dsp) 790 778 betName = 'bet'+str(iPeak) 791 779 if betName in varyList: … … 795 783 bet = np.interp(dsp,Pdabc[0],Pdabc[2]) 796 784 else: 797 bet = bet0+bet1/dsp**4785 bet = G2mth.getTOFbeta(parmDict,dsp) 798 786 sigName = 'sig'+str(iPeak) 799 787 if sigName in varyList: 800 788 sig = parmDict[sigName] 801 789 else: 802 sig = sig0+sig1*dsp**2790 sig = G2mth.getTOFsig(parmDict,dsp) 803 791 gamName = 'gam'+str(iPeak) 804 792 if gamName in varyList: 805 793 gam = parmDict[gamName] 806 794 else: 807 gam = X*dsp**2+Y*dsp795 gam = G2mth.getTOFgamma(parmDict,dsp) 808 796 gam = max(gam,0.001) #avoid neg gamma 809 797 Wd,fmin,fmax = getWidthsTOF(pos,alp,bet,sig,gam) … … 849 837 cw = np.append(cw,cw[-1]) 850 838 if 'C' in dataType: 851 U = parmDict['U']852 V = parmDict['V']853 W = parmDict['W']854 X = parmDict['X']855 Y = parmDict['Y']856 839 shl = max(parmDict['SH/L'],0.002) 857 840 Ka2 = False … … 872 855 sig = parmDict[sigName] 873 856 else: 874 sig = U*tanth**2+V*tanth+W 875 dsdU = tanth**2 876 dsdV = tanth 877 dsdW = 1.0 857 sig = G2mth.getCWsig(parmDict,theta) 858 dsdU,dsdV,dsdW = G2mth.getCWsigDeriv(theta) 878 859 sig = max(sig,0.001) #avoid neg sigma 879 860 gamName = 'gam'+str(iPeak) … … 881 862 gam = parmDict[gamName] 882 863 else: 883 gam = X/costh+Y*tanth 884 dgdX = 1.0/costh 885 dgdY = tanth 864 gam = G2mth.getCWgam(parmDict,theta) 865 dgdX,dgdY = G2mth.getCWgamDeriv(theta) 886 866 gam = max(gam,0.001) #avoid neg gamma 887 867 Wd,fmin,fmax = getWidthsCW(pos,sig,gam,shl) … … 936 916 Pdabc = parmDict['Pdabc'] 937 917 difC = parmDict['difC'] 938 alp0 = parmDict['alpha']939 bet0 = parmDict['beta-0']940 bet1 = parmDict['beta-1']941 sig0 = parmDict['sig-0']942 sig1 = parmDict['sig-1']943 X = parmDict['X']944 Y = parmDict['Y']945 918 iPeak = 0 946 919 while True: … … 957 930 alp = np.interp(dsp,Pdabc[0],Pdabc[1]) 958 931 else: 959 alp = alp0/dsp960 dada0 = 1./dsp932 alp = G2mth.getTOFalpha(parmDict,dsp) 933 dada0 = G2mth.getTOFalphaDeriv(dsp) 961 934 betName = 'bet'+str(iPeak) 962 935 if betName in varyList: … … 966 939 bet = np.interp(dsp,Pdabc[0],Pdabc[2]) 967 940 else: 968 bet = bet0+bet1/dsp**4 969 dbdb0 = 1. 970 dbdb1 = 1/dsp**4 941 bet = G2mth.getTOFbeta(parmDict,dsp) 942 dbdb0,dbdb1,dbdb2 = G2mth.getTOFbetaDeriv(dsp) 971 943 sigName = 'sig'+str(iPeak) 972 944 if sigName in varyList: 973 945 sig = parmDict[sigName] 974 946 else: 975 sig = sig0+sig1*dsp**2 976 dsds0 = 1. 977 dsds1 = dsp**2 947 sig = G2mth.getTOFsig(parmDict,dsp) 948 dsds0,dsds1,dsds2 = G2mth.getTOFsigDeriv(dsp) 978 949 gamName = 'gam'+str(iPeak) 979 950 if gamName in varyList: 980 951 gam = parmDict[gamName] 981 952 else: 982 gam = X*dsp**2+Y*dsp 983 dsdX = dsp**2 984 dsdY = dsp 953 gam = G2mth.getTOFgamma(parmDict,dsp) 954 dsdX,dsdY = G2mth.getTOFgammaDeriv(dsp) 985 955 gam = max(gam,0.001) #avoid neg gamma 986 956 Wd,fmin,fmax = getWidthsTOF(pos,alp,bet,sig,gam) … … 1016 986 if 'beta-1' in varyList: 1017 987 dMdv[varyList.index('beta-1')] += dbdb1*dervDict['bet'] 988 if 'beta-q' in varyList: 989 dMdv[varyList.index('beta-q')] += dbdb2*dervDict['bet'] 1018 990 if 'sig-0' in varyList: 1019 991 dMdv[varyList.index('sig-0')] += dsds0*dervDict['sig'] 1020 992 if 'sig-1' in varyList: 1021 993 dMdv[varyList.index('sig-1')] += dsds1*dervDict['sig'] 994 if 'sig-q' in varyList: 995 dMdv[varyList.index('sig-q')] += dsds2*dervDict['sig'] 1022 996 if 'X' in varyList: 1023 997 dMdv[varyList.index('X')] += dsdX*dervDict['gam'] … … 1172 1146 insVals.append(Inst[parm][1]) 1173 1147 if parm in ['U','V','W','X','Y','SH/L','I(L2)/I(L1)','alpha', 1174 'beta-0','beta-1',' sig-0','sig-1',] and Inst[parm][2]:1148 'beta-0','beta-1','beta-q','sig-0','sig-1','sig-q',] and Inst[parm][2]: 1175 1149 insVary.append(parm) 1176 1150 instDict = dict(zip(insNames,insVals)) … … 1191 1165 if sigName not in varyList: 1192 1166 if 'C' in Inst['Type'][0]: 1193 parmDict[sigName] = parmDict['U']*tand(pos/2.0)**2+parmDict['V']*tand(pos/2.0)+parmDict['W']1167 parmDict[sigName] = G2mth.getCWsig(parmDict,pos) 1194 1168 else: 1195 1169 dsp = pos/Inst['difC'][1] 1196 parmDict[sigName] = parmDict['sig-0']+parmDict['sig-1']*dsp**21170 parmDict[sigName] = G2mth.getTOFsig(parmDict,dsp) 1197 1171 gamName = 'gam'+str(iPeak) 1198 1172 if gamName not in varyList: 1199 1173 if 'C' in Inst['Type'][0]: 1200 parmDict[gamName] = parmDict['X']/cosd(pos/2.0)+parmDict['Y']*tand(pos/2.0)1174 parmDict[gamName] = G2mth.getCWgam(parmDict,pos) 1201 1175 else: 1202 1176 dsp = pos/Inst['difC'][1] 1203 parmDict[ sigName] = parmDict['X']*dsp**2+parmDict['Y']*dsp1177 parmDict[gamName] = G2mth.getTOFgamma(parmDict,dsp) 1204 1178 iPeak += 1 1205 1179 except KeyError: … … 1214 1188 for parm in Inst: 1215 1189 if parm in ['U','V','W','X','Y','SH/L','I(L2)/I(L1)','alpha', 1216 'beta-0','beta-1',' sig-0','sig-1',]:1190 'beta-0','beta-1','beta-q','sig-0','sig-1','sig-q',]: 1217 1191 ptlbls += "%s" % (parm.center(12)) 1218 1192 ptstr += ptfmt % (Inst[parm][1]) … … 1258 1232 peak[2*j] = parmDict['alpha']/dsp 1259 1233 elif 'beta' in parName: 1260 peak[2*j] = parmDict['beta-0']+parmDict['beta-1']/dsp**41234 peak[2*j] = G2mth.getTOFbeta(parmDict,dsp) 1261 1235 elif 'sig' in parName: 1262 1236 if 'C' in Inst['Type'][0]: 1263 peak[2*j] = parmDict['U']*tand(pos/2.0)**2+parmDict['V']*tand(pos/2.0)+parmDict['W']1237 peak[2*j] = G2mth.getCWsig(parmDict,pos) 1264 1238 else: 1265 peak[2*j] = parmDict['sig-0']+parmDict['sig-1']*dsp**21239 peak[2*j] = G2mth.getTOFsig(parmDict,dsp) 1266 1240 elif 'gam' in parName: 1267 1241 if 'C' in Inst['Type'][0]: 1268 peak[2*j] = parmDict['X']/cosd(pos/2.0)+parmDict['Y']*tand(pos/2.0)1242 peak[2*j] = G2mth.getCWgam(parmDict,pos) 1269 1243 else: 1270 peak[2*j] = parmDict['X']*dsp**2+parmDict['Y']*dsp1244 peak[2*j] = G2mth.getTOFgamma(parmDict,dsp) 1271 1245 1272 1246 def PeaksPrint(dataType,parmDict,sigDict,varyList):
Note: See TracChangeset
for help on using the changeset viewer.