Changeset 1709 for sphinxdocs/build/html/_modules/GSASIIpwd.html
- Timestamp:
- Mar 14, 2015 5:35:03 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sphinxdocs/build/html/_modules/GSASIIpwd.html
r1513 r1709 57 57 <span class="sd">'''</span> 58 58 <span class="c">########### SVN repository information ###################</span> 59 <span class="c"># $Date: 201 4-09-14 19:48:39 -0500 (Sun, 14 Sep 2014) $</span>59 <span class="c"># $Date: 2015-02-28 09:16:41 -0600 (Sat, 28 Feb 2015) $</span> 60 60 <span class="c"># $Author: vondreele $</span> 61 <span class="c"># $Revision: 1 496$</span>61 <span class="c"># $Revision: 1682 $</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 496 2014-09-15 00:48:39Z vondreele $</span>63 <span class="c"># $Id: GSASIIpwd.py 1682 2015-02-28 15:16:41Z vondreele $</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 496$"</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: 1682 $"</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> … … 575 575 <span class="n">cw</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">xdata</span><span class="p">)</span> 576 576 <span class="n">cw</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cw</span><span class="p">,</span><span class="n">cw</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> 577 <span class="n">sumBk</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">,</span><span class="mi">0</span><span class="p">]</span> 577 578 <span class="k">while</span> <span class="bp">True</span><span class="p">:</span> 578 579 <span class="n">key</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">+</span><span class="s">'Back;'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">nBak</span><span class="p">)</span> … … 581 582 <span class="k">else</span><span class="p">:</span> 582 583 <span class="k">break</span> 584 <span class="c">#empirical functions</span> 583 585 <span class="k">if</span> <span class="n">bakType</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'chebyschev'</span><span class="p">,</span><span class="s">'cosine'</span><span class="p">]:</span> 584 586 <span class="n">dt</span> <span class="o">=</span> <span class="n">xdata</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">xdata</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> … … 586 588 <span class="n">key</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">+</span><span class="s">'Back;'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">iBak</span><span class="p">)</span> 587 589 <span class="k">if</span> <span class="n">bakType</span> <span class="o">==</span> <span class="s">'chebyschev'</span><span class="p">:</span> 588 <span class="n">yb </span> <span class="o">+=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">*</span><span class="p">(</span><span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">xdata</span><span class="o">-</span><span class="n">xdata</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">/</span><span class="n">dt</span><span class="o">-</span><span class="mf">1.</span><span class="p">)</span><span class="o">**</span><span class="n">iBak</span>590 <span class="n">ybi</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">*</span><span class="p">(</span><span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">xdata</span><span class="o">-</span><span class="n">xdata</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">/</span><span class="n">dt</span><span class="o">-</span><span class="mf">1.</span><span class="p">)</span><span class="o">**</span><span class="n">iBak</span> 589 591 <span class="k">elif</span> <span class="n">bakType</span> <span class="o">==</span> <span class="s">'cosine'</span><span class="p">:</span> 590 <span class="n">yb</span> <span class="o">+=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">key</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> 592 <span class="n">ybi</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">key</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> 593 <span class="n">yb</span> <span class="o">+=</span> <span class="n">ybi</span> 594 <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">ybi</span><span class="p">)</span> 591 595 <span class="k">elif</span> <span class="n">bakType</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'lin interpolate'</span><span class="p">,</span><span class="s">'inv interpolate'</span><span class="p">,</span><span class="s">'log interpolate'</span><span class="p">,]:</span> 592 596 <span class="k">if</span> <span class="n">nBak</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> … … 611 615 <span class="n">bakInt</span> <span class="o">=</span> <span class="n">si</span><span class="o">.</span><span class="n">interp1d</span><span class="p">(</span><span class="n">bakPos</span><span class="p">,</span><span class="n">bakVals</span><span class="p">,</span><span class="s">'linear'</span><span class="p">)</span> 612 616 <span class="n">yb</span> <span class="o">=</span> <span class="n">bakInt</span><span class="p">(</span><span class="n">xdata</span><span class="p">)</span> 617 <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> 618 <span class="c">#Debye function </span> 613 619 <span class="k">if</span> <span class="n">pfx</span><span class="o">+</span><span class="s">'difC'</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">:</span> 614 620 <span class="n">ff</span> <span class="o">=</span> <span class="mf">1.</span> … … 628 634 <span class="n">dbR</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">'DebyeR;'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">iD</span><span class="p">)]</span> 629 635 <span class="n">dbU</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">'DebyeU;'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">iD</span><span class="p">)]</span> 630 <span class="n">yb</span> <span class="o">+=</span> <span class="n">ff</span><span class="o">*</span><span class="n">dbA</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">q</span><span class="o">*</span><span class="n">dbR</span><span class="p">)</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">dbU</span><span class="o">*</span><span class="n">q</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">q</span><span class="o">*</span><span class="n">dbR</span><span class="p">)</span> 636 <span class="n">ybi</span> <span class="o">=</span> <span class="n">ff</span><span class="o">*</span><span class="n">dbA</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">q</span><span class="o">*</span><span class="n">dbR</span><span class="p">)</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">dbU</span><span class="o">*</span><span class="n">q</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">q</span><span class="o">*</span><span class="n">dbR</span><span class="p">)</span> 637 <span class="n">yb</span> <span class="o">+=</span> <span class="n">ybi</span> 638 <span class="n">sumBk</span><span class="p">[</span><span class="mi">1</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">ybi</span><span class="p">)</span> 631 639 <span class="n">iD</span> <span class="o">+=</span> <span class="mi">1</span> 632 640 <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> 633 641 <span class="k">break</span> 642 <span class="c">#peaks</span> 634 643 <span class="n">iD</span> <span class="o">=</span> <span class="mi">0</span> 635 644 <span class="k">while</span> <span class="bp">True</span><span class="p">:</span> … … 653 662 <span class="n">iFin</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">xdata</span><span class="p">,</span><span class="n">pkP</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span> 654 663 <span class="k">if</span> <span class="s">'C'</span> <span class="ow">in</span> <span class="n">dataType</span><span class="p">:</span> 655 <span class="n">yb</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]</span> <span class="o">+=</span> <span class="n">pkI</span><span class="o">*</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">pkP</span><span class="p">,</span><span class="n">pkS</span><span class="p">,</span><span class="n">pkG</span><span class="p">,</span><span class="mf">0.002</span><span class="p">,</span><span class="n">xdata</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">])</span> 664 <span class="n">ybi</span> <span class="o">=</span> <span class="n">pkI</span><span class="o">*</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">pkP</span><span class="p">,</span><span class="n">pkS</span><span class="p">,</span><span class="n">pkG</span><span class="p">,</span><span class="mf">0.002</span><span class="p">,</span><span class="n">xdata</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">])</span> 665 <span class="n">yb</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]</span> <span class="o">+=</span> <span class="n">ybi</span> 656 666 <span class="k">else</span><span class="p">:</span> <span class="c">#'T'OF</span> 657 <span class="n">yb</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]</span> <span class="o">+=</span> <span class="n">pkI</span><span class="o">*</span><span class="n">getEpsVoigt</span><span class="p">(</span><span class="n">pkP</span><span class="p">,</span><span class="mf">1.</span><span class="p">,</span><span class="mf">1.</span><span class="p">,</span><span class="n">pkS</span><span class="p">,</span><span class="n">pkG</span><span class="p">,</span><span class="n">xdata</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">])</span> 667 <span class="n">ybi</span> <span class="o">=</span> <span class="n">pkI</span><span class="o">*</span><span class="n">getEpsVoigt</span><span class="p">(</span><span class="n">pkP</span><span class="p">,</span><span class="mf">1.</span><span class="p">,</span><span class="mf">1.</span><span class="p">,</span><span class="n">pkS</span><span class="p">,</span><span class="n">pkG</span><span class="p">,</span><span class="n">xdata</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">])</span> 668 <span class="n">yb</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]</span> <span class="o">+=</span> <span class="n">ybi</span> 669 <span class="n">sumBk</span><span class="p">[</span><span class="mi">2</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">ybi</span><span class="p">)</span> 658 670 <span class="n">iD</span> <span class="o">+=</span> <span class="mi">1</span> 659 671 <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> … … 662 674 <span class="k">print</span> <span class="s">'**** WARNING - backround peak '</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">iD</span><span class="p">)</span><span class="o">+</span><span class="s">' sigma is negative; fix & try again ****'</span> 663 675 <span class="k">break</span> 664 <span class="k">return</span> <span class="n">yb</span> 676 <span class="k">return</span> <span class="n">yb</span><span class="p">,</span><span class="n">sumBk</span> 665 677 </div> 666 678 <div class="viewcode-block" id="getBackgroundDerv"><a class="viewcode-back" href="../GSASIIpwd.html#GSASIIpwd.getBackgroundDerv">[docs]</a><span class="k">def</span> <span class="nf">getBackgroundDerv</span><span class="p">(</span><span class="n">hfx</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="n">dataType</span><span class="p">,</span><span class="n">xdata</span><span class="p">):</span> … … 846 858 <span class="k">return</span> <span class="n">lenR</span><span class="p">,</span><span class="n">dRdS</span> 847 859 </div> 848 <div class="viewcode-block" id="getHKLpeak"><a class="viewcode-back" href="../GSASIIpwd.html#GSASIIpwd.getHKLpeak">[docs]</a><span class="k">def</span> <span class="nf">getHKLpeak</span><span class="p">(</span><span class="n">dmin</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">A</span><span class="p"> ):</span>860 <div class="viewcode-block" id="getHKLpeak"><a class="viewcode-back" href="../GSASIIpwd.html#GSASIIpwd.getHKLpeak">[docs]</a><span class="k">def</span> <span class="nf">getHKLpeak</span><span class="p">(</span><span class="n">dmin</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">Inst</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> 849 861 <span class="s">'needs a doc string'</span> 850 862 <span class="n">HKL</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">GenHLaue</span><span class="p">(</span><span class="n">dmin</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">A</span><span class="p">)</span> … … 853 865 <span class="n">ext</span> <span class="o">=</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">GenHKLf</span><span class="p">([</span><span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">],</span><span class="n">SGData</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> 854 866 <span class="k">if</span> <span class="ow">not</span> <span class="n">ext</span><span class="p">:</span> 855 <span class="n">HKLs</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">d</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> 867 <span class="k">if</span> <span class="n">Inst</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span> 868 <span class="n">HKLs</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">d</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> 869 <span class="k">else</span><span class="p">:</span> 870 <span class="n">HKLs</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">d</span><span class="p">,</span><span class="n">G2lat</span><span class="o">.</span><span class="n">Dsp2pos</span><span class="p">(</span><span class="n">Inst</span><span class="p">,</span><span class="n">d</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> 856 871 <span class="k">return</span> <span class="n">HKLs</span> 857 872 </div> 873 <div class="viewcode-block" id="getHKLMpeak"><a class="viewcode-back" href="../GSASIIpwd.html#GSASIIpwd.getHKLMpeak">[docs]</a><span class="k">def</span> <span class="nf">getHKLMpeak</span><span class="p">(</span><span class="n">dmin</span><span class="p">,</span><span class="n">Inst</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">SSGData</span><span class="p">,</span><span class="n">Vec</span><span class="p">,</span><span class="n">maxH</span><span class="p">,</span><span class="n">A</span><span class="p">):</span> 874 <span class="s">'needs a doc string'</span> 875 <span class="n">HKLs</span> <span class="o">=</span> <span class="p">[]</span> 876 <span class="n">vec</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">Vec</span><span class="p">)</span> 877 <span class="n">vstar</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">G2lat</span><span class="o">.</span><span class="n">calc_rDsq</span><span class="p">(</span><span class="n">vec</span><span class="p">,</span><span class="n">A</span><span class="p">))</span> <span class="c">#find extra needed for -n SS reflections</span> 878 <span class="n">dvec</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="p">(</span><span class="n">maxH</span><span class="o">*</span><span class="n">vstar</span><span class="o">+</span><span class="mf">1.</span><span class="o">/</span><span class="n">dmin</span><span class="p">)</span> 879 <span class="n">HKL</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">GenHLaue</span><span class="p">(</span><span class="n">dvec</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">A</span><span class="p">)</span> 880 <span class="n">SSdH</span> <span class="o">=</span> <span class="p">[</span><span class="n">vec</span><span class="o">*</span><span class="n">h</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="o">-</span><span class="n">maxH</span><span class="p">,</span><span class="n">maxH</span><span class="o">+</span><span class="mi">1</span><span class="p">)]</span> 881 <span class="n">SSdH</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="o">-</span><span class="n">maxH</span><span class="p">,</span><span class="n">maxH</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">SSdH</span><span class="p">))</span> 882 <span class="k">for</span> <span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">d</span> <span class="ow">in</span> <span class="n">HKL</span><span class="p">:</span> 883 <span class="n">ext</span> <span class="o">=</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">GenHKLf</span><span class="p">([</span><span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">],</span><span class="n">SGData</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> 884 <span class="k">if</span> <span class="ow">not</span> <span class="n">ext</span> <span class="ow">and</span> <span class="n">d</span> <span class="o">>=</span> <span class="n">dmin</span><span class="p">:</span> 885 <span class="n">HKLs</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="n">d</span><span class="p">,</span><span class="n">G2lat</span><span class="o">.</span><span class="n">Dsp2pos</span><span class="p">(</span><span class="n">Inst</span><span class="p">,</span><span class="n">d</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> 886 <span class="k">for</span> <span class="n">dH</span> <span class="ow">in</span> <span class="n">SSdH</span><span class="p">:</span> 887 <span class="k">if</span> <span class="n">dH</span><span class="p">:</span> 888 <span class="n">DH</span> <span class="o">=</span> <span class="n">SSdH</span><span class="p">[</span><span class="n">dH</span><span class="p">]</span> 889 <span class="n">H</span> <span class="o">=</span> <span class="p">[</span><span class="n">h</span><span class="o">+</span><span class="n">DH</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">k</span><span class="o">+</span><span class="n">DH</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">l</span><span class="o">+</span><span class="n">DH</span><span class="p">[</span><span class="mi">2</span><span class="p">]]</span> 890 <span class="n">d</span> <span class="o">=</span> <span class="mi">1</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">G2lat</span><span class="o">.</span><span class="n">calc_rDsq</span><span class="p">(</span><span class="n">H</span><span class="p">,</span><span class="n">A</span><span class="p">))</span> 891 <span class="k">if</span> <span class="n">d</span> <span class="o">>=</span> <span class="n">dmin</span><span class="p">:</span> 892 <span class="n">HKLM</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">dH</span><span class="p">])</span> 893 <span class="k">if</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">checkSSextc</span><span class="p">(</span><span class="n">HKLM</span><span class="p">,</span><span class="n">SSGData</span><span class="p">):</span> 894 <span class="n">HKLs</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="n">h</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">dH</span><span class="p">,</span><span class="n">d</span><span class="p">,</span><span class="n">G2lat</span><span class="o">.</span><span class="n">Dsp2pos</span><span class="p">(</span><span class="n">Inst</span><span class="p">,</span><span class="n">d</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> 895 <span class="k">return</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">sortHKLd</span><span class="p">(</span><span class="n">HKLs</span><span class="p">,</span><span class="bp">True</span><span class="p">,</span><span class="bp">True</span><span class="p">,</span><span class="bp">True</span><span class="p">)</span> 896 </div> 858 897 <div class="viewcode-block" id="getPeakProfile"><a class="viewcode-back" href="../GSASIIpwd.html#GSASIIpwd.getPeakProfile">[docs]</a><span class="k">def</span> <span class="nf">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> 859 898 <span class="s">'needs a doc string'</span> 860 899 861 <span class="n">yb</span> <span class="o">=</span> <span class="n">getBackground</span><span class="p">(</span><span class="s">''</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="n">dataType</span><span class="p">,</span><span class="n">xdata</span><span class="p">) </span>900 <span class="n">yb</span> <span class="o">=</span> <span class="n">getBackground</span><span class="p">(</span><span class="s">''</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="n">dataType</span><span class="p">,</span><span class="n">xdata</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> 862 901 <span class="n">yc</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">yb</span><span class="p">)</span> 863 902 <span class="n">cw</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">xdata</span><span class="p">)</span> … … 924 963 <span class="k">else</span><span class="p">:</span> 925 964 <span class="n">alp</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">getTOFalpha</span><span class="p">(</span><span class="n">parmDict</span><span class="p">,</span><span class="n">dsp</span><span class="p">)</span> 965 <span class="n">alp</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mf">0.0001</span><span class="p">,</span><span class="n">alp</span><span class="p">)</span> 926 966 <span class="n">betName</span> <span class="o">=</span> <span class="s">'bet'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">iPeak</span><span class="p">)</span> 927 967 <span class="k">if</span> <span class="n">betName</span> <span class="ow">in</span> <span class="n">varyList</span><span class="p">:</span> … … 932 972 <span class="k">else</span><span class="p">:</span> 933 973 <span class="n">bet</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">getTOFbeta</span><span class="p">(</span><span class="n">parmDict</span><span class="p">,</span><span class="n">dsp</span><span class="p">)</span> 974 <span class="n">bet</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mf">0.0001</span><span class="p">,</span><span class="n">bet</span><span class="p">)</span> 934 975 <span class="n">sigName</span> <span class="o">=</span> <span class="s">'sig'</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">iPeak</span><span class="p">)</span> 935 976 <span class="k">if</span> <span class="n">sigName</span> <span class="ow">in</span> <span class="n">varyList</span><span class="p">:</span> … … 1260 1301 <span class="k">if</span> <span class="n">peak</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="ow">and</span> <span class="n">peak</span><span class="p">[</span><span class="mi">3</span><span class="p">]:</span> 1261 1302 <span class="n">peakPos</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">peak</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> 1262 <span class="n">peakDsp</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">peak</span><span class="p">[</span><span class=" mi">8</span><span class="p">])</span>1263 <span class="n">peakWt</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class=" mi">1</span><span class="o">/</span><span class="n">sig</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>1303 <span class="n">peakDsp</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">peak</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="c">#d-calc</span> 1304 <span class="n">peakWt</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">peak</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">sig</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="c">#weight by d**2</span> 1264 1305 <span class="n">peakPos</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">peakPos</span><span class="p">)</span> 1265 1306 <span class="n">peakDsp</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">peakDsp</span><span class="p">)</span> … … 1275 1316 <span class="n">begin</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> 1276 1317 <span class="n">values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">Dict2Values</span><span class="p">(</span><span class="n">parmDict</span><span class="p">,</span> <span class="n">varyList</span><span class="p">))</span> 1277 <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">errPeakPos</span><span class="p">,</span><span class="n">values</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="mf">0.000 1</span><span class="p">,</span>1318 <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">errPeakPos</span><span class="p">,</span><span class="n">values</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="mf">0.000001</span><span class="p">,</span> 1278 1319 <span class="n">args</span><span class="o">=</span><span class="p">(</span><span class="n">peakDsp</span><span class="p">,</span><span class="n">peakPos</span><span class="p">,</span><span class="n">peakWt</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> 1279 1320 <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> … … 1292 1333 <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> <span class="c">#result[1] is None on singular matrix</span> 1293 1334 <span class="k">print</span> <span class="s">'**** Refinement failed - singular matrix ****'</span> 1294 <span class="k">return</span> <span class="bp">True</span>1295 1335 1296 1336 <span class="n">sigDict</span> <span class="o">=</span> <span class="nb">dict</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">sig</span><span class="p">))</span> 1297 1337 <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> 1298 1338 <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> 1339 <span class="k">return</span> <span class="bp">True</span> 1299 1340 1300 <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"> 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>1341 <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> 1301 1342 <span class="s">'needs a doc string'</span> 1302 1343 … … 1551 1592 <span class="n">parmDict</span><span class="p">[</span><span class="s">'Pdabc'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> <span class="c">#dummy Pdabc</span> 1552 1593 <span class="n">parmDict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">Inst2</span><span class="p">)</span> <span class="c">#put in real one if there</span> 1553 <span class="n">varyList</span> <span class="o">=</span> <span class="n">bakVary</span><span class="o">+</span><span class="n">insVary</span><span class="o">+</span><span class="n">peakVary</span> 1594 <span class="k">if</span> <span class="n">prevVaryList</span><span class="p">:</span> 1595 <span class="n">varyList</span> <span class="o">=</span> <span class="n">prevVaryList</span><span class="p">[:]</span> 1596 <span class="k">else</span><span class="p">:</span> 1597 <span class="n">varyList</span> <span class="o">=</span> <span class="n">bakVary</span><span class="o">+</span><span class="n">insVary</span><span class="o">+</span><span class="n">peakVary</span> 1598 <span class="n">fullvaryList</span> <span class="o">=</span> <span class="n">varyList</span><span class="p">[:]</span> 1554 1599 <span class="k">while</span> <span class="bp">True</span><span class="p">:</span> 1555 1600 <span class="n">begin</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> 1556 1601 <span class="n">values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">Dict2Values</span><span class="p">(</span><span class="n">parmDict</span><span class="p">,</span> <span class="n">varyList</span><span class="p">))</span> 1557 1602 <span class="n">Rvals</span> <span class="o">=</span> <span class="p">{}</span> 1603 <span class="n">badVary</span> <span class="o">=</span> <span class="p">[]</span> 1558 1604 <span class="k">if</span> <span class="n">FitPgm</span> <span class="o">==</span> <span class="s">'LSQ'</span><span class="p">:</span> 1559 1605 <span class="k">try</span><span class="p">:</span> … … 1582 1628 <span class="k">if</span> <span class="ow">not</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">'fjac'</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)[</span><span class="n">i</span><span class="p">]:</span> 1583 1629 <span class="k">print</span> <span class="s">'Removing parameter: '</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> 1630 <span class="n">badVary</span><span class="o">.</span><span class="n">append</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> 1584 1631 <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> 1585 1632 <span class="k">break</span> … … 1589 1636 1590 1637 <span class="n">sigDict</span> <span class="o">=</span> <span class="nb">dict</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">sig</span><span class="p">))</span> 1591 <span class="n">yb</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">getBackground</span><span class="p">(</span><span class="s">''</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="n">dataType</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>1638 <span class="n">yb</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">getBackground</span><span class="p">(</span><span class="s">''</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="n">dataType</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="mi">0</span><span class="p">]</span> 1592 1639 <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> <span class="o">=</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">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">varyList</span><span class="p">,</span><span class="n">bakType</span><span class="p">)</span> 1593 1640 <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> … … 1598 1645 <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> 1599 1646 <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> 1600 <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> 1647 <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> 1601 1648 </div> 1602 1649 <div class="viewcode-block" id="calcIncident"><a class="viewcode-back" href="../GSASIIpwd.html#GSASIIpwd.calcIncident">[docs]</a><span class="k">def</span> <span class="nf">calcIncident</span><span class="p">(</span><span class="n">Iparm</span><span class="p">,</span><span class="n">xdata</span><span class="p">):</span> … … 1700 1747 <span class="n">msg</span> <span class="o">=</span> <span class="s">'test '</span> 1701 1748 <span class="n">gplot</span> <span class="o">=</span> <span class="n">plotter</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s">'FCJ-Voigt, 11BM'</span><span class="p">)</span><span class="o">.</span><span class="n">gca</span><span class="p">()</span> 1702 <span class="n">gplot</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xdata</span><span class="p">,</span><span class="n">getBackground</span><span class="p">(</span><span class="s">''</span><span class="p">,</span><span class="n">parmDict0</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="s">'PXC'</span><span class="p">,</span><span class="n">xdata</span><span class="p">) )</span>1749 <span class="n">gplot</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xdata</span><span class="p">,</span><span class="n">getBackground</span><span class="p">(</span><span class="s">''</span><span class="p">,</span><span class="n">parmDict0</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="s">'PXC'</span><span class="p">,</span><span class="n">xdata</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> 1703 1750 <span class="n">gplot</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xdata</span><span class="p">,</span><span class="n">getPeakProfile</span><span class="p">(</span><span class="n">parmDict0</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> 1704 1751 <span class="n">fplot</span> <span class="o">=</span> <span class="n">plotter</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="s">'FCJ-Voigt, Ka1+2'</span><span class="p">)</span><span class="o">.</span><span class="n">gca</span><span class="p">()</span> 1705 <span class="n">fplot</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xdata</span><span class="p">,</span><span class="n">getBackground</span><span class="p">(</span><span class="s">''</span><span class="p">,</span><span class="n">parmDict1</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="s">'PXC'</span><span class="p">,</span><span class="n">xdata</span><span class="p">) )</span>1752 <span class="n">fplot</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xdata</span><span class="p">,</span><span class="n">getBackground</span><span class="p">(</span><span class="s">''</span><span class="p">,</span><span class="n">parmDict1</span><span class="p">,</span><span class="n">bakType</span><span class="p">,</span><span class="s">'PXC'</span><span class="p">,</span><span class="n">xdata</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> 1706 1753 <span class="n">fplot</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xdata</span><span class="p">,</span><span class="n">getPeakProfile</span><span class="p">(</span><span class="n">parmDict1</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> 1707 1754
Note: See TracChangeset
for help on using the changeset viewer.