Changeset 1474
- Timestamp:
- Aug 21, 2014 1:31:59 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 61 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/GSASIImath.py ¶
r1464 r1474 2942 2942 cosTable = np.array(cosTable)**2 2943 2943 nRef = len(refs) 2944 if covData['freshCOV'] and generalData['doPawley'] and MCSA.get('newDmin',True):2944 if generalData['doPawley'] and (covData['freshCOV'] or MCSA['newDmin']): 2945 2945 vList = covData['varyList'] 2946 2946 covMatrix = covData['covMatrix'] -
TabularUnified trunk/GSASIIphsGUI.py ¶
r1470 r1474 122 122 'MCSA controls' not in generalData: 123 123 generalData['MCSA controls'] = {'Data source':'','Annealing':[50.,0.001,50], 124 'dmin':2.0,'Algorithm':' fast','Jump coeff':[0.95,0.5],'boltzmann':1.0,125 'fast parms':[1.0,1.0,1.0],'log slope':0.9,'Cycles':1,'Results':[] }124 'dmin':2.0,'Algorithm':'log','Jump coeff':[0.95,0.5],'boltzmann':1.0, 125 'fast parms':[1.0,1.0,1.0],'log slope':0.9,'Cycles':1,'Results':[],'newDmin':True} 126 126 if 'AtomPtrs' not in generalData: 127 127 generalData['AtomPtrs'] = [3,1,7,9] -
TabularUnified trunk/GSASIIplot.py ¶
r1473 r1474 3849 3849 MCSA = data.get('MCSA',{}) 3850 3850 mcsaModels = MCSA.get('Models',[]) 3851 if mcsaModels:3851 if len(mcsaModels) > 1: 3852 3852 XYZs,Types = G2mth.UpdateMCSAxyz(Bmat,MCSA) 3853 3853 mcsaXYZ = [] -
TabularUnified trunk/GSASIIpwd.py ¶
r1464 r1474 519 519 return intens*Df(xdata)*DX/dx 520 520 521 def getBackground(pfx,parmDict,bakType, xdata):521 def getBackground(pfx,parmDict,bakType,dataType,xdata): 522 522 'needs a doc string' 523 523 yb = np.zeros_like(xdata) … … 589 589 pkS = parmDict[pfx+'BkPksig;'+str(iD)] 590 590 pkG = parmDict[pfx+'BkPkgam;'+str(iD)] 591 shl = 0.002 592 Wd,fmin,fmax = getWidthsCW(pkP,pkS,pkG,shl) 591 if 'C' in dataType: 592 Wd,fmin,fmax = getWidthsCW(pkP,pkS,pkG,.002) 593 else: #'T'OF 594 Wd,fmin,fmax = getWidthsTOF(pkP,1.,1.,pkS,pkG) 593 595 iBeg = np.searchsorted(xdata,pkP-fmin) 594 596 iFin = np.searchsorted(xdata,pkP+fmax) 595 yb[iBeg:iFin] += pkI*getFCJVoigt3(pkP,pkS,pkG,shl,xdata[iBeg:iFin]) 597 lenX = len(xdata) 598 if not iBeg: 599 iFin = np.searchsorted(xdata,pkP+fmax) 600 elif iBeg == lenX: 601 iFin = iBeg 602 else: 603 iFin = np.searchsorted(xdata,pkP+fmax) 604 if 'C' in dataType: 605 yb[iBeg:iFin] += pkI*getFCJVoigt3(pkP,pkS,pkG,0.002,xdata[iBeg:iFin]) 606 else: #'T'OF 607 yb[iBeg:iFin] += pkI*getEpsVoigt(pkP,1.,1.,pkS,pkG,xdata[iBeg:iFin]) 596 608 iD += 1 597 609 except KeyError: … … 602 614 return yb 603 615 604 def getBackgroundDerv(hfx,parmDict,bakType, xdata):616 def getBackgroundDerv(hfx,parmDict,bakType,dataType,xdata): 605 617 'needs a doc string' 606 618 nBak = 0 … … 685 697 pkS = parmDict[hfx+'BkPksig;'+str(iD)] 686 698 pkG = parmDict[hfx+'BkPkgam;'+str(iD)] 687 shl = 0.002 688 Wd,fmin,fmax = getWidthsCW(pkP,pkS,pkG,shl) 699 if 'C' in dataType: 700 Wd,fmin,fmax = getWidthsCW(pkP,pkS,pkG,.002) 701 else: #'T'OF 702 Wd,fmin,fmax = getWidthsTOF(pkP,1.,1.,pkS,pkG) 689 703 iBeg = np.searchsorted(xdata,pkP-fmin) 690 704 iFin = np.searchsorted(xdata,pkP+fmax) 691 Df,dFdp,dFds,dFdg,dFdsh = getdFCJVoigt3(pkP,pkS,pkG,shl,xdata[iBeg:iFin]) 692 dydpk[4*iD][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFdp 693 dydpk[4*iD+1][iBeg:iFin] += 100.*cw[iBeg:iFin]*Df 694 dydpk[4*iD+2][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFds 695 dydpk[4*iD+3][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFdg 705 lenX = len(xdata) 706 if not iBeg: 707 iFin = np.searchsorted(xdata,pkP+fmax) 708 elif iBeg == lenX: 709 iFin = iBeg 710 else: 711 iFin = np.searchsorted(xdata,pkP+fmax) 712 if 'C' in dataType: 713 Df,dFdp,dFds,dFdg,x = getdFCJVoigt3(pkP,pkS,pkG,.002,xdata[iBeg:iFin]) 714 dydpk[4*iD][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFdp 715 dydpk[4*iD+1][iBeg:iFin] += 100.*cw[iBeg:iFin]*Df 716 dydpk[4*iD+2][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFds 717 dydpk[4*iD+3][iBeg:iFin] += 100.*cw[iBeg:iFin]*pkI*dFdg 718 else: #'T'OF 719 Df,dFdp,x,x,dFds,dFdg = getdEpsVoigt(pkP,1.,1.,pkS,pkG,xdata[iBeg:iFin]) 720 dydpk[4*iD][iBeg:iFin] += pkI*dFdp 721 dydpk[4*iD+1][iBeg:iFin] += Df 722 dydpk[4*iD+2][iBeg:iFin] += pkI*dFds 723 dydpk[4*iD+3][iBeg:iFin] += pkI*dFdg 696 724 iD += 1 697 725 except KeyError: … … 778 806 'needs a doc string' 779 807 780 yb = getBackground('',parmDict,bakType, xdata)808 yb = getBackground('',parmDict,bakType,dataType,xdata) 781 809 yc = np.zeros_like(yb) 782 810 cw = np.diff(xdata) … … 886 914 # needs to return np.array([dMdx1,dMdx2,...]) in same order as varylist = backVary,insVary,peakVary order 887 915 dMdv = np.zeros(shape=(len(varyList),len(xdata))) 888 dMdb,dMddb,dMdpk = getBackgroundDerv('',parmDict,bakType, xdata)916 dMdb,dMddb,dMdpk = getBackgroundDerv('',parmDict,bakType,dataType,xdata) 889 917 if 'Back:0' in varyList: #background derivs are in front if present 890 918 dMdv[0:len(dMdb)] = dMdb … … 898 926 for name in varyList: 899 927 if 'BkPk' in name: 900 parm,id = name.split(' :')928 parm,id = name.split(';') 901 929 ip = names.index(parm) 902 930 dMdv[varyList.index(name)] = dMdpk[4*int(id)+ip] … … 1117 1145 peaksList = [] 1118 1146 for i in range(Debye['nPeaks']): 1119 peaksNames = ['BkPkpos :'+str(i),'BkPkint:'+str(i),'BkPksig:'+str(i),'BkPkgam:'+str(i)]1147 peaksNames = ['BkPkpos;'+str(i),'BkPkint;'+str(i),'BkPksig;'+str(i),'BkPkgam;'+str(i)] 1120 1148 peaksDict.update(dict(zip(peaksNames,Debye['peaksList'][i][::2]))) 1121 1149 peaksList += zip(peaksNames,Debye['peaksList'][i][1::2]) … … 1238 1266 iDb = 0 1239 1267 while True: 1240 names = ['BkPkpos :','BkPkint:','BkPksig:','BkPkgam:']1268 names = ['BkPkpos;','BkPkint;','BkPksig;','BkPkgam;'] 1241 1269 try: 1242 1270 for i,name in enumerate(names): … … 1280 1308 parms = ['BkPkpos','BkPkint','BkPksig','BkPkgam'] 1281 1309 print 'Peaks in background coefficients' 1282 ptfmt = "%1 2.5f"1310 ptfmt = "%15.3f" 1283 1311 names = 'names :' 1284 1312 ptstr = 'values:' … … 1286 1314 for item in sigDict: 1287 1315 if 'BkPk' in item: 1288 names += '%1 2s'%(item)1316 names += '%15s'%(item) 1289 1317 sigstr += ptfmt%(sigDict[item]) 1290 parm,id = item.split(' :')1318 parm,id = item.split(';') 1291 1319 ip = parms.index(parm) 1292 1320 ptstr += ptfmt%(Background[1]['peaksList'][int(id)][2*ip]) … … 1504 1532 1505 1533 sigDict = dict(zip(varyList,sig)) 1506 yb[xBeg:xFin] = getBackground('',parmDict,bakType, x[xBeg:xFin])1534 yb[xBeg:xFin] = getBackground('',parmDict,bakType,dataType,x[xBeg:xFin]) 1507 1535 yc[xBeg:xFin] = getPeakProfile(dataType,parmDict,x[xBeg:xFin],varyList,bakType) 1508 1536 yd[xBeg:xFin] = y[xBeg:xFin]-yc[xBeg:xFin] … … 1615 1643 msg = 'test ' 1616 1644 gplot = plotter.add('FCJ-Voigt, 11BM').gca() 1617 gplot.plot(xdata,getBackground('',parmDict0,bakType, xdata))1645 gplot.plot(xdata,getBackground('',parmDict0,bakType,'PXC',xdata)) 1618 1646 gplot.plot(xdata,getPeakProfile(parmDict0,xdata,varyList,bakType)) 1619 1647 fplot = plotter.add('FCJ-Voigt, Ka1+2').gca() 1620 fplot.plot(xdata,getBackground('',parmDict1,bakType, xdata))1648 fplot.plot(xdata,getBackground('',parmDict1,bakType,'PXC',xdata)) 1621 1649 fplot.plot(xdata,getPeakProfile(parmDict1,xdata,varyList,bakType)) 1622 1650 -
TabularUnified trunk/GSASIIstrMain.py ¶
r1462 r1474 56 56 Ftol = Controls['min dM/M'] 57 57 Factor = Controls['shift factor'] 58 maxCyc = Controls['max cyc']59 58 if 'Jacobian' in Controls['deriv type']: 60 59 result = so.leastsq(G2stMth.errRefine,values,Dfun=G2stMth.dervRefine,full_output=True, … … 63 62 ncyc = int(result[2]['nfev']/2) 64 63 elif 'Hessian' in Controls['deriv type']: 64 maxCyc = Controls['max cyc'] 65 65 result = G2mth.HessianLSQ(G2stMth.errRefine,values,Hess=G2stMth.HessRefine,ftol=Ftol,maxcyc=maxCyc,Print=ifPrint, 66 66 args=([Histograms,Phases,restraintDict,rigidbodyDict],parmDict,varyList,calcControls,pawleyLookup,dlg)) -
TabularUnified trunk/GSASIIstrMath.py ¶
r1466 r1474 1597 1597 hfx = ':%d:'%(hId) 1598 1598 bakType = calcControls[hfx+'bakType'] 1599 yb = G2pwd.getBackground(hfx,parmDict,bakType, x)1599 yb = G2pwd.getBackground(hfx,parmDict,bakType,calcControls[hfx+'histType'],x) 1600 1600 yc = np.zeros_like(yb) 1601 1601 cw = np.diff(x) … … 1730 1730 bakType = calcControls[hfx+'bakType'] 1731 1731 dMdv = np.zeros(shape=(len(varylist),len(x))) 1732 dMdb,dMddb,dMdpk = G2pwd.getBackgroundDerv(hfx,parmDict,bakType, x)1732 dMdb,dMddb,dMdpk = G2pwd.getBackgroundDerv(hfx,parmDict,bakType,calcControls[hfx+'histType'],x) 1733 1733 if hfx+'Back:0' in varylist: # for now assume that Back:x vars to not appear in constraints 1734 1734 bBpos =varylist.index(hfx+'Back:0') … … 1781 1781 h,k,l = refl[:3] 1782 1782 Uniq = np.inner(refl[:3],SGMT) 1783 if 'T' in calcControls[hfx+'histType']: 1784 wave = refl[14] 1783 1785 dIdsh,dIdsp,dIdpola,dIdPO,dFdODF,dFdSA,dFdAb,dFdEx = GetIntensityDerv(refl,wave,Uniq,G,g,pfx,phfx,hfx,SGData,calcControls,parmDict) 1784 1786 if 'C' in calcControls[hfx+'histType']: #CW powder
Note: See TracChangeset
for help on using the changeset viewer.