Changeset 1998 for sphinxdocs/build/html/_modules/GSASIIpwd.html
- Timestamp:
- Oct 10, 2015 9:59:34 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sphinxdocs/build/html/_modules/GSASIIpwd.html
r1832 r1998 57 57 <span class="sd">'''</span> 58 58 <span class="c">########### SVN repository information ###################</span> 59 <span class="c"># $Date: 2015-0 3-23 16:21:36 -0500 (Mon, 23 Mar2015) $</span>60 <span class="c"># $Author: vondreele$</span>61 <span class="c"># $Revision: 1 759$</span>59 <span class="c"># $Date: 2015-06-26 15:50:52 -0500 (Fri, 26 Jun 2015) $</span> 60 <span class="c"># $Author: toby $</span> 61 <span class="c"># $Revision: 1911 $</span> 62 62 <span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/GSASIIpwd.py $</span> 63 <span class="c"># $Id: GSASIIpwd.py 1 759 2015-03-23 21:21:36Z vondreele$</span>63 <span class="c"># $Id: GSASIIpwd.py 1911 2015-06-26 20:50:52Z toby $</span> 64 64 <span class="c">########### SVN repository information ###################</span> 65 65 <span class="kn">import</span> <span class="nn">sys</span> … … 76 76 77 77 <span class="kn">import</span> <span class="nn">GSASIIpath</span> 78 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">"$Revision: 1 759$"</span><span class="p">)</span>78 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">"$Revision: 1911 $"</span><span class="p">)</span> 79 79 <span class="kn">import</span> <span class="nn">GSASIIlattice</span> <span class="kn">as</span> <span class="nn">G2lat</span> 80 80 <span class="kn">import</span> <span class="nn">GSASIIspc</span> <span class="kn">as</span> <span class="nn">G2spc</span> … … 320 320 <span class="n">MuR</span> <span class="o">=</span> <span class="n">Abs</span><span class="o">*</span><span class="n">data</span><span class="p">[</span><span class="s">'Diam'</span><span class="p">]</span><span class="o">/</span><span class="mf">20.0</span> 321 321 <span class="n">xydata</span><span class="p">[</span><span class="s">'IofQ'</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">/=</span> <span class="n">Absorb</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'Geometry'</span><span class="p">],</span><span class="n">MuR</span><span class="p">,</span><span class="n">Tth</span><span class="p">)</span> 322 <span class="n">xydata</span><span class="p">[</span><span class="s">'IofQ'</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">/=</span> <span class="n">Polarization</span><span class="p">(</span><span class="n">inst</span><span class="p">[</span><span class="s">'Polariz.'</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span><span class="n">Tth</span><span class="p">,</span><span class="n">Azm</span><span class="o">=</span><span class="n">inst</span><span class="p">[</span><span class="s">'Azimuth'</span><span class="p">][</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> 322 <span class="k">if</span> <span class="s">'X'</span> <span class="ow">in</span> <span class="n">inst</span><span class="p">[</span><span class="s">'Type'</span><span class="p">][</span><span class="mi">0</span><span class="p">]:</span> 323 <span class="n">xydata</span><span class="p">[</span><span class="s">'IofQ'</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">/=</span> <span class="n">Polarization</span><span class="p">(</span><span class="n">inst</span><span class="p">[</span><span class="s">'Polariz.'</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span><span class="n">Tth</span><span class="p">,</span><span class="n">Azm</span><span class="o">=</span><span class="n">inst</span><span class="p">[</span><span class="s">'Azimuth'</span><span class="p">][</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> 323 324 <span class="k">if</span> <span class="n">data</span><span class="p">[</span><span class="s">'DetType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'Image plate'</span><span class="p">:</span> 324 325 <span class="n">xydata</span><span class="p">[</span><span class="s">'IofQ'</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">*=</span> <span class="n">Oblique</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">'ObliqCoeff'</span><span class="p">],</span><span class="n">Tth</span><span class="p">)</span> … … 528 529 </div> 529 530 <div class="viewcode-block" id="getFWHM"><a class="viewcode-back" href="../GSASIIpwd.html#GSASIIpwd.getFWHM">[docs]</a><span class="k">def</span> <span class="nf">getFWHM</span><span class="p">(</span><span class="n">pos</span><span class="p">,</span><span class="n">Inst</span><span class="p">):</span> 530 <span class="s">' needs a doc string'</span>531 <span class="n">sig</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">Th</span><span class="p">,</span><span class="n">U</span><span class="p">,</span><span class="n">V</span><span class="p">,</span><span class="n">W</span><span class="p">:</span> <span class="mf">1.17741</span><span class="o">*</span><span class="n"> math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="n">U</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">Th</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">V</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">Th</span><span class="p">)</span><span class="o">+</span><span class="n">W</span><span class="p">))</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mf">180.</span>531 <span class="s">'1.17741*pi/180 = sqrt(8ln2)/(2pi/180)'</span> 532 <span class="n">sig</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">Th</span><span class="p">,</span><span class="n">U</span><span class="p">,</span><span class="n">V</span><span class="p">,</span><span class="n">W</span><span class="p">:</span> <span class="mf">1.17741</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="n">U</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">Th</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">V</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">Th</span><span class="p">)</span><span class="o">+</span><span class="n">W</span><span class="p">))</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mf">180.</span> 532 533 <span class="n">sigTOF</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">dsp</span><span class="p">,</span><span class="n">S0</span><span class="p">,</span><span class="n">S1</span><span class="p">,</span><span class="n">S2</span><span class="p">,</span><span class="n">Sq</span><span class="p">:</span> <span class="n">S0</span><span class="o">+</span><span class="n">S1</span><span class="o">*</span><span class="n">dsp</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">S2</span><span class="o">*</span><span class="n">dsp</span><span class="o">**</span><span class="mi">4</span><span class="o">+</span><span class="n">Sq</span><span class="o">/</span><span class="n">dsp</span><span class="o">**</span><span class="mi">2</span> 533 534 <span class="n">gam</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">Th</span><span class="p">,</span><span class="n">X</span><span class="p">,</span><span class="n">Y</span><span class="p">:</span> <span class="p">(</span><span class="n">X</span><span class="o">/</span><span class="n">cosd</span><span class="p">(</span><span class="n">Th</span><span class="p">)</span><span class="o">+</span><span class="n">Y</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">Th</span><span class="p">))</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mf">180.</span> … … 598 599 <span class="n">yb</span> <span class="o">+=</span> <span class="n">ybi</span> 599 600 <span class="n">sumBk</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">yb</span><span class="p">)</span> 600 <span class="k">elif</span> <span class="n">bakType</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'Q^2 power series'</span><span class="p">,</span><span class="s">'Q^-2 pow der series'</span><span class="p">]:</span>601 <span class="k">elif</span> <span class="n">bakType</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'Q^2 power series'</span><span class="p">,</span><span class="s">'Q^-2 power series'</span><span class="p">]:</span> 601 602 <span class="n">QT</span> <span class="o">=</span> <span class="mf">1.</span> 602 603 <span class="n">yb</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">ones_like</span><span class="p">(</span><span class="n">yb</span><span class="p">)</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">'Back;0'</span><span class="p">]</span> … … 718 719 <span class="k">elif</span> <span class="n">bakType</span> <span class="o">==</span> <span class="s">'cosine'</span><span class="p">:</span> 719 720 <span class="n">dydb</span><span class="p">[</span><span class="n">iBak</span><span class="p">]</span> <span class="o">=</span> <span class="n">npcosd</span><span class="p">(</span><span class="n">xdata</span><span class="o">*</span><span class="n">iBak</span><span class="p">)</span> 720 <span class="k">elif</span> <span class="n">bakType</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'Q^2 power series'</span><span class="p">,</span><span class="s">'Q^-2 pow der series'</span><span class="p">]:</span>721 <span class="k">elif</span> <span class="n">bakType</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'Q^2 power series'</span><span class="p">,</span><span class="s">'Q^-2 power series'</span><span class="p">]:</span> 721 722 <span class="n">QT</span> <span class="o">=</span> <span class="mf">1.</span> 722 723 <span class="n">dydb</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ones_like</span><span class="p">(</span><span class="n">xdata</span><span class="p">)</span> … … 1043 1044 <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">varyList</span><span class="p">:</span> 1044 1045 <span class="k">if</span> <span class="s">'Debye'</span> <span class="ow">in</span> <span class="n">name</span><span class="p">:</span> 1045 <span class="n">parm</span><span class="p">,</span><span class="nb">id</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">' :'</span><span class="p">)</span>1046 <span class="n">parm</span><span class="p">,</span><span class="nb">id</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">';'</span><span class="p">)</span> 1046 1047 <span class="n">ip</span> <span class="o">=</span> <span class="n">names</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">parm</span><span class="p">)</span> 1047 1048 <span class="n">dMdv</span><span class="p">[</span><span class="n">varyList</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">name</span><span class="p">)]</span> <span class="o">=</span> <span class="n">dMddb</span><span class="p">[</span><span class="mi">3</span><span class="o">*</span><span class="nb">int</span><span class="p">(</span><span class="nb">id</span><span class="p">)</span><span class="o">+</span><span class="n">ip</span><span class="p">]</span> … … 1254 1255 <span class="n">debyeList</span> <span class="o">=</span> <span class="p">[]</span> 1255 1256 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">Debye</span><span class="p">[</span><span class="s">'nDebye'</span><span class="p">]):</span> 1256 <span class="n">debyeNames</span> <span class="o">=</span> <span class="p">[</span><span class="s">'DebyeA :'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span><span class="s">'DebyeR:'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span><span class="s">'DebyeU:'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span>1257 <span class="n">debyeNames</span> <span class="o">=</span> <span class="p">[</span><span class="s">'DebyeA;'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span><span class="s">'DebyeR;'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span><span class="s">'DebyeU;'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span> 1257 1258 <span class="n">debyeDict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">debyeNames</span><span class="p">,</span><span class="n">Debye</span><span class="p">[</span><span class="s">'debyeTerms'</span><span class="p">][</span><span class="n">i</span><span class="p">][::</span><span class="mi">2</span><span class="p">])))</span> 1258 1259 <span class="n">debyeList</span> <span class="o">+=</span> <span class="nb">zip</span><span class="p">(</span><span class="n">debyeNames</span><span class="p">,</span><span class="n">Debye</span><span class="p">[</span><span class="s">'debyeTerms'</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">::</span><span class="mi">2</span><span class="p">])</span> … … 1369 1370 1370 1371 <div class="viewcode-block" id="DoPeakFit"><a class="viewcode-back" href="../GSASIIpwd.html#GSASIIpwd.DoPeakFit">[docs]</a><span class="k">def</span> <span class="nf">DoPeakFit</span><span class="p">(</span><span class="n">FitPgm</span><span class="p">,</span><span class="n">Peaks</span><span class="p">,</span><span class="n">Background</span><span class="p">,</span><span class="n">Limits</span><span class="p">,</span><span class="n">Inst</span><span class="p">,</span><span class="n">Inst2</span><span class="p">,</span><span class="n">data</span><span class="p">,</span><span class="n">prevVaryList</span><span class="o">=</span><span class="p">[],</span><span class="n">oneCycle</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span><span class="n">controls</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">dlg</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> 1371 <span class="s">'needs a doc string'</span> 1372 1372 <span class="sd">'''Called to perform a peak fit, refining the selected items in the peak</span> 1373 <span class="sd"> table as well as selected items in the background.</span> 1374 1375 <span class="sd"> :param str FitPgm: type of fit to perform. At present "LSQ" is the only</span> 1376 <span class="sd"> option that works</span> 1377 <span class="sd"> :param list Peaks: a list of peaks. Each peak entry is a list with 8 values:</span> 1378 <span class="sd"> four values followed by a refine flag where the values are: position, intensity,</span> 1379 <span class="sd"> sigma (Gaussian width) and gamma (Lorentzian width). From the Histogram/"Peak List"</span> 1380 <span class="sd"> tree entry, dict item "peaks"</span> 1381 <span class="sd"> :param list Background: describes the background. List with two items.</span> 1382 <span class="sd"> Item 0 specifies a background model and coefficients. Item 1 is a dict.</span> 1383 <span class="sd"> From the Histogram/Background tree entry.</span> 1384 <span class="sd"> :param list Limits: min and max x-value to use</span> 1385 <span class="sd"> :param dict Inst: Instrument parameters</span> 1386 <span class="sd"> :param dict Inst2: more Instrument parameters</span> 1387 <span class="sd"> :param numpy.array data: a 5xn array. data[0] is the x-values,</span> 1388 <span class="sd"> data[1] is the y-values, data[2] are weight values, data[3], [4] and [5] are</span> 1389 <span class="sd"> calc, background and difference intensities, respectively. </span> 1390 <span class="sd"> :param list prevVaryList: Used in sequential refinements to override the</span> 1391 <span class="sd"> variable list. Defaults as an empty list.</span> 1392 <span class="sd"> :param bool oneCycle: True if only one cycle of fitting should be performed</span> 1393 <span class="sd"> :param dict controls: a dict specifying two values, Ftol = controls['min dM/M']</span> 1394 <span class="sd"> and derivType = controls['deriv type']. If None default values are used. </span> 1395 <span class="sd"> :param wx.Dialog dlg: A dialog box that is updated with progress from the fit.</span> 1396 <span class="sd"> Defaults to None, which means no updates are done. </span> 1397 <span class="sd"> '''</span> 1373 1398 <span class="k">def</span> <span class="nf">GetBackgroundParms</span><span class="p">(</span><span class="n">parmList</span><span class="p">,</span><span class="n">Background</span><span class="p">):</span> 1374 1399 <span class="n">iBak</span> <span class="o">=</span> <span class="mi">0</span> … … 1382 1407 <span class="n">iDb</span> <span class="o">=</span> <span class="mi">0</span> 1383 1408 <span class="k">while</span> <span class="bp">True</span><span class="p">:</span> 1384 <span class="n">names</span> <span class="o">=</span> <span class="p">[</span><span class="s">'DebyeA :'</span><span class="p">,</span><span class="s">'DebyeR:'</span><span class="p">,</span><span class="s">'DebyeU:'</span><span class="p">]</span>1409 <span class="n">names</span> <span class="o">=</span> <span class="p">[</span><span class="s">'DebyeA;'</span><span class="p">,</span><span class="s">'DebyeR;'</span><span class="p">,</span><span class="s">'DebyeU;'</span><span class="p">]</span> 1385 1410 <span class="k">try</span><span class="p">:</span> 1386 1411 <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">names</span><span class="p">):</span> … … 1402 1427 1403 1428 <span class="k">def</span> <span class="nf">BackgroundPrint</span><span class="p">(</span><span class="n">Background</span><span class="p">,</span><span class="n">sigDict</span><span class="p">):</span> 1404 <span class="k"> if</span> <span class="n">Background</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]:</span>1405 <span class="k">print</span> <span class="s">'Background coefficients for'</span><span class="p">,</span><span class="n">Background</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span><span class="s">'function'</span>1406 <span class="n">ptfmt</span> <span class="o">=</span> <span class="s">"</span><span class="si">%12.5f</span><span class="s">"</span>1407 <span class="n">ptstr</span> <span class="o">=</span> <span class="s">'values:'</span>1408 <span class="n">sigstr</span> <span class="o">=</span> <span class="s">'esds :'</span>1409 <span class=" k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">back</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Background</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">3</span><span class="p">:]):</span>1410 <span class="n">ptstr</span> <span class="o">+=</span> <span class="n">ptfmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">back</span><span class="p">)</span>1429 <span class="k">print</span> <span class="s">'Background coefficients for'</span><span class="p">,</span><span class="n">Background</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span><span class="s">'function'</span> 1430 <span class="n">ptfmt</span> <span class="o">=</span> <span class="s">"</span><span class="si">%12.5f</span><span class="s">"</span> 1431 <span class="n">ptstr</span> <span class="o">=</span> <span class="s">'value: '</span> 1432 <span class="n">sigstr</span> <span class="o">=</span> <span class="s">'esd : '</span> 1433 <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">back</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Background</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">3</span><span class="p">:]):</span> 1434 <span class="n">ptstr</span> <span class="o">+=</span> <span class="n">ptfmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">back</span><span class="p">)</span> 1435 <span class="k">if</span> <span class="n">Background</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]:</span> 1411 1436 <span class="n">sigstr</span> <span class="o">+=</span> <span class="n">ptfmt</span> <span class="o">%</span> <span class="p">(</span><span class="n">sigDict</span><span class="p">[</span><span class="s">'Back;'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)])</span> 1437 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">ptstr</span><span class="p">)</span> <span class="o">></span> <span class="mi">75</span><span class="p">:</span> 1438 <span class="k">print</span> <span class="n">ptstr</span> 1439 <span class="k">if</span> <span class="n">Background</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]:</span> <span class="k">print</span> <span class="n">sigstr</span> 1440 <span class="n">ptstr</span> <span class="o">=</span> <span class="s">'value: '</span> 1441 <span class="n">sigstr</span> <span class="o">=</span> <span class="s">'esd : '</span> 1442 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">ptstr</span><span class="p">)</span> <span class="o">></span> <span class="mi">8</span><span class="p">:</span> 1412 1443 <span class="k">print</span> <span class="n">ptstr</span> 1413 <span class="k">print</span> <span class="n">sigstr</span> 1414 <span class="k">else</span><span class="p">:</span> 1415 <span class="k">print</span> <span class="s">'Background not refined'</span> 1444 <span class="k">if</span> <span class="n">Background</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]:</span> <span class="k">print</span> <span class="n">sigstr</span> 1445 1416 1446 <span class="k">if</span> <span class="n">Background</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="s">'nDebye'</span><span class="p">]:</span> 1417 <span class="n">parms</span> <span class="o">=</span> <span class="p">[</span><span class="s">'DebyeA '</span><span class="p">,</span><span class="s">'DebyeR'</span><span class="p">,</span><span class="s">'DebyeU'</span><span class="p">]</span>1447 <span class="n">parms</span> <span class="o">=</span> <span class="p">[</span><span class="s">'DebyeA;'</span><span class="p">,</span><span class="s">'DebyeR;'</span><span class="p">,</span><span class="s">'DebyeU;'</span><span class="p">]</span> 1418 1448 <span class="k">print</span> <span class="s">'Debye diffuse scattering coefficients'</span> 1419 1449 <span class="n">ptfmt</span> <span class="o">=</span> <span class="s">"</span><span class="si">%12.5f</span><span class="s">"</span> 1420 <span class="n">names</span> <span class="o">=</span> <span class="s">'names :'</span> 1421 <span class="n">ptstr</span> <span class="o">=</span> <span class="s">'values:'</span> 1422 <span class="n">sigstr</span> <span class="o">=</span> <span class="s">'esds :'</span> 1423 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">sigDict</span><span class="p">:</span> 1424 <span class="k">if</span> <span class="s">'Debye'</span> <span class="ow">in</span> <span class="n">item</span><span class="p">:</span> 1425 <span class="n">names</span> <span class="o">+=</span> <span class="s">'</span><span class="si">%12s</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 1426 <span class="n">sigstr</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="o">%</span><span class="p">(</span><span class="n">sigDict</span><span class="p">[</span><span class="n">item</span><span class="p">])</span> 1427 <span class="n">parm</span><span class="p">,</span><span class="nb">id</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">':'</span><span class="p">)</span> 1428 <span class="n">ip</span> <span class="o">=</span> <span class="n">parms</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">parm</span><span class="p">)</span> 1429 <span class="n">ptstr</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="o">%</span><span class="p">(</span><span class="n">Background</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="s">'debyeTerms'</span><span class="p">][</span><span class="nb">int</span><span class="p">(</span><span class="nb">id</span><span class="p">)][</span><span class="mi">2</span><span class="o">*</span><span class="n">ip</span><span class="p">])</span> 1430 <span class="k">print</span> <span class="n">names</span> 1431 <span class="k">print</span> <span class="n">ptstr</span> 1432 <span class="k">print</span> <span class="n">sigstr</span> 1450 <span class="k">print</span> <span class="s">' term DebyeA esd DebyeR esd DebyeU esd'</span> 1451 <span class="k">for</span> <span class="n">term</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">Background</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="s">'nDebye'</span><span class="p">]):</span> 1452 <span class="n">line</span> <span class="o">=</span> <span class="s">' term </span><span class="si">%d</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">term</span><span class="p">)</span> 1453 <span class="k">for</span> <span class="n">ip</span><span class="p">,</span><span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">parms</span><span class="p">):</span> 1454 <span class="n">line</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="o">%</span><span class="p">(</span><span class="n">Background</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="s">'debyeTerms'</span><span class="p">][</span><span class="n">term</span><span class="p">][</span><span class="mi">2</span><span class="o">*</span><span class="n">ip</span><span class="p">])</span> 1455 <span class="k">if</span> <span class="n">name</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">term</span><span class="p">)</span> <span class="ow">in</span> <span class="n">sigDict</span><span class="p">:</span> 1456 <span class="n">line</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="o">%</span><span class="p">(</span><span class="n">sigDict</span><span class="p">[</span><span class="n">name</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">term</span><span class="p">)])</span> 1457 <span class="k">print</span> <span class="n">line</span> 1433 1458 <span class="k">if</span> <span class="n">Background</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="s">'nPeaks'</span><span class="p">]:</span> 1434 <span class="n">parms</span> <span class="o">=</span> <span class="p">[</span><span class="s">'BkPkpos'</span><span class="p">,</span><span class="s">'BkPkint'</span><span class="p">,</span><span class="s">'BkPksig'</span><span class="p">,</span><span class="s">'BkPkgam'</span><span class="p">]</span> 1435 <span class="k">print</span> <span class="s">'Peaks in background coefficients'</span> 1459 <span class="k">print</span> <span class="s">'Coefficients for Background Peaks'</span> 1436 1460 <span class="n">ptfmt</span> <span class="o">=</span> <span class="s">"</span><span class="si">%15.3f</span><span class="s">"</span> 1437 <span class="n">names</span> <span class="o">=</span> <span class="s">'names :'</span> 1438 <span class="n">ptstr</span> <span class="o">=</span> <span class="s">'values:'</span> 1439 <span class="n">sigstr</span> <span class="o">=</span> <span class="s">'esds :'</span> 1440 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">sigDict</span><span class="p">:</span> 1441 <span class="k">if</span> <span class="s">'BkPk'</span> <span class="ow">in</span> <span class="n">item</span><span class="p">:</span> 1442 <span class="n">names</span> <span class="o">+=</span> <span class="s">'</span><span class="si">%15s</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> 1443 <span class="n">sigstr</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="o">%</span><span class="p">(</span><span class="n">sigDict</span><span class="p">[</span><span class="n">item</span><span class="p">])</span> 1444 <span class="n">parm</span><span class="p">,</span><span class="nb">id</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">';'</span><span class="p">)</span> 1445 <span class="n">ip</span> <span class="o">=</span> <span class="n">parms</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">parm</span><span class="p">)</span> 1446 <span class="n">ptstr</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="o">%</span><span class="p">(</span><span class="n">Background</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="s">'peaksList'</span><span class="p">][</span><span class="nb">int</span><span class="p">(</span><span class="nb">id</span><span class="p">)][</span><span class="mi">2</span><span class="o">*</span><span class="n">ip</span><span class="p">])</span> 1447 <span class="k">print</span> <span class="n">names</span> 1448 <span class="k">print</span> <span class="n">ptstr</span> 1449 <span class="k">print</span> <span class="n">sigstr</span> 1461 <span class="k">for</span> <span class="n">j</span><span class="p">,</span><span class="n">pl</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Background</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="s">'peaksList'</span><span class="p">]):</span> 1462 <span class="n">names</span> <span class="o">=</span> <span class="s">'peak </span><span class="si">%3d</span><span class="s">:'</span><span class="o">%</span><span class="p">(</span><span class="n">j</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> 1463 <span class="n">ptstr</span> <span class="o">=</span> <span class="s">'values :'</span> 1464 <span class="n">sigstr</span> <span class="o">=</span> <span class="s">'esds :'</span> 1465 <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">lbl</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">([</span><span class="s">'BkPkpos'</span><span class="p">,</span><span class="s">'BkPkint'</span><span class="p">,</span><span class="s">'BkPksig'</span><span class="p">,</span><span class="s">'BkPkgam'</span><span class="p">]):</span> 1466 <span class="n">val</span> <span class="o">=</span> <span class="n">pl</span><span class="p">[</span><span class="mi">2</span><span class="o">*</span><span class="n">i</span><span class="p">]</span> 1467 <span class="n">prm</span> <span class="o">=</span> <span class="n">lbl</span><span class="o">+</span><span class="s">";"</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">j</span><span class="p">)</span> 1468 <span class="n">names</span> <span class="o">+=</span> <span class="s">'</span><span class="si">%15s</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">prm</span><span class="p">)</span> 1469 <span class="n">ptstr</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="o">%</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> 1470 <span class="k">if</span> <span class="n">prm</span> <span class="ow">in</span> <span class="n">sigDict</span><span class="p">:</span> 1471 <span class="n">sigstr</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="o">%</span><span class="p">(</span><span class="n">sigDict</span><span class="p">[</span><span class="n">prm</span><span class="p">])</span> 1472 <span class="k">else</span><span class="p">:</span> 1473 <span class="n">sigstr</span> <span class="o">+=</span> <span class="s">" "</span><span class="o">*</span><span class="mi">15</span> 1474 <span class="k">print</span> <span class="n">names</span> 1475 <span class="k">print</span> <span class="n">ptstr</span> 1476 <span class="k">print</span> <span class="n">sigstr</span> 1450 1477 1451 1478 <span class="k">def</span> <span class="nf">SetInstParms</span><span class="p">(</span><span class="n">Inst</span><span class="p">):</span> … … 1564 1591 <span class="n">head</span> <span class="o">=</span> <span class="mi">13</span><span class="o">*</span><span class="s">' '</span> 1565 1592 <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span> 1566 <span class="n">head</span> <span class="o">+=</span> <span class="n">name</span><span class="o">.</span><span class="n">center</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="o">+</span><span class="s">'esd'</span><span class="o">.</span><span class="n">center</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> 1593 <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'alp'</span><span class="p">,</span><span class="s">'bet'</span><span class="p">]:</span> 1594 <span class="n">head</span> <span class="o">+=</span> <span class="n">name</span><span class="o">.</span><span class="n">center</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span><span class="o">+</span><span class="s">'esd'</span><span class="o">.</span><span class="n">center</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span> 1595 <span class="k">else</span><span class="p">:</span> 1596 <span class="n">head</span> <span class="o">+=</span> <span class="n">name</span><span class="o">.</span><span class="n">center</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="o">+</span><span class="s">'esd'</span><span class="o">.</span><span class="n">center</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> 1567 1597 <span class="k">print</span> <span class="n">head</span> 1568 1598 <span class="k">if</span> <span class="s">'C'</span> <span class="ow">in</span> <span class="n">dataType</span><span class="p">:</span> 1569 1599 <span class="n">ptfmt</span> <span class="o">=</span> <span class="p">{</span><span class="s">'pos'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.5f</span><span class="s">"</span><span class="p">,</span><span class="s">'int'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.1f</span><span class="s">"</span><span class="p">,</span><span class="s">'sig'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.3f</span><span class="s">"</span><span class="p">,</span><span class="s">'gam'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.3f</span><span class="s">"</span><span class="p">}</span> 1570 1600 <span class="k">else</span><span class="p">:</span> 1571 <span class="n">ptfmt</span> <span class="o">=</span> <span class="p">{</span><span class="s">'pos'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.2f</span><span class="s">"</span><span class="p">,</span><span class="s">'int'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.4f</span><span class="s">"</span><span class="p">,</span><span class="s">'alp'</span><span class="p">:</span><span class="s">"</span><span class="si">% 10.3f</span><span class="s">"</span><span class="p">,</span><span class="s">'bet'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.5f</span><span class="s">"</span><span class="p">,</span><span class="s">'sig'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.3f</span><span class="s">"</span><span class="p">,</span><span class="s">'gam'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.3f</span><span class="s">"</span><span class="p">}</span>1601 <span class="n">ptfmt</span> <span class="o">=</span> <span class="p">{</span><span class="s">'pos'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.2f</span><span class="s">"</span><span class="p">,</span><span class="s">'int'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.4f</span><span class="s">"</span><span class="p">,</span><span class="s">'alp'</span><span class="p">:</span><span class="s">"</span><span class="si">%8.3f</span><span class="s">"</span><span class="p">,</span><span class="s">'bet'</span><span class="p">:</span><span class="s">"</span><span class="si">%8.5f</span><span class="s">"</span><span class="p">,</span><span class="s">'sig'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.3f</span><span class="s">"</span><span class="p">,</span><span class="s">'gam'</span><span class="p">:</span><span class="s">"</span><span class="si">%10.3f</span><span class="s">"</span><span class="p">}</span> 1572 1602 <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">peak</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Peaks</span><span class="p">):</span> 1573 1603 <span class="n">ptstr</span> <span class="o">=</span> <span class="s">':'</span> … … 1577 1607 <span class="n">ptstr</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">%</span> <span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">parName</span><span class="p">])</span> 1578 1608 <span class="k">if</span> <span class="n">parName</span> <span class="ow">in</span> <span class="n">varyList</span><span class="p">:</span> 1579 <span class="c"># ptstr += G2IO.ValEsd(parmDict[parName],sigDict[parName])</span>1580 1609 <span class="n">ptstr</span> <span class="o">+=</span> <span class="n">ptfmt</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">%</span> <span class="p">(</span><span class="n">sigDict</span><span class="p">[</span><span class="n">parName</span><span class="p">])</span> 1581 1610 <span class="k">else</span><span class="p">:</span> 1582 <span class="c"># ptstr += G2IO.ValEsd(parmDict[parName],0.0)</span> 1583 <span class="n">ptstr</span> <span class="o">+=</span> <span class="mi">10</span><span class="o">*</span><span class="s">' '</span> 1611 <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'alp'</span><span class="p">,</span><span class="s">'bet'</span><span class="p">]:</span> 1612 <span class="n">ptstr</span> <span class="o">+=</span> <span class="mi">8</span><span class="o">*</span><span class="s">' '</span> 1613 <span class="k">else</span><span class="p">:</span> 1614 <span class="n">ptstr</span> <span class="o">+=</span> <span class="mi">10</span><span class="o">*</span><span class="s">' '</span> 1584 1615 <span class="k">print</span> <span class="s">'</span><span class="si">%s</span><span class="s">'</span><span class="o">%</span><span class="p">((</span><span class="s">'Peak'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span><span class="o">.</span><span class="n">center</span><span class="p">(</span><span class="mi">8</span><span class="p">)),</span><span class="n">ptstr</span> 1585 1616 … … 1588 1619 <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">weights</span><span class="p">)</span><span class="o">*</span><span class="n">getPeakProfileDerv</span><span class="p">(</span><span class="n">dataType</span><span class="p">,</span><span class="n">parmdict</span><span class="p">,</span><span class="n">xdata</span><span class="p">,</span><span class="n">varylist</span><span class="p">,</span><span class="n">bakType</span><span class="p">)</span> 1589 1620 1590 <span class="k">def</span> <span class="nf">errPeakProfile</span><span class="p">(</span><span class="n">values</span><span class="p">,</span><span class="n">xdata</span><span class="p">,</span><span class="n">ydata</span><span class="p">,</span> 1621 <span class="k">def</span> <span class="nf">errPeakProfile</span><span class="p">(</span><span class="n">values</span><span class="p">,</span><span class="n">xdata</span><span class="p">,</span><span class="n">ydata</span><span class="p">,</span><span class="n">weights</span><span class="p">,</span><span class="n">dataType</span><span class="p">,</span><span class="n">parmdict</span><span class="p">,</span><span class="n">varylist</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="n">dlg</span><span class="p">):</span> 1591 1622 <span class="n">parmdict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">varylist</span><span class="p">,</span><span class="n">values</span><span class="p">))</span> 1592 1623 <span class="n">M</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">weights</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">getPeakProfile</span><span class="p">(</span><span class="n">dataType</span><span class="p">,</span><span class="n">parmdict</span><span class="p">,</span><span class="n">xdata</span><span class="p">,</span><span class="n">varylist</span><span class="p">,</span><span class="n">bakType</span><span class="p">)</span><span class="o">-</span><span class="n">ydata</span><span class="p">)</span> … … 1634 1665 <span class="k">try</span><span class="p">:</span> 1635 1666 <span class="n">result</span> <span class="o">=</span> <span class="n">so</span><span class="o">.</span><span class="n">leastsq</span><span class="p">(</span><span class="n">errPeakProfile</span><span class="p">,</span><span class="n">values</span><span class="p">,</span><span class="n">Dfun</span><span class="o">=</span><span class="n">devPeakProfile</span><span class="p">,</span><span class="n">full_output</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span><span class="n">ftol</span><span class="o">=</span><span class="n">Ftol</span><span class="p">,</span><span class="n">col_deriv</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> 1636 1667 <span class="n">args</span><span class="o">=</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">xBeg</span><span class="p">:</span><span class="n">xFin</span><span class="p">],</span><span class="n">y</span><span class="p">[</span><span class="n">xBeg</span><span class="p">:</span><span class="n">xFin</span><span class="p">],</span><span class="n">w</span><span class="p">[</span><span class="n">xBeg</span><span class="p">:</span><span class="n">xFin</span><span class="p">],</span><span class="n">dataType</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">varyList</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="n">dlg</span><span class="p">))</span> 1637 1668 <span class="n">ncyc</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">result</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="s">'nfev'</span><span class="p">]</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> 1638 1669 <span class="k">finally</span><span class="p">:</span> 1639 <span class=" n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>1670 <span class="k">if</span> <span class="n">dlg</span><span class="p">:</span> <span class="n">dlg</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span> 1640 1671 <span class="n">runtime</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span><span class="o">-</span><span class="n">begin</span> 1641 1672 <span class="n">chisq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">result</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="s">'fvec'</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> … … 1644 1675 <span class="n">Rvals</span><span class="p">[</span><span class="s">'GOF'</span><span class="p">]</span> <span class="o">=</span> <span class="n">chisq</span><span class="o">/</span><span class="p">(</span><span class="n">xFin</span><span class="o">-</span><span class="n">xBeg</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">varyList</span><span class="p">))</span> <span class="c">#reduced chi^2</span> 1645 1676 <span class="k">print</span> <span class="s">'Number of function calls:'</span><span class="p">,</span><span class="n">result</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="s">'nfev'</span><span class="p">],</span><span class="s">' Number of observations: '</span><span class="p">,</span><span class="n">xFin</span><span class="o">-</span><span class="n">xBeg</span><span class="p">,</span><span class="s">' Number of parameters: '</span><span class="p">,</span><span class="nb">len</span><span class="p">(</span><span class="n">varyList</span><span class="p">)</span> 1646 <span class="k">print</span> <span class="s">'fitpeak time = </span><span class="si">%8.3f</span><span class="s">s, </span><span class="si">%8.3f</span><span class="s">s/cycle'</span><span class="o">%</span><span class="p">(</span><span class="n">runtime</span><span class="p">,</span><span class="n">runtime</span><span class="o">/</span><span class="n">ncyc</span><span class="p">)</span> 1677 <span class="k">if</span> <span class="n">ncyc</span><span class="p">:</span> 1678 <span class="k">print</span> <span class="s">'fitpeak time = </span><span class="si">%8.3f</span><span class="s">s, </span><span class="si">%8.3f</span><span class="s">s/cycle'</span><span class="o">%</span><span class="p">(</span><span class="n">runtime</span><span class="p">,</span><span class="n">runtime</span><span class="o">/</span><span class="n">ncyc</span><span class="p">)</span> 1647 1679 <span class="k">print</span> <span class="s">'Rwp = </span><span class="si">%7.2f%%</span><span class="s">, chi**2 = </span><span class="si">%12.6g</span><span class="s">, reduced chi**2 = </span><span class="si">%6.2f</span><span class="s">'</span><span class="o">%</span><span class="p">(</span><span class="n">Rvals</span><span class="p">[</span><span class="s">'Rwp'</span><span class="p">],</span><span class="n">chisq</span><span class="p">,</span><span class="n">Rvals</span><span class="p">[</span><span class="s">'GOF'</span><span class="p">])</span> 1680 <span class="n">sig</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="nb">len</span><span class="p">(</span><span class="n">varyList</span><span class="p">)</span> 1681 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">varyList</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> <span class="k">break</span> <span class="c"># if nothing was refined</span> 1648 1682 <span class="k">try</span><span class="p">:</span> 1649 1683 <span class="n">sig</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="n">result</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="o">*</span><span class="n">Rvals</span><span class="p">[</span><span class="s">'GOF'</span><span class="p">])</span> … … 1660 1694 <span class="k">del</span><span class="p">(</span><span class="n">varyList</span><span class="p">[</span><span class="n">ipvt</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> 1661 1695 <span class="k">break</span> 1696 <span class="k">else</span><span class="p">:</span> <span class="c"># nothing removed</span> 1697 <span class="k">break</span> 1662 1698 <span class="k">elif</span> <span class="n">FitPgm</span> <span class="o">==</span> <span class="s">'BFGS'</span><span class="p">:</span> 1663 1699 <span class="k">print</span> <span class="s">'Other program here'</span> … … 1669 1705 <span class="n">yd</span><span class="p">[</span><span class="n">xBeg</span><span class="p">:</span><span class="n">xFin</span><span class="p">]</span> <span class="o">=</span> <span class="n">y</span><span class="p">[</span><span class="n">xBeg</span><span class="p">:</span><span class="n">xFin</span><span class="p">]</span><span class="o">-</span><span class="n">yc</span><span class="p">[</span><span class="n">xBeg</span><span class="p">:</span><span class="n">xFin</span><span class="p">]</span> 1670 1706 <span class="n">GetBackgroundParms</span><span class="p">(</span><span class="n">parmDict</span><span class="p">,</span><span class="n">Background</span><span class="p">)</span> 1671 <span class=" n">BackgroundPrint</span><span class="p">(</span><span class="n">Background</span><span class="p">,</span><span class="n">sigDict</span><span class="p">)</span>1707 <span class="k">if</span> <span class="n">bakVary</span><span class="p">:</span> <span class="n">BackgroundPrint</span><span class="p">(</span><span class="n">Background</span><span class="p">,</span><span class="n">sigDict</span><span class="p">)</span> 1672 1708 <span class="n">GetInstParms</span><span class="p">(</span><span class="n">parmDict</span><span class="p">,</span><span class="n">Inst</span><span class="p">,</span><span class="n">varyList</span><span class="p">,</span><span class="n">Peaks</span><span class="p">)</span> 1673 <span class=" n">InstPrint</span><span class="p">(</span><span class="n">Inst</span><span class="p">,</span><span class="n">sigDict</span><span class="p">)</span>1709 <span class="k">if</span> <span class="n">insVary</span><span class="p">:</span> <span class="n">InstPrint</span><span class="p">(</span><span class="n">Inst</span><span class="p">,</span><span class="n">sigDict</span><span class="p">)</span> 1674 1710 <span class="n">GetPeaksParms</span><span class="p">(</span><span class="n">Inst</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">Peaks</span><span class="p">,</span><span class="n">varyList</span><span class="p">)</span> 1675 <span class=" n">PeaksPrint</span><span class="p">(</span><span class="n">dataType</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">sigDict</span><span class="p">,</span><span class="n">varyList</span><span class="p">)</span>1711 <span class="k">if</span> <span class="n">peakVary</span><span class="p">:</span> <span class="n">PeaksPrint</span><span class="p">(</span><span class="n">dataType</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">sigDict</span><span class="p">,</span><span class="n">varyList</span><span class="p">)</span> 1676 1712 <span class="k">return</span> <span class="n">sigDict</span><span class="p">,</span><span class="n">result</span><span class="p">,</span><span class="n">sig</span><span class="p">,</span><span class="n">Rvals</span><span class="p">,</span><span class="n">varyList</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">fullvaryList</span><span class="p">,</span><span class="n">badVary</span> 1677 1713 </div>
Note: See TracChangeset
for help on using the changeset viewer.