Ignore:
Timestamp:
Mar 14, 2015 5:35:03 PM (8 years ago)
Author:
toby
Message:

change sphinx docs links; rebuild & fixing minor formatting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sphinxdocs/build/html/_modules/GSASIIstrMath.html

    r1513 r1709  
    5555<span class="sd">&#39;&#39;&#39;</span>
    5656<span class="c">########### SVN repository information ###################</span>
    57 <span class="c"># $Date: 2014-09-16 16:20:57 -0500 (Tue, 16 Sep 2014) $</span>
     57<span class="c"># $Date: 2015-02-28 09:16:41 -0600 (Sat, 28 Feb 2015) $</span>
    5858<span class="c"># $Author: vondreele $</span>
    59 <span class="c"># $Revision: 1498 $</span>
     59<span class="c"># $Revision: 1682 $</span>
    6060<span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/GSASIIstrMath.py $</span>
    61 <span class="c"># $Id: GSASIIstrMath.py 1498 2014-09-16 21:20:57Z vondreele $</span>
     61<span class="c"># $Id: GSASIIstrMath.py 1682 2015-02-28 15:16:41Z vondreele $</span>
    6262<span class="c">########### SVN repository information ###################</span>
    6363<span class="kn">import</span> <span class="nn">time</span>
     
    7070<span class="kn">import</span> <span class="nn">scipy.stats</span> <span class="kn">as</span> <span class="nn">st</span>
    7171<span class="kn">import</span> <span class="nn">GSASIIpath</span>
    72 <span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1498 $&quot;</span><span class="p">)</span>
     72<span class="n">GSASIIpath</span><span class="o">.</span><span class="n">SetVersionNumber</span><span class="p">(</span><span class="s">&quot;$Revision: 1682 $&quot;</span><span class="p">)</span>
    7373<span class="kn">import</span> <span class="nn">GSASIIElem</span> <span class="kn">as</span> <span class="nn">G2el</span>
    7474<span class="kn">import</span> <span class="nn">GSASIIlattice</span> <span class="kn">as</span> <span class="nn">G2lat</span>
     
    8686   
    8787<span class="n">ateln2</span> <span class="o">=</span> <span class="mf">8.0</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mf">2.0</span><span class="p">)</span>
     88<span class="n">twopi</span> <span class="o">=</span> <span class="mf">2.0</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
     89<span class="n">twopisq</span> <span class="o">=</span> <span class="mf">2.0</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="mi">2</span>
    8890
    8991<span class="c">################################################################################</span>
     
    116118        <span class="n">Phase</span> <span class="o">=</span> <span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">]</span>
    117119        <span class="n">General</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">]</span>
     120        <span class="n">cx</span><span class="p">,</span><span class="n">ct</span><span class="p">,</span><span class="n">cs</span><span class="p">,</span><span class="n">cia</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;AtomPtrs&#39;</span><span class="p">]</span>
    118121        <span class="n">cell</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;Cell&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">:</span><span class="mi">7</span><span class="p">]</span>
    119122        <span class="n">Amat</span><span class="p">,</span><span class="n">Bmat</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">cell2AB</span><span class="p">(</span><span class="n">cell</span><span class="p">)</span>
    120         <span class="n">AtLookup</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">FillAtomLookUp</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">&#39;Atoms&#39;</span><span class="p">])</span>
     123        <span class="n">AtLookup</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">FillAtomLookUp</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">&#39;Atoms&#39;</span><span class="p">],</span><span class="n">cia</span><span class="o">+</span><span class="mi">8</span><span class="p">)</span>
    121124        <span class="n">pfx</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">&#39;pId&#39;</span><span class="p">])</span><span class="o">+</span><span class="s">&#39;::&#39;</span>
    122125        <span class="k">if</span> <span class="n">Update</span><span class="p">:</span>
     
    209212            <span class="n">dFdvDict</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">=</span> <span class="mf">0.</span>        <span class="c">#NB: this is a vector which is no. refl. long &amp; must be filled!</span>
    210213    <span class="n">General</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">]</span>
     214    <span class="n">cx</span><span class="p">,</span><span class="n">ct</span><span class="p">,</span><span class="n">cs</span><span class="p">,</span><span class="n">cia</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;AtomPtrs&#39;</span><span class="p">]</span>
    211215    <span class="n">cell</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;Cell&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">:</span><span class="mi">7</span><span class="p">]</span>
    212216    <span class="n">Amat</span><span class="p">,</span><span class="n">Bmat</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">cell2AB</span><span class="p">(</span><span class="n">cell</span><span class="p">)</span>
     
    216220    <span class="n">gvec</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">array</span><span class="p">([</span><span class="n">g</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="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">g</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="mi">2</span><span class="p">,</span><span class="n">g</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span>
    217221        <span class="n">g</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="o">*</span><span class="n">g</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="n">g</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="o">*</span><span class="n">g</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">2</span><span class="p">],</span><span class="n">g</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">g</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">2</span><span class="p">]]))</span>
    218     <span class="n">AtLookup</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">FillAtomLookUp</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">&#39;Atoms&#39;</span><span class="p">])</span>
     222    <span class="n">AtLookup</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">FillAtomLookUp</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">&#39;Atoms&#39;</span><span class="p">],</span><span class="n">cia</span><span class="o">+</span><span class="mi">8</span><span class="p">)</span>
    219223    <span class="n">pfx</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">&#39;pId&#39;</span><span class="p">])</span><span class="o">+</span><span class="s">&#39;::&#39;</span>
    220224    <span class="n">RBModels</span> <span class="o">=</span>  <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;RBModels&#39;</span><span class="p">]</span>
     
    362366        <span class="n">negWt</span><span class="p">[</span><span class="n">pId</span><span class="p">]</span> <span class="o">=</span> <span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">][</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;Pawley neg wt&#39;</span><span class="p">]</span>
    363367        <span class="n">General</span> <span class="o">=</span> <span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">][</span><span class="s">&#39;General&#39;</span><span class="p">]</span>
     368        <span class="n">cx</span><span class="p">,</span><span class="n">ct</span><span class="p">,</span><span class="n">cs</span><span class="p">,</span><span class="n">cia</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;AtomPtrs&#39;</span><span class="p">]</span>
    364369        <span class="n">textureData</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;SH Texture&#39;</span><span class="p">]</span>
    365370        <span class="n">SGData</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;SGData&#39;</span><span class="p">]</span>
    366         <span class="n">AtLookup</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">FillAtomLookUp</span><span class="p">(</span><span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">][</span><span class="s">&#39;Atoms&#39;</span><span class="p">])</span>
     371        <span class="n">AtLookup</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">FillAtomLookUp</span><span class="p">(</span><span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">][</span><span class="s">&#39;Atoms&#39;</span><span class="p">],</span><span class="n">cia</span><span class="o">+</span><span class="mi">8</span><span class="p">)</span>
    367372        <span class="n">cell</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;Cell&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">:</span><span class="mi">7</span><span class="p">]</span>
    368373        <span class="n">Amat</span><span class="p">,</span><span class="n">Bmat</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">cell2AB</span><span class="p">(</span><span class="n">cell</span><span class="p">)</span>
     
    465470        <span class="n">pId</span> <span class="o">=</span> <span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">][</span><span class="s">&#39;pId&#39;</span><span class="p">]</span>
    466471        <span class="n">General</span> <span class="o">=</span> <span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">][</span><span class="s">&#39;General&#39;</span><span class="p">]</span>
     472        <span class="n">cx</span><span class="p">,</span><span class="n">ct</span><span class="p">,</span><span class="n">cs</span><span class="p">,</span><span class="n">cia</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;AtomPtrs&#39;</span><span class="p">]</span>
    467473        <span class="n">SGData</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;SGData&#39;</span><span class="p">]</span>
    468         <span class="n">AtLookup</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">FillAtomLookUp</span><span class="p">(</span><span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">][</span><span class="s">&#39;Atoms&#39;</span><span class="p">])</span>
     474        <span class="n">AtLookup</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">FillAtomLookUp</span><span class="p">(</span><span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">][</span><span class="s">&#39;Atoms&#39;</span><span class="p">],</span><span class="n">cia</span><span class="o">+</span><span class="mi">8</span><span class="p">)</span>
    469475        <span class="n">cell</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">&#39;Cell&#39;</span><span class="p">][</span><span class="mi">1</span><span class="p">:</span><span class="mi">7</span><span class="p">]</span>
    470476        <span class="n">Amat</span><span class="p">,</span><span class="n">Bmat</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">cell2AB</span><span class="p">(</span><span class="n">cell</span><span class="p">)</span>
     
    580586    <span class="k">return</span> <span class="n">Tdata</span><span class="p">,</span><span class="n">Mdata</span><span class="p">,</span><span class="n">Fdata</span><span class="p">,</span><span class="n">Xdata</span><span class="p">,</span><span class="n">dXdata</span><span class="p">,</span><span class="n">IAdata</span><span class="p">,</span><span class="n">Uisodata</span><span class="p">,</span><span class="n">Uijdata</span>
    581587    </div>
     588<div class="viewcode-block" id="GetAtomSSFXU"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetAtomSSFXU">[docs]</a><span class="k">def</span> <span class="nf">GetAtomSSFXU</span><span class="p">(</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     589    <span class="s">&#39;Needs a doc string&#39;</span>
     590    <span class="n">Natoms</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;Natoms&#39;</span><span class="p">][</span><span class="n">pfx</span><span class="p">]</span>
     591    <span class="n">maxSSwave</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;maxSSwave&#39;</span><span class="p">][</span><span class="n">pfx</span><span class="p">]</span>
     592    <span class="n">Nwave</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;F&#39;</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Sfrac&#39;</span><span class="p">],</span><span class="s">&#39;X&#39;</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Spos&#39;</span><span class="p">],</span><span class="s">&#39;Y&#39;</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Spos&#39;</span><span class="p">],</span><span class="s">&#39;Z&#39;</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Spos&#39;</span><span class="p">],</span>
     593        <span class="s">&#39;U&#39;</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Sadp&#39;</span><span class="p">],</span><span class="s">&#39;M&#39;</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Smag&#39;</span><span class="p">],</span><span class="s">&#39;T&#39;</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Spos&#39;</span><span class="p">]}</span>
     594    <span class="n">XSSdata</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">6</span><span class="p">,</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Spos&#39;</span><span class="p">],</span><span class="n">Natoms</span><span class="p">))</span>
     595    <span class="n">FSSdata</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">2</span><span class="p">,</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Sfrac&#39;</span><span class="p">],</span><span class="n">Natoms</span><span class="p">))</span>
     596    <span class="n">USSdata</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">12</span><span class="p">,</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Sadp&#39;</span><span class="p">],</span><span class="n">Natoms</span><span class="p">))</span>
     597    <span class="n">MSSdata</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="mi">6</span><span class="p">,</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">&#39;Smag&#39;</span><span class="p">],</span><span class="n">Natoms</span><span class="p">))</span>
     598    <span class="n">waveTypes</span> <span class="o">=</span> <span class="p">[]</span>
     599    <span class="n">keys</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;Fsin:&#39;</span><span class="p">:</span><span class="n">FSSdata</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;Fcos:&#39;</span><span class="p">:</span><span class="n">FSSdata</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="s">&#39;Fzero:&#39;</span><span class="p">:</span><span class="n">FSSdata</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;Fwid:&#39;</span><span class="p">:</span><span class="n">FSSdata</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span>
     600        <span class="s">&#39;Tzero:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;Xslope:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="s">&#39;Yslope:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="s">&#39;Zslope:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
     601        <span class="s">&#39;Xsin:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;Ysin:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="s">&#39;Zsin:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="s">&#39;Xcos:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span><span class="s">&#39;Ycos:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="s">&#39;Zcos:&#39;</span><span class="p">:</span><span class="n">XSSdata</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span>
     602        <span class="s">&#39;U11sin:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;U22sin:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="s">&#39;U33sin:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="s">&#39;U12sin:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span><span class="s">&#39;U13sin:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="s">&#39;U23sin:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span>
     603        <span class="s">&#39;U11cos:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="s">&#39;U22cos:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="s">&#39;U33cos:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">8</span><span class="p">],</span><span class="s">&#39;U12cos:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">9</span><span class="p">],</span><span class="s">&#39;U13cos:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">10</span><span class="p">],</span><span class="s">&#39;U23cos:&#39;</span><span class="p">:</span><span class="n">USSdata</span><span class="p">[</span><span class="mi">11</span><span class="p">],</span>
     604        <span class="s">&#39;MXsin:&#39;</span><span class="p">:</span><span class="n">MSSdata</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;MYsin:&#39;</span><span class="p">:</span><span class="n">MSSdata</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="s">&#39;MZsin:&#39;</span><span class="p">:</span><span class="n">MSSdata</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="s">&#39;MXcos:&#39;</span><span class="p">:</span><span class="n">MSSdata</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span><span class="s">&#39;MYcos:&#39;</span><span class="p">:</span><span class="n">MSSdata</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="s">&#39;MZcos:&#39;</span><span class="p">:</span><span class="n">MSSdata</span><span class="p">[</span><span class="mi">5</span><span class="p">]}</span>
     605    <span class="k">for</span> <span class="n">iatm</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">Natoms</span><span class="p">):</span>
     606        <span class="n">waveTypes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;waveType:&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">iatm</span><span class="p">)])</span>
     607        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">keys</span><span class="p">:</span>
     608            <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">Nwave</span><span class="p">[</span><span class="n">key</span><span class="p">[</span><span class="mi">0</span><span class="p">]]):</span>
     609                <span class="n">parm</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">+</span><span class="n">key</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">iatm</span><span class="p">)</span><span class="o">+</span><span class="s">&#39;:</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">m</span><span class="p">)</span>
     610                <span class="k">if</span> <span class="n">parm</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">:</span>
     611                    <span class="n">keys</span><span class="p">[</span><span class="n">key</span><span class="p">][</span><span class="n">m</span><span class="p">][</span><span class="n">iatm</span><span class="p">]</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">parm</span><span class="p">]</span>
     612    <span class="k">return</span> <span class="n">waveTypes</span><span class="p">,</span><span class="n">FSSdata</span><span class="o">.</span><span class="n">squeeze</span><span class="p">(),</span><span class="n">XSSdata</span><span class="o">.</span><span class="n">squeeze</span><span class="p">(),</span><span class="n">USSdata</span><span class="o">.</span><span class="n">squeeze</span><span class="p">(),</span><span class="n">MSSdata</span><span class="o">.</span><span class="n">squeeze</span><span class="p">()</span>   
     613    </div>
    582614<div class="viewcode-block" id="StructureFactor"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.StructureFactor">[docs]</a><span class="k">def</span> <span class="nf">StructureFactor</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    583615    <span class="sd">&#39;&#39;&#39; Not Used: here only for comparison the StructureFactor2 - faster version</span>
     
    596628
    597629<span class="sd">    &#39;&#39;&#39;</span>       
    598     <span class="n">twopi</span> <span class="o">=</span> <span class="mf">2.0</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    599     <span class="n">twopisq</span> <span class="o">=</span> <span class="mf">2.0</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="mi">2</span>
    600630    <span class="n">phfx</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;:&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">hfx</span>
    601631    <span class="n">ast</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">G</span><span class="p">))</span>
     
    658688        <span class="n">refl</span><span class="p">[</span><span class="mi">10</span><span class="p">]</span> <span class="o">=</span> <span class="n">atan2d</span><span class="p">(</span><span class="n">fbs</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">fas</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
    659689    </div>
     690<div class="viewcode-block" id="SStructureFactor"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SStructureFactor">[docs]</a><span class="k">def</span> <span class="nf">SStructureFactor</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</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">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     691    <span class="sd">&#39;&#39;&#39; </span>
     692<span class="sd">    Compute super structure factors for all h,k,l,m for phase</span>
     693<span class="sd">    puts the result, F^2, in each ref[8+im] in refList</span>
     694<span class="sd">    input:</span>
     695<span class="sd">    </span>
     696<span class="sd">    :param dict refDict: where</span>
     697<span class="sd">        &#39;RefList&#39; list where each ref = h,k,l,m,d,...</span>
     698<span class="sd">        &#39;FF&#39; dict of form factors - filed in below</span>
     699<span class="sd">    :param np.array G:      reciprocal metric tensor</span>
     700<span class="sd">    :param str pfx:    phase id string</span>
     701<span class="sd">    :param dict SGData: space group info. dictionary output from SpcGroup</span>
     702<span class="sd">    :param dict calcControls:</span>
     703<span class="sd">    :param dict ParmDict:</span>
     704
     705<span class="sd">    &#39;&#39;&#39;</span>       
     706    <span class="n">phfx</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;:&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">hfx</span>
     707    <span class="n">ast</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">G</span><span class="p">))</span>
     708    <span class="n">Mast</span> <span class="o">=</span> <span class="n">twopisq</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">multiply</span><span class="o">.</span><span class="n">outer</span><span class="p">(</span><span class="n">ast</span><span class="p">,</span><span class="n">ast</span><span class="p">)</span>
     709    <span class="n">SGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGOps&#39;</span><span class="p">]])</span>
     710    <span class="n">SGT</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">ops</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGOps&#39;</span><span class="p">]])</span>
     711    <span class="n">SSGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SSGData</span><span class="p">[</span><span class="s">&#39;SSGOps&#39;</span><span class="p">]])</span>
     712    <span class="n">SSGT</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">ops</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SSGData</span><span class="p">[</span><span class="s">&#39;SSGOps&#39;</span><span class="p">]])</span>
     713    <span class="n">FFtables</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;FFtables&#39;</span><span class="p">]</span>
     714    <span class="n">BLtables</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;BLtables&#39;</span><span class="p">]</span>
     715    <span class="n">Tdata</span><span class="p">,</span><span class="n">Mdata</span><span class="p">,</span><span class="n">Fdata</span><span class="p">,</span><span class="n">Xdata</span><span class="p">,</span><span class="n">dXdata</span><span class="p">,</span><span class="n">IAdata</span><span class="p">,</span><span class="n">Uisodata</span><span class="p">,</span><span class="n">Uijdata</span> <span class="o">=</span> <span class="n">GetAtomFXU</span><span class="p">(</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     716    <span class="n">waveTypes</span><span class="p">,</span><span class="n">FSSdata</span><span class="p">,</span><span class="n">XSSdata</span><span class="p">,</span><span class="n">USSdata</span><span class="p">,</span><span class="n">MSSdata</span> <span class="o">=</span> <span class="n">GetAtomSSFXU</span><span class="p">(</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     717    <span class="n">FF</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Tdata</span><span class="p">))</span>
     718    <span class="k">if</span> <span class="s">&#39;NC&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
     719        <span class="n">FP</span><span class="p">,</span><span class="n">FPP</span> <span class="o">=</span> <span class="n">G2el</span><span class="o">.</span><span class="n">BlenResCW</span><span class="p">(</span><span class="n">Tdata</span><span class="p">,</span><span class="n">BLtables</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Lam&#39;</span><span class="p">])</span>
     720    <span class="k">else</span><span class="p">:</span>
     721        <span class="n">FP</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">FFtables</span><span class="p">[</span><span class="n">El</span><span class="p">][</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;FP&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">El</span> <span class="ow">in</span> <span class="n">Tdata</span><span class="p">])</span>
     722        <span class="n">FPP</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">FFtables</span><span class="p">[</span><span class="n">El</span><span class="p">][</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;FPP&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">El</span> <span class="ow">in</span> <span class="n">Tdata</span><span class="p">])</span>
     723    <span class="n">Uij</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">G2lat</span><span class="o">.</span><span class="n">U6toUij</span><span class="p">(</span><span class="n">Uijdata</span><span class="p">))</span>
     724    <span class="n">bij</span> <span class="o">=</span> <span class="n">Mast</span><span class="o">*</span><span class="n">Uij</span><span class="o">.</span><span class="n">T</span>
     725    <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">]):</span>
     726        <span class="k">if</span> <span class="s">&#39;N&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
     727            <span class="n">dat</span> <span class="o">=</span> <span class="n">G2el</span><span class="o">.</span><span class="n">getBLvalues</span><span class="p">(</span><span class="n">BLtables</span><span class="p">)</span>        <span class="c">#will need wave here for anom. neutron b&#39;s</span>
     728        <span class="k">else</span><span class="p">:</span>
     729            <span class="n">dat</span> <span class="o">=</span> <span class="n">G2el</span><span class="o">.</span><span class="n">getFFvalues</span><span class="p">(</span><span class="n">FFtables</span><span class="p">,</span><span class="mf">0.</span><span class="p">)</span>       
     730        <span class="n">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;El&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">dat</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
     731        <span class="n">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;FF&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]),</span><span class="nb">len</span><span class="p">(</span><span class="n">dat</span><span class="p">)))</span>   
     732    <span class="k">for</span> <span class="n">iref</span><span class="p">,</span><span class="n">refl</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]):</span>
     733        <span class="k">if</span> <span class="s">&#39;NT&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
     734            <span class="n">FP</span><span class="p">,</span><span class="n">FPP</span> <span class="o">=</span> <span class="n">G2el</span><span class="o">.</span><span class="n">BlenResCW</span><span class="p">(</span><span class="n">Tdata</span><span class="p">,</span><span class="n">BLtables</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
     735        <span class="n">fbs</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="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">])</span>
     736        <span class="n">H</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span>
     737        <span class="n">SQ</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="p">(</span><span class="mf">2.</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span>
     738        <span class="n">SQfactor</span> <span class="o">=</span> <span class="mf">4.0</span><span class="o">*</span><span class="n">SQ</span><span class="o">*</span><span class="n">twopisq</span>
     739        <span class="n">Bab</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;BabA&#39;</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">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;BabU&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">SQfactor</span><span class="p">)</span>
     740        <span class="k">if</span> <span class="ow">not</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">]):</span>                <span class="c">#no form factors - 1st time thru StructureFactor</span>
     741            <span class="k">if</span> <span class="s">&#39;N&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
     742                <span class="n">dat</span> <span class="o">=</span> <span class="n">G2el</span><span class="o">.</span><span class="n">getBLvalues</span><span class="p">(</span><span class="n">BLtables</span><span class="p">)</span>
     743                <span class="n">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">dat</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
     744            <span class="k">else</span><span class="p">:</span>       <span class="c">#&#39;X&#39;</span>
     745                <span class="n">dat</span> <span class="o">=</span> <span class="n">G2el</span><span class="o">.</span><span class="n">getFFvalues</span><span class="p">(</span><span class="n">FFtables</span><span class="p">,</span><span class="n">SQ</span><span class="p">)</span>
     746                <span class="n">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">dat</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
     747        <span class="n">Tindx</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">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;El&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">El</span><span class="p">)</span> <span class="k">for</span> <span class="n">El</span> <span class="ow">in</span> <span class="n">Tdata</span><span class="p">])</span>
     748        <span class="n">FF</span> <span class="o">=</span> <span class="n">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">][</span><span class="n">Tindx</span><span class="p">]</span>
     749        <span class="n">Uniq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGMT</span><span class="p">)</span>
     750        <span class="n">SSUniq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">,</span><span class="n">SSGMT</span><span class="p">)</span>
     751        <span class="n">Phi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGT</span><span class="p">)</span>
     752        <span class="n">SSPhi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">,</span><span class="n">SSGT</span><span class="p">)</span>
     753        <span class="n">GfpuA</span><span class="p">,</span><span class="n">GfpuB</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">Modulation</span><span class="p">(</span><span class="n">waveTypes</span><span class="p">,</span><span class="n">SSUniq</span><span class="p">,</span><span class="n">SSPhi</span><span class="p">,</span><span class="n">FSSdata</span><span class="p">,</span><span class="n">XSSdata</span><span class="p">,</span><span class="n">USSdata</span><span class="p">)</span>       
     754        <span class="n">phase</span> <span class="o">=</span> <span class="n">twopi</span><span class="o">*</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">Uniq</span><span class="p">,(</span><span class="n">dXdata</span><span class="o">.</span><span class="n">T</span><span class="o">+</span><span class="n">Xdata</span><span class="o">.</span><span class="n">T</span><span class="p">))</span><span class="o">+</span><span class="n">Phi</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">])</span>
     755        <span class="n">sinp</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">phase</span><span class="p">)</span>
     756        <span class="n">cosp</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">phase</span><span class="p">)</span>
     757        <span class="n">biso</span> <span class="o">=</span> <span class="o">-</span><span class="n">SQfactor</span><span class="o">*</span><span class="n">Uisodata</span>
     758        <span class="n">Tiso</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">biso</span><span class="o">&lt;</span><span class="mf">1.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">biso</span><span class="p">),</span><span class="mf">1.0</span><span class="p">)</span>
     759        <span class="n">HbH</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="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">h</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">bij</span><span class="p">,</span><span class="n">h</span><span class="p">))</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">Uniq</span><span class="p">])</span>
     760        <span class="n">Tuij</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">HbH</span><span class="o">&lt;</span><span class="mf">1.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">HbH</span><span class="p">),</span><span class="mf">1.0</span><span class="p">)</span>
     761        <span class="n">Tcorr</span> <span class="o">=</span> <span class="n">Tiso</span><span class="o">*</span><span class="n">Tuij</span><span class="o">*</span><span class="n">Mdata</span><span class="o">*</span><span class="n">Fdata</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">Uniq</span><span class="p">)</span>
     762        <span class="n">fa</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">FF</span><span class="o">+</span><span class="n">FP</span><span class="o">-</span><span class="n">Bab</span><span class="p">)</span><span class="o">*</span><span class="n">cosp</span><span class="o">*</span><span class="n">Tcorr</span><span class="p">,</span><span class="o">-</span><span class="n">FPP</span><span class="o">*</span><span class="n">sinp</span><span class="o">*</span><span class="n">Tcorr</span><span class="p">])</span>
     763        <span class="n">fb</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">fa</span><span class="p">)</span>
     764        <span class="k">if</span> <span class="ow">not</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGInv&#39;</span><span class="p">]:</span>
     765            <span class="n">fb</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">FF</span><span class="o">+</span><span class="n">FP</span><span class="o">-</span><span class="n">Bab</span><span class="p">)</span><span class="o">*</span><span class="n">sinp</span><span class="o">*</span><span class="n">Tcorr</span><span class="p">,</span><span class="n">FPP</span><span class="o">*</span><span class="n">cosp</span><span class="o">*</span><span class="n">Tcorr</span><span class="p">])</span>
     766        <span class="n">fa</span> <span class="o">=</span> <span class="n">fa</span><span class="o">*</span><span class="n">GfpuA</span><span class="o">-</span><span class="n">fb</span><span class="o">*</span><span class="n">GfpuB</span>
     767        <span class="n">fb</span> <span class="o">=</span> <span class="n">fb</span><span class="o">*</span><span class="n">GfpuA</span><span class="o">+</span><span class="n">fa</span><span class="o">*</span><span class="n">GfpuB</span>
     768        <span class="n">fas</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">real</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">fa</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">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">))</span>        <span class="c">#real</span>
     769        <span class="n">fbs</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">real</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">fb</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">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">))</span>
     770           
     771        <span class="n">fasq</span> <span class="o">=</span> <span class="n">fas</span><span class="o">**</span><span class="mi">2</span>
     772        <span class="n">fbsq</span> <span class="o">=</span> <span class="n">fbs</span><span class="o">**</span><span class="mi">2</span>        <span class="c">#imaginary</span>
     773        <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</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">fasq</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">fbsq</span><span class="p">)</span>
     774        <span class="n">refl</span><span class="p">[</span><span class="mi">10</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">atan2d</span><span class="p">(</span><span class="n">fbs</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">fas</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
     775    </div>
    660776<div class="viewcode-block" id="StructureFactor2"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.StructureFactor2">[docs]</a><span class="k">def</span> <span class="nf">StructureFactor2</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    661777    <span class="sd">&#39;&#39;&#39; Compute structure factors for all h,k,l for phase</span>
     
    673789
    674790<span class="sd">    &#39;&#39;&#39;</span>       
    675     <span class="n">twopi</span> <span class="o">=</span> <span class="mf">2.0</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    676     <span class="n">twopisq</span> <span class="o">=</span> <span class="mf">2.0</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="mi">2</span>
    677791    <span class="n">phfx</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;:&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">hfx</span>
    678792    <span class="n">ast</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">G</span><span class="p">))</span>
     
    750864<div class="viewcode-block" id="StructureFactorDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.StructureFactorDerv">[docs]</a><span class="k">def</span> <span class="nf">StructureFactorDerv</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    751865    <span class="s">&#39;Needs a doc string&#39;</span>
    752     <span class="n">twopi</span> <span class="o">=</span> <span class="mf">2.0</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    753     <span class="n">twopisq</span> <span class="o">=</span> <span class="mf">2.0</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="mi">2</span>
    754866    <span class="n">phfx</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;:&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">hfx</span>
    755867    <span class="n">ast</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">G</span><span class="p">))</span>
     
    848960    <span class="k">return</span> <span class="n">dFdvDict</span>
    849961    </div>
    850 <div class="viewcode-block" id="SCExtinction"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SCExtinction">[docs]</a><span class="k">def</span> <span class="nf">SCExtinction</span><span class="p">(</span><span class="n">ref</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">varyList</span><span class="p">):</span>
     962<div class="viewcode-block" id="SStructureFactorDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SStructureFactorDerv">[docs]</a><span class="k">def</span> <span class="nf">SStructureFactorDerv</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</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">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     963    <span class="s">&#39;Needs a doc string&#39;</span>
     964    <span class="n">phfx</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;:&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">hfx</span>
     965    <span class="n">ast</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">G</span><span class="p">))</span>
     966    <span class="n">Mast</span> <span class="o">=</span> <span class="n">twopisq</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">multiply</span><span class="o">.</span><span class="n">outer</span><span class="p">(</span><span class="n">ast</span><span class="p">,</span><span class="n">ast</span><span class="p">)</span>
     967    <span class="n">SGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGOps&#39;</span><span class="p">]])</span>
     968    <span class="n">SGT</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">ops</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGOps&#39;</span><span class="p">]])</span>
     969    <span class="n">SSGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SSGData</span><span class="p">[</span><span class="s">&#39;SSGOps&#39;</span><span class="p">]])</span>
     970    <span class="n">SSGT</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">ops</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SSGData</span><span class="p">[</span><span class="s">&#39;SSGOps&#39;</span><span class="p">]])</span>
     971    <span class="n">FFtables</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;FFtables&#39;</span><span class="p">]</span>
     972    <span class="n">BLtables</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;BLtables&#39;</span><span class="p">]</span>
     973    <span class="n">nRef</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">])</span>
     974    <span class="n">Tdata</span><span class="p">,</span><span class="n">Mdata</span><span class="p">,</span><span class="n">Fdata</span><span class="p">,</span><span class="n">Xdata</span><span class="p">,</span><span class="n">dXdata</span><span class="p">,</span><span class="n">IAdata</span><span class="p">,</span><span class="n">Uisodata</span><span class="p">,</span><span class="n">Uijdata</span> <span class="o">=</span> <span class="n">GetAtomFXU</span><span class="p">(</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     975    <span class="n">waveTypes</span><span class="p">,</span><span class="n">FSSdata</span><span class="p">,</span><span class="n">XSSdata</span><span class="p">,</span><span class="n">USSdata</span><span class="p">,</span><span class="n">MSSdata</span> <span class="o">=</span> <span class="n">GetAtomSSFXU</span><span class="p">(</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     976    <span class="n">mSize</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">Mdata</span><span class="p">)</span>
     977    <span class="n">FF</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">Tdata</span><span class="p">))</span>
     978    <span class="k">if</span> <span class="s">&#39;NC&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
     979        <span class="n">FP</span><span class="p">,</span><span class="n">FPP</span> <span class="o">=</span> <span class="n">G2el</span><span class="o">.</span><span class="n">BlenResCW</span><span class="p">(</span><span class="n">Tdata</span><span class="p">,</span><span class="n">BLtables</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Lam&#39;</span><span class="p">])</span>
     980    <span class="k">elif</span> <span class="s">&#39;X&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
     981        <span class="n">FP</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">FFtables</span><span class="p">[</span><span class="n">El</span><span class="p">][</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;FP&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">El</span> <span class="ow">in</span> <span class="n">Tdata</span><span class="p">])</span>
     982        <span class="n">FPP</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">FFtables</span><span class="p">[</span><span class="n">El</span><span class="p">][</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;FPP&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">El</span> <span class="ow">in</span> <span class="n">Tdata</span><span class="p">])</span>
     983    <span class="n">Uij</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">G2lat</span><span class="o">.</span><span class="n">U6toUij</span><span class="p">(</span><span class="n">Uijdata</span><span class="p">))</span>
     984    <span class="n">bij</span> <span class="o">=</span> <span class="n">Mast</span><span class="o">*</span><span class="n">Uij</span><span class="o">.</span><span class="n">T</span>
     985    <span class="n">dFdvDict</span> <span class="o">=</span> <span class="p">{}</span>
     986    <span class="n">dFdfr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nRef</span><span class="p">,</span><span class="n">mSize</span><span class="p">))</span>
     987    <span class="n">dFdx</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nRef</span><span class="p">,</span><span class="n">mSize</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span>
     988    <span class="n">dFdui</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nRef</span><span class="p">,</span><span class="n">mSize</span><span class="p">))</span>
     989    <span class="n">dFdua</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nRef</span><span class="p">,</span><span class="n">mSize</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
     990    <span class="n">dFdbab</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">nRef</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span>
     991    <span class="k">for</span> <span class="n">iref</span><span class="p">,</span><span class="n">refl</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]):</span>
     992        <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
     993            <span class="n">FP</span><span class="p">,</span><span class="n">FPP</span> <span class="o">=</span> <span class="n">G2el</span><span class="o">.</span><span class="n">BlenResCW</span><span class="p">(</span><span class="n">Tdata</span><span class="p">,</span><span class="n">BLtables</span><span class="p">,</span><span class="n">refl</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
     994        <span class="n">H</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">refl</span><span class="p">[:</span><span class="mi">4</span><span class="p">])</span>
     995        <span class="n">SQ</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="p">(</span><span class="mf">2.</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span>             <span class="c"># or (sin(theta)/lambda)**2</span>
     996        <span class="n">SQfactor</span> <span class="o">=</span> <span class="mf">8.0</span><span class="o">*</span><span class="n">SQ</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="mi">2</span>
     997        <span class="n">dBabdA</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">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;BabU&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">SQfactor</span><span class="p">)</span>
     998        <span class="n">Bab</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;BabA&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">dBabdA</span>
     999        <span class="n">Tindx</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">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;El&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">El</span><span class="p">)</span> <span class="k">for</span> <span class="n">El</span> <span class="ow">in</span> <span class="n">Tdata</span><span class="p">])</span>
     1000        <span class="n">FF</span> <span class="o">=</span> <span class="n">refDict</span><span class="p">[</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="s">&#39;FF&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="n">Tindx</span><span class="p">]</span>
     1001        <span class="n">Uniq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGMT</span><span class="p">)</span>
     1002        <span class="n">SSUniq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">,</span><span class="n">SSGMT</span><span class="p">)</span>
     1003        <span class="n">Phi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGT</span><span class="p">)</span>
     1004        <span class="n">SSPhi</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">,</span><span class="n">SSGT</span><span class="p">)</span>
     1005        <span class="n">GfpuA</span><span class="p">,</span><span class="n">GfpuB</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">Modulation</span><span class="p">(</span><span class="n">waveTypes</span><span class="p">,</span><span class="n">SSUniq</span><span class="p">,</span><span class="n">SSPhi</span><span class="p">,</span><span class="n">FSSdata</span><span class="p">,</span><span class="n">XSSdata</span><span class="p">,</span><span class="n">USSdata</span><span class="p">)</span>
     1006        <span class="n">dGAdk</span><span class="p">,</span><span class="n">dGBdk</span> <span class="o">=</span> <span class="n">G2mth</span><span class="o">.</span><span class="n">ModulationDerv</span><span class="p">(</span><span class="n">waveTypes</span><span class="p">,</span><span class="n">SSUniq</span><span class="p">,</span><span class="n">SSPhi</span><span class="p">,</span><span class="n">FSSdata</span><span class="p">,</span><span class="n">XSSdata</span><span class="p">,</span><span class="n">USSdata</span><span class="p">)</span>
     1007        <span class="c">#need ModulationDerv here dGAdXsin, etc  </span>
     1008        <span class="n">phase</span> <span class="o">=</span> <span class="n">twopi</span><span class="o">*</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">((</span><span class="n">dXdata</span><span class="o">.</span><span class="n">T</span><span class="o">+</span><span class="n">Xdata</span><span class="o">.</span><span class="n">T</span><span class="p">),</span><span class="n">Uniq</span><span class="p">)</span><span class="o">+</span><span class="n">Phi</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">,:])</span>
     1009        <span class="n">sinp</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">phase</span><span class="p">)</span>
     1010        <span class="n">cosp</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">phase</span><span class="p">)</span>
     1011        <span class="n">occ</span> <span class="o">=</span> <span class="n">Mdata</span><span class="o">*</span><span class="n">Fdata</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">Uniq</span><span class="p">)</span>
     1012        <span class="n">biso</span> <span class="o">=</span> <span class="o">-</span><span class="n">SQfactor</span><span class="o">*</span><span class="n">Uisodata</span>
     1013        <span class="n">Tiso</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">biso</span><span class="o">&lt;</span><span class="mf">1.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">biso</span><span class="p">),</span><span class="mf">1.0</span><span class="p">)</span>
     1014        <span class="n">HbH</span> <span class="o">=</span> <span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">H</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">bij</span><span class="p">,</span><span class="n">H</span><span class="p">[:</span><span class="mi">3</span><span class="p">]))</span>
     1015        <span class="n">Hij</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">Mast</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">multiply</span><span class="o">.</span><span class="n">outer</span><span class="p">(</span><span class="n">U</span><span class="p">,</span><span class="n">U</span><span class="p">)</span> <span class="k">for</span> <span class="n">U</span> <span class="ow">in</span> <span class="n">Uniq</span><span class="p">])</span>
     1016        <span class="n">Hij</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">G2lat</span><span class="o">.</span><span class="n">UijtoU6</span><span class="p">(</span><span class="n">Uij</span><span class="p">)</span> <span class="k">for</span> <span class="n">Uij</span> <span class="ow">in</span> <span class="n">Hij</span><span class="p">])</span>
     1017        <span class="n">Tuij</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">HbH</span><span class="o">&lt;</span><span class="mf">1.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">HbH</span><span class="p">),</span><span class="mf">1.0</span><span class="p">)</span>
     1018        <span class="n">Tcorr</span> <span class="o">=</span> <span class="n">Tiso</span><span class="o">*</span><span class="n">Tuij</span>
     1019        <span class="n">fot</span> <span class="o">=</span> <span class="p">(</span><span class="n">FF</span><span class="o">+</span><span class="n">FP</span><span class="o">-</span><span class="n">Bab</span><span class="p">)</span><span class="o">*</span><span class="n">occ</span><span class="o">*</span><span class="n">Tcorr</span>
     1020        <span class="n">fotp</span> <span class="o">=</span> <span class="n">FPP</span><span class="o">*</span><span class="n">occ</span><span class="o">*</span><span class="n">Tcorr</span>
     1021        <span class="n">fa</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">fot</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span><span class="o">*</span><span class="n">cosp</span><span class="p">,</span><span class="n">fotp</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span><span class="o">*</span><span class="n">cosp</span><span class="p">])</span>       <span class="c">#non positions</span>
     1022        <span class="n">fb</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">fot</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span><span class="o">*</span><span class="n">sinp</span><span class="p">,</span><span class="o">-</span><span class="n">fotp</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span><span class="o">*</span><span class="n">sinp</span><span class="p">])</span>
     1023        <span class="n">GfpuA</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">swapaxes</span><span class="p">(</span><span class="n">GfpuA</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
     1024        <span class="n">GfpuB</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">swapaxes</span><span class="p">(</span><span class="n">GfpuB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
     1025        <span class="n">fa</span> <span class="o">=</span> <span class="n">fa</span><span class="o">*</span><span class="n">GfpuA</span><span class="o">-</span><span class="n">fb</span><span class="o">*</span><span class="n">GfpuB</span>
     1026        <span class="n">fb</span> <span class="o">=</span> <span class="n">fb</span><span class="o">*</span><span class="n">GfpuA</span><span class="o">+</span><span class="n">fa</span><span class="o">*</span><span class="n">GfpuB</span>
     1027       
     1028        <span class="n">fas</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">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">fa</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">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
     1029        <span class="n">fbs</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">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">fb</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">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
     1030        <span class="n">fax</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="o">-</span><span class="n">fot</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span><span class="o">*</span><span class="n">sinp</span><span class="p">,</span><span class="o">-</span><span class="n">fotp</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span><span class="o">*</span><span class="n">sinp</span><span class="p">])</span>   <span class="c">#positions</span>
     1031        <span class="n">fbx</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">fot</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span><span class="o">*</span><span class="n">cosp</span><span class="p">,</span><span class="o">-</span><span class="n">fot</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">]</span><span class="o">*</span><span class="n">cosp</span><span class="p">])</span>
     1032        <span class="n">fax</span> <span class="o">=</span> <span class="n">fax</span><span class="o">*</span><span class="n">GfpuA</span><span class="o">-</span><span class="n">fbx</span><span class="o">*</span><span class="n">GfpuB</span>
     1033        <span class="n">fbx</span> <span class="o">=</span> <span class="n">fbx</span><span class="o">*</span><span class="n">GfpuA</span><span class="o">+</span><span class="n">fax</span><span class="o">*</span><span class="n">GfpuB</span>
     1034        <span class="c">#sum below is over Uniq</span>
     1035        <span class="n">dfadfr</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">fa</span><span class="o">/</span><span class="n">occ</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>        <span class="c">#Fdata != 0 ever avoids /0. problem</span>
     1036        <span class="n">dfadx</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">twopi</span><span class="o">*</span><span class="n">Uniq</span><span class="o">*</span><span class="n">fax</span><span class="p">[:,:,:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
     1037        <span class="n">dfadui</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="o">-</span><span class="n">SQfactor</span><span class="o">*</span><span class="n">fa</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
     1038        <span class="n">dfadua</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="o">-</span><span class="n">Hij</span><span class="o">*</span><span class="n">fa</span><span class="p">[:,:,:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
     1039        <span class="n">dfadba</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="o">-</span><span class="n">cosp</span><span class="o">*</span><span class="p">(</span><span class="n">occ</span><span class="o">*</span><span class="n">Tcorr</span><span class="p">)[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
     1040        <span class="c">#NB: the above have been checked against PA(1:10,1:2) in strfctr.for for al2O3!    </span>
     1041        <span class="n">dFdfr</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">fas</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="n">dfadfr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">fas</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">dfadfr</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="o">*</span><span class="n">Mdata</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">Uniq</span><span class="p">)</span>
     1042        <span class="n">dFdx</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">fas</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="n">dfadx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">fas</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">dfadx</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
     1043        <span class="n">dFdui</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">fas</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="n">dfadui</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">fas</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">dfadui</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
     1044        <span class="n">dFdua</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">fas</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="n">dfadua</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">fas</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">dfadua</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
     1045        <span class="n">dFdbab</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="n">fas</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">array</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">dfadba</span><span class="o">*</span><span class="n">dBabdA</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="o">-</span><span class="n">dfadba</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;BabA&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">SQfactor</span><span class="o">*</span><span class="n">dBabdA</span><span class="p">)])</span><span class="o">.</span><span class="n">T</span>
     1046        <span class="c">#need dFdXsin, etc for modulations...</span>
     1047        <span class="k">if</span> <span class="ow">not</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGInv&#39;</span><span class="p">]:</span>
     1048            <span class="n">dfbdfr</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">fb</span><span class="o">/</span><span class="n">occ</span><span class="p">[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>        <span class="c">#Fdata != 0 ever avoids /0. problem</span>
     1049            <span class="n">dfbdx</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">twopi</span><span class="o">*</span><span class="n">Uniq</span><span class="o">*</span><span class="n">fbx</span><span class="p">[:,:,:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>           
     1050            <span class="n">dfbdui</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="o">-</span><span class="n">SQfactor</span><span class="o">*</span><span class="n">fb</span><span class="p">,</span><span class="n">axis</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
     1051            <span class="n">dfbdua</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="o">-</span><span class="n">Hij</span><span class="o">*</span><span class="n">fb</span><span class="p">[:,:,:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
     1052            <span class="n">dfbdba</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="o">-</span><span class="n">sinp</span><span class="o">*</span><span class="p">(</span><span class="n">occ</span><span class="o">*</span><span class="n">Tcorr</span><span class="p">)[:,</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
     1053            <span class="n">dFdfr</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">+=</span> <span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">fbs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="n">dfbdfr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="n">fbs</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">dfbdfr</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="o">*</span><span class="n">Mdata</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">Uniq</span><span class="p">)</span>
     1054            <span class="n">dFdx</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">+=</span> <span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">fbs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="n">dfbdx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">fbs</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">dfbdx</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
     1055            <span class="n">dFdui</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">+=</span> <span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">fbs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="n">dfbdui</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-</span><span class="n">fbs</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">dfbdui</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
     1056            <span class="n">dFdua</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">+=</span> <span class="mf">2.</span><span class="o">*</span><span class="p">(</span><span class="n">fbs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">*</span><span class="n">dfbdua</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">fbs</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">dfbdua</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
     1057            <span class="n">dFdbab</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">+=</span> <span class="mf">2.</span><span class="o">*</span><span class="n">fbs</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">array</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">dfbdba</span><span class="o">*</span><span class="n">dBabdA</span><span class="p">),</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="o">-</span><span class="n">dfbdba</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;BabA&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">SQfactor</span><span class="o">*</span><span class="n">dBabdA</span><span class="p">)])</span><span class="o">.</span><span class="n">T</span>
     1058        <span class="c">#need dFdXsin, etc for modulations...</span>
     1059        <span class="c">#loop over atoms - each dict entry is list of derivatives for all the reflections</span>
     1060    <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="nb">len</span><span class="p">(</span><span class="n">Mdata</span><span class="p">)):</span>     
     1061        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;Afrac:&#39;</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="o">=</span> <span class="n">dFdfr</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
     1062        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;dAx:&#39;</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="o">=</span> <span class="n">dFdx</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1063        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;dAy:&#39;</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="o">=</span> <span class="n">dFdx</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1064        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;dAz:&#39;</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="o">=</span> <span class="n">dFdx</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1065        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;AUiso:&#39;</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="o">=</span> <span class="n">dFdui</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
     1066        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;AU11:&#39;</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="o">=</span> <span class="n">dFdua</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1067        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;AU22:&#39;</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="o">=</span> <span class="n">dFdua</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1068        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;AU33:&#39;</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="o">=</span> <span class="n">dFdua</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1069        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;AU12:&#39;</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="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="n">dFdua</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">3</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1070        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;AU13:&#39;</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="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="n">dFdua</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">4</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1071        <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;AU23:&#39;</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="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="n">dFdua</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">5</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
     1072        <span class="c">#need dFdvDict[pfx+&#39;Xsin:&#39;+str[i]:str(m)], etc for modulations...</span>
     1073    <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;BabA&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">dFdbab</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
     1074    <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;BabU&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">dFdbab</span><span class="o">.</span><span class="n">T</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
     1075    <span class="k">return</span> <span class="n">dFdvDict</span>
     1076    </div>
     1077<div class="viewcode-block" id="SCExtinction"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SCExtinction">[docs]</a><span class="k">def</span> <span class="nf">SCExtinction</span><span class="p">(</span><span class="n">ref</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">varyList</span><span class="p">):</span>
    8511078    <span class="sd">&#39;&#39;&#39; Single crystal extinction function; returns extinction &amp; derivative</span>
    8521079<span class="sd">    &#39;&#39;&#39;</span>
     
    8541081    <span class="n">dervDict</span> <span class="o">=</span> <span class="p">{}</span>
    8551082    <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;EType&#39;</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;None&#39;</span><span class="p">:</span>
    856         <span class="n">SQ</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="mf">4.</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
     1083        <span class="n">SQ</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="p">(</span><span class="mf">4.</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
    8571084        <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Type&#39;</span><span class="p">]:</span>           
    8581085            <span class="n">cos2T</span> <span class="o">=</span> <span class="mf">1.0</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">SQ</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Lam&#39;</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>           <span class="c">#cos(2theta)</span>
    8591086        <span class="k">else</span><span class="p">:</span>   <span class="c">#&#39;T&#39;</span>
    860             <span class="n">cos2T</span> <span class="o">=</span> <span class="mf">1.0</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">SQ</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">12</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>                       <span class="c">#cos(2theta)            </span>
     1087            <span class="n">cos2T</span> <span class="o">=</span> <span class="mf">1.0</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">SQ</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>                       <span class="c">#cos(2theta)            </span>
    8611088        <span class="k">if</span> <span class="s">&#39;SXC&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Type&#39;</span><span class="p">]:</span>
    8621089            <span class="n">AV</span> <span class="o">=</span> <span class="mf">7.9406e5</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">&#39;Vol&#39;</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    8631090            <span class="n">PL</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="mf">1.0</span><span class="o">-</span><span class="n">cos2T</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Lam&#39;</span><span class="p">]</span>
    8641091            <span class="n">P12</span> <span class="o">=</span> <span class="p">(</span><span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Cos2TM&#39;</span><span class="p">]</span><span class="o">+</span><span class="n">cos2T</span><span class="o">**</span><span class="mi">4</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Cos2TM&#39;</span><span class="p">]</span><span class="o">+</span><span class="n">cos2T</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
    865             <span class="n">PLZ</span> <span class="o">=</span> <span class="n">AV</span><span class="o">*</span><span class="n">P12</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Lam&#39;</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     1092            <span class="n">PLZ</span> <span class="o">=</span> <span class="n">AV</span><span class="o">*</span><span class="n">P12</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Lam&#39;</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    8661093        <span class="k">elif</span> <span class="s">&#39;SNT&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Type&#39;</span><span class="p">]:</span>
    8671094            <span class="n">AV</span> <span class="o">=</span> <span class="mf">1.e7</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">&#39;Vol&#39;</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    8681095            <span class="n">PL</span> <span class="o">=</span> <span class="n">SQ</span>
    869             <span class="n">PLZ</span> <span class="o">=</span> <span class="n">AV</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">12</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     1096            <span class="n">PLZ</span> <span class="o">=</span> <span class="n">AV</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    8701097        <span class="k">elif</span> <span class="s">&#39;SNC&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Type&#39;</span><span class="p">]:</span>
    8711098            <span class="n">AV</span> <span class="o">=</span> <span class="mf">1.e7</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">&#39;Vol&#39;</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     
    8791106                <span class="n">PLZ</span> <span class="o">*=</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Tbar&#39;</span><span class="p">]</span>
    8801107            <span class="k">else</span><span class="p">:</span> <span class="c">#&#39;T&#39;</span>
    881                 <span class="n">PLZ</span> <span class="o">*=</span> <span class="n">ref</span><span class="p">[</span><span class="mi">13</span><span class="p">]</span>      <span class="c">#t-bar</span>
     1108                <span class="n">PLZ</span> <span class="o">*=</span> <span class="n">ref</span><span class="p">[</span><span class="mi">13</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>      <span class="c">#t-bar</span>
    8821109        <span class="k">if</span> <span class="s">&#39;Primary&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;EType&#39;</span><span class="p">]:</span>
    8831110            <span class="n">PLZ</span> <span class="o">*=</span> <span class="mf">1.5</span>
     
    9101137
    9111138        <span class="k">if</span> <span class="s">&#39;Primary&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;EType&#39;</span><span class="p">]</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Ep&#39;</span> <span class="ow">in</span> <span class="n">varyList</span><span class="p">:</span>
    912             <span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Ep&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span><span class="o">*</span><span class="n">PLZ</span><span class="o">*</span><span class="n">PF3</span>
     1139            <span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Ep&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">PLZ</span><span class="o">*</span><span class="n">PF3</span>
    9131140        <span class="k">if</span> <span class="s">&#39;II&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;EType&#39;</span><span class="p">]</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Es&#39;</span> <span class="ow">in</span> <span class="n">varyList</span><span class="p">:</span>
    914             <span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Es&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span><span class="o">*</span><span class="n">PLZ</span><span class="o">*</span><span class="n">PF3</span><span class="o">*</span><span class="p">(</span><span class="n">PSIG</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Es&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">3</span>
     1141            <span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Es&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">PLZ</span><span class="o">*</span><span class="n">PF3</span><span class="o">*</span><span class="p">(</span><span class="n">PSIG</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Es&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">3</span>
    9151142        <span class="k">if</span> <span class="s">&#39;I&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;EType&#39;</span><span class="p">]</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Eg&#39;</span> <span class="ow">in</span> <span class="n">varyList</span><span class="p">:</span>
    916             <span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Eg&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span><span class="o">*</span><span class="n">PLZ</span><span class="o">*</span><span class="n">PF3</span><span class="o">*</span><span class="p">(</span><span class="n">PSIG</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Eg&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">3</span><span class="o">*</span><span class="n">PL</span><span class="o">**</span><span class="mi">2</span>
     1143            <span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Eg&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">PLZ</span><span class="o">*</span><span class="n">PF3</span><span class="o">*</span><span class="p">(</span><span class="n">PSIG</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Eg&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">3</span><span class="o">*</span><span class="n">PL</span><span class="o">**</span><span class="mi">2</span>
    9171144               
    9181145    <span class="k">return</span> <span class="mf">1.</span><span class="o">/</span><span class="n">extCor</span><span class="p">,</span><span class="n">dervDict</span>
     
    9381165            <span class="n">key</span> <span class="o">=</span> <span class="n">keys</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="s">&#39;::&#39;</span><span class="o">+</span><span class="n">Ddict</span><span class="p">[</span><span class="n">keys</span><span class="p">[</span><span class="mi">2</span><span class="p">]]</span>       <span class="c">#key is e.g. &#39;0::A0&#39;</span>
    9391166            <span class="n">parm</span> <span class="o">=</span> <span class="n">keys</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="s">&#39;::&#39;</span><span class="o">+</span><span class="n">keys</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>             <span class="c">#parm is e.g. &#39;0::D11&#39;</span>
    940             <span class="n">newCellDict</span><span class="p">[</span><span class="n">parm</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">key</span><span class="p">,</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">parmDict</span><span class="p">[</span><span class="n">item</span><span class="p">]]</span>
     1167            <span class="n">newCellDict</span><span class="p">[</span><span class="n">parm</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">key</span><span class="p">,</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">parmDict</span><span class="p">[</span><span class="n">item</span><span class="p">]]</span>
    9411168    <span class="k">return</span> <span class="n">newCellDict</span>          <span class="c"># is e.g. {&#39;0::D11&#39;:A0-D11}</span>
    9421169    </div>
     
    9581185    <span class="k">return</span> <span class="n">newAtomDict</span>
    9591186    </div>
    960 <div class="viewcode-block" id="SHTXcal"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SHTXcal">[docs]</a><span class="k">def</span> <span class="nf">SHTXcal</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1187<div class="viewcode-block" id="SHTXcal"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SHTXcal">[docs]</a><span class="k">def</span> <span class="nf">SHTXcal</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    9611188    <span class="s">&#39;Spherical harmonics texture&#39;</span>
    9621189    <span class="n">IFCoup</span> <span class="o">=</span> <span class="s">&#39;Bragg&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;instType&#39;</span><span class="p">]</span>
     
    9641191        <span class="n">tth</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">]</span>
    9651192    <span class="k">else</span><span class="p">:</span>
    966         <span class="n">tth</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span>
     1193        <span class="n">tth</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    9671194    <span class="n">odfCor</span> <span class="o">=</span> <span class="mf">1.0</span>
    9681195    <span class="n">H</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
     
    9811208    <span class="k">return</span> <span class="n">odfCor</span>
    9821209    </div>
    983 <div class="viewcode-block" id="SHTXcalDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SHTXcalDerv">[docs]</a><span class="k">def</span> <span class="nf">SHTXcalDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1210<div class="viewcode-block" id="SHTXcalDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SHTXcalDerv">[docs]</a><span class="k">def</span> <span class="nf">SHTXcalDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    9841211    <span class="s">&#39;Spherical harmonics texture derivatives&#39;</span>
    9851212    <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    9861213        <span class="n">tth</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">]</span>
    9871214    <span class="k">else</span><span class="p">:</span>
    988         <span class="n">tth</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span>
     1215        <span class="n">tth</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    9891216    <span class="n">FORPI</span> <span class="o">=</span> <span class="mf">4.0</span><span class="o">*</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    9901217    <span class="n">IFCoup</span> <span class="o">=</span> <span class="s">&#39;Bragg&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;instType&#39;</span><span class="p">]</span>
     
    10101237    <span class="k">return</span> <span class="n">odfCor</span><span class="p">,</span><span class="n">dFdODF</span><span class="p">,</span><span class="n">dFdSA</span>
    10111238    </div>
    1012 <div class="viewcode-block" id="SHPOcal"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SHPOcal">[docs]</a><span class="k">def</span> <span class="nf">SHPOcal</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1239<div class="viewcode-block" id="SHPOcal"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SHPOcal">[docs]</a><span class="k">def</span> <span class="nf">SHPOcal</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    10131240    <span class="s">&#39;spherical harmonics preferred orientation (cylindrical symmetry only)&#39;</span>
    10141241    <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    10151242        <span class="n">tth</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">]</span>
    10161243    <span class="k">else</span><span class="p">:</span>
    1017         <span class="n">tth</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span>
     1244        <span class="n">tth</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    10181245    <span class="n">odfCor</span> <span class="o">=</span> <span class="mf">1.0</span>
    10191246    <span class="n">H</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
     
    10351262    <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">squeeze</span><span class="p">(</span><span class="n">odfCor</span><span class="p">)</span>
    10361263    </div>
    1037 <div class="viewcode-block" id="SHPOcalDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SHPOcalDerv">[docs]</a><span class="k">def</span> <span class="nf">SHPOcalDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1264<div class="viewcode-block" id="SHPOcalDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.SHPOcalDerv">[docs]</a><span class="k">def</span> <span class="nf">SHPOcalDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    10381265    <span class="s">&#39;spherical harmonics preferred orientation derivatives (cylindrical symmetry only)&#39;</span>
    10391266    <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    10401267        <span class="n">tth</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">]</span>
    10411268    <span class="k">else</span><span class="p">:</span>
    1042         <span class="n">tth</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span>
     1269        <span class="n">tth</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    10431270    <span class="n">FORPI</span> <span class="o">=</span> <span class="mf">12.5663706143592</span>
    10441271    <span class="n">odfCor</span> <span class="o">=</span> <span class="mf">1.0</span>
     
    10631290    <span class="k">return</span> <span class="n">odfCor</span><span class="p">,</span><span class="n">dFdODF</span>
    10641291    </div>
    1065 <div class="viewcode-block" id="GetPrefOri"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetPrefOri">[docs]</a><span class="k">def</span> <span class="nf">GetPrefOri</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1292<div class="viewcode-block" id="GetPrefOri"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetPrefOri">[docs]</a><span class="k">def</span> <span class="nf">GetPrefOri</span><span class="p">(</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    10661293    <span class="s">&#39;March-Dollase preferred orientation correction&#39;</span>
    10671294    <span class="n">POcorr</span> <span class="o">=</span> <span class="mf">1.0</span>
     
    10771304    <span class="k">return</span> <span class="n">POcorr</span>
    10781305    </div>
    1079 <div class="viewcode-block" id="GetPrefOriDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetPrefOriDerv">[docs]</a><span class="k">def</span> <span class="nf">GetPrefOriDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1306<div class="viewcode-block" id="GetPrefOriDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetPrefOriDerv">[docs]</a><span class="k">def</span> <span class="nf">GetPrefOriDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    10801307    <span class="s">&#39;Needs a doc string&#39;</span>
    10811308    <span class="n">POcorr</span> <span class="o">=</span> <span class="mf">1.0</span>
     
    10951322    <span class="k">else</span><span class="p">:</span>   <span class="c">#spherical harmonics</span>
    10961323        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SHord&#39;</span><span class="p">]:</span>
    1097             <span class="n">POcorr</span><span class="p">,</span><span class="n">POderv</span> <span class="o">=</span> <span class="n">SHPOcalDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1324            <span class="n">POcorr</span><span class="p">,</span><span class="n">POderv</span> <span class="o">=</span> <span class="n">SHPOcalDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    10981325    <span class="k">return</span> <span class="n">POcorr</span><span class="p">,</span><span class="n">POderv</span>
    10991326    </div>
    1100 <div class="viewcode-block" id="GetAbsorb"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetAbsorb">[docs]</a><span class="k">def</span> <span class="nf">GetAbsorb</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1327<div class="viewcode-block" id="GetAbsorb"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetAbsorb">[docs]</a><span class="k">def</span> <span class="nf">GetAbsorb</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    11011328    <span class="s">&#39;Needs a doc string&#39;</span>
    11021329    <span class="k">if</span> <span class="s">&#39;Debye&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;instType&#39;</span><span class="p">]:</span>
    11031330        <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    1104             <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">Absorb</span><span class="p">(</span><span class="s">&#39;Cylinder&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
     1331            <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">Absorb</span><span class="p">(</span><span class="s">&#39;Cylinder&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    11051332        <span class="k">else</span><span class="p">:</span>
    1106             <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">Absorb</span><span class="p">(</span><span class="s">&#39;Cylinder&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
     1333            <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">Absorb</span><span class="p">(</span><span class="s">&#39;Cylinder&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    11071334    <span class="k">else</span><span class="p">:</span>
    1108         <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">SurfaceRough</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;SurfRoughA&#39;</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;SurfRoughB&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">])</span>
    1109     </div>
    1110 <div class="viewcode-block" id="GetAbsorbDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetAbsorbDerv">[docs]</a><span class="k">def</span> <span class="nf">GetAbsorbDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1335        <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">SurfaceRough</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;SurfRoughA&#39;</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;SurfRoughB&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
     1336    </div>
     1337<div class="viewcode-block" id="GetAbsorbDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetAbsorbDerv">[docs]</a><span class="k">def</span> <span class="nf">GetAbsorbDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    11111338    <span class="s">&#39;Needs a doc string&#39;</span>
    11121339    <span class="k">if</span> <span class="s">&#39;Debye&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;instType&#39;</span><span class="p">]:</span>
    11131340        <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    1114             <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">AbsorbDerv</span><span class="p">(</span><span class="s">&#39;Cylinder&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
     1341            <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">AbsorbDerv</span><span class="p">(</span><span class="s">&#39;Cylinder&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    11151342        <span class="k">else</span><span class="p">:</span>
    1116             <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">AbsorbDerv</span><span class="p">(</span><span class="s">&#39;Cylinder&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
     1343            <span class="k">return</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">AbsorbDerv</span><span class="p">(</span><span class="s">&#39;Cylinder&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
    11171344    <span class="k">else</span><span class="p">:</span>
    1118         <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">SurfaceRoughDerv</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;SurfRoughA&#39;</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;SurfRoughB&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]))</span>
     1345        <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">SurfaceRoughDerv</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;SurfRoughA&#39;</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;SurfRoughB&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]))</span>
    11191346        </div>
    1120 <div class="viewcode-block" id="GetPwdrExt"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetPwdrExt">[docs]</a><span class="k">def</span> <span class="nf">GetPwdrExt</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1347<div class="viewcode-block" id="GetPwdrExt"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetPwdrExt">[docs]</a><span class="k">def</span> <span class="nf">GetPwdrExt</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    11211348    <span class="s">&#39;Needs a doc string&#39;</span>
    11221349    <span class="n">coef</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="o">-</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">0.25</span><span class="p">,</span><span class="o">-</span><span class="mf">0.10416667</span><span class="p">,</span><span class="mf">0.036458333</span><span class="p">,</span><span class="o">-</span><span class="mf">0.0109375</span><span class="p">,</span><span class="mf">2.8497409E-3</span><span class="p">])</span>
     
    11241351    <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    11251352        <span class="n">sth2</span> <span class="o">=</span> <span class="n">sind</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span>
    1126         <span class="n">wave</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="p">]</span>
     1353        <span class="n">wave</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    11271354    <span class="k">else</span><span class="p">:</span>   <span class="c">#&#39;C&#39;W</span>
    1128         <span class="n">sth2</span> <span class="o">=</span> <span class="n">sind</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span>
     1355        <span class="n">sth2</span> <span class="o">=</span> <span class="n">sind</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span>
    11291356        <span class="n">wave</span> <span class="o">=</span> <span class="n">parmDict</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Lam&#39;</span><span class="p">,</span><span class="n">parmDict</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Lam1&#39;</span><span class="p">,</span><span class="mf">1.0</span><span class="p">))</span>
    11301357    <span class="n">c2th</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">-</span><span class="mf">2.0</span><span class="o">*</span><span class="n">sth2</span>
    1131     <span class="n">flv2</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="p">(</span><span class="n">wave</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">&#39;Vol&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span>
     1358    <span class="n">flv2</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="p">(</span><span class="n">wave</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">&#39;Vol&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span>
    11321359    <span class="k">if</span> <span class="s">&#39;X&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    11331360        <span class="n">flv2</span> <span class="o">*=</span> <span class="mf">0.079411</span><span class="o">*</span><span class="p">(</span><span class="mf">1.0</span><span class="o">+</span><span class="n">c2th</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="mf">2.0</span>
     
    11451372    <span class="k">return</span> <span class="n">exb</span><span class="o">*</span><span class="n">sth2</span><span class="o">+</span><span class="n">exl</span><span class="o">*</span><span class="p">(</span><span class="mf">1.</span><span class="o">-</span><span class="n">sth2</span><span class="p">)</span>
    11461373    </div>
    1147 <div class="viewcode-block" id="GetPwdrExtDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetPwdrExtDerv">[docs]</a><span class="k">def</span> <span class="nf">GetPwdrExtDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1374<div class="viewcode-block" id="GetPwdrExtDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetPwdrExtDerv">[docs]</a><span class="k">def</span> <span class="nf">GetPwdrExtDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    11481375    <span class="s">&#39;Needs a doc string&#39;</span>
    11491376    <span class="n">delt</span> <span class="o">=</span> <span class="mf">0.001</span>
    11501377    <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Extinction&#39;</span><span class="p">]</span> <span class="o">+=</span> <span class="n">delt</span>
    1151     <span class="n">plus</span> <span class="o">=</span> <span class="n">GetPwdrExt</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1378    <span class="n">plus</span> <span class="o">=</span> <span class="n">GetPwdrExt</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    11521379    <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Extinction&#39;</span><span class="p">]</span> <span class="o">-=</span> <span class="mf">2.</span><span class="o">*</span><span class="n">delt</span>
    1153     <span class="n">minus</span> <span class="o">=</span> <span class="n">GetPwdrExt</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1380    <span class="n">minus</span> <span class="o">=</span> <span class="n">GetPwdrExt</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    11541381    <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Extinction&#39;</span><span class="p">]</span> <span class="o">+=</span> <span class="n">delt</span>
    11551382    <span class="k">return</span> <span class="p">(</span><span class="n">plus</span><span class="o">-</span><span class="n">minus</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">2.</span><span class="o">*</span><span class="n">delt</span><span class="p">)</span>   
    11561383    </div>
    1157 <div class="viewcode-block" id="GetIntensityCorr"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetIntensityCorr">[docs]</a><span class="k">def</span> <span class="nf">GetIntensityCorr</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1384<div class="viewcode-block" id="GetIntensityCorr"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetIntensityCorr">[docs]</a><span class="k">def</span> <span class="nf">GetIntensityCorr</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    11581385    <span class="s">&#39;Needs a doc string&#39;</span>    <span class="c">#need powder extinction!</span>
    1159     <span class="n">Icorr</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>               <span class="c">#scale*multiplicity</span>
     1386    <span class="n">Icorr</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">3</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>               <span class="c">#scale*multiplicity</span>
    11601387    <span class="k">if</span> <span class="s">&#39;X&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Type&#39;</span><span class="p">]:</span>
    1161         <span class="n">Icorr</span> <span class="o">*=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">Polarization</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Polariz.&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Azimuth&#39;</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
     1388        <span class="n">Icorr</span> <span class="o">*=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">Polarization</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Polariz.&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Azimuth&#39;</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
    11621389    <span class="n">POcorr</span> <span class="o">=</span> <span class="mf">1.0</span>
    11631390    <span class="k">if</span> <span class="n">pfx</span><span class="o">+</span><span class="s">&#39;SHorder&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">:</span>                 <span class="c">#generalized spherical harmonics texture</span>
    1164         <span class="n">POcorr</span> <span class="o">=</span> <span class="n">SHTXcal</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1391        <span class="n">POcorr</span> <span class="o">=</span> <span class="n">SHTXcal</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    11651392    <span class="k">elif</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;poType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;MD&#39;</span><span class="p">:</span>         <span class="c">#March-Dollase</span>
    1166         <span class="n">POcorr</span> <span class="o">=</span> <span class="n">GetPrefOri</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1393        <span class="n">POcorr</span> <span class="o">=</span> <span class="n">GetPrefOri</span><span class="p">(</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    11671394    <span class="k">elif</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SHord&#39;</span><span class="p">]:</span>                <span class="c">#cylindrical spherical harmonics</span>
    1168         <span class="n">POcorr</span> <span class="o">=</span> <span class="n">SHPOcal</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1395        <span class="n">POcorr</span> <span class="o">=</span> <span class="n">SHPOcal</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    11691396    <span class="n">Icorr</span> <span class="o">*=</span> <span class="n">POcorr</span>
    11701397    <span class="n">AbsCorr</span> <span class="o">=</span> <span class="mf">1.0</span>
    1171     <span class="n">AbsCorr</span> <span class="o">=</span> <span class="n">GetAbsorb</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1398    <span class="n">AbsCorr</span> <span class="o">=</span> <span class="n">GetAbsorb</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    11721399    <span class="n">Icorr</span> <span class="o">*=</span> <span class="n">AbsCorr</span>
    1173     <span class="n">ExtCorr</span> <span class="o">=</span> <span class="n">GetPwdrExt</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1400    <span class="n">ExtCorr</span> <span class="o">=</span> <span class="n">GetPwdrExt</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    11741401    <span class="n">Icorr</span> <span class="o">*=</span> <span class="n">ExtCorr</span>
    11751402    <span class="k">return</span> <span class="n">Icorr</span><span class="p">,</span><span class="n">POcorr</span><span class="p">,</span><span class="n">AbsCorr</span><span class="p">,</span><span class="n">ExtCorr</span>
    11761403    </div>
    1177 <div class="viewcode-block" id="GetIntensityDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetIntensityDerv">[docs]</a><span class="k">def</span> <span class="nf">GetIntensityDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1404<div class="viewcode-block" id="GetIntensityDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetIntensityDerv">[docs]</a><span class="k">def</span> <span class="nf">GetIntensityDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    11781405    <span class="s">&#39;Needs a doc string&#39;</span>    <span class="c">#need powder extinction derivs!</span>
    11791406    <span class="n">dIdsh</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span>
    11801407    <span class="n">dIdsp</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span>
    11811408    <span class="k">if</span> <span class="s">&#39;X&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Type&#39;</span><span class="p">]:</span>
    1182         <span class="n">pola</span><span class="p">,</span><span class="n">dIdPola</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">Polarization</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Polariz.&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Azimuth&#39;</span><span class="p">])</span>
     1409        <span class="n">pola</span><span class="p">,</span><span class="n">dIdPola</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">Polarization</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Polariz.&#39;</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Azimuth&#39;</span><span class="p">])</span>
    11831410        <span class="n">dIdPola</span> <span class="o">/=</span> <span class="n">pola</span>
    11841411    <span class="k">else</span><span class="p">:</span>       <span class="c">#&#39;N&#39;</span>
     
    11881415    <span class="n">dIdPO</span> <span class="o">=</span> <span class="p">{}</span>
    11891416    <span class="k">if</span> <span class="n">pfx</span><span class="o">+</span><span class="s">&#39;SHorder&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">:</span>
    1190         <span class="n">odfCor</span><span class="p">,</span><span class="n">dFdODF</span><span class="p">,</span><span class="n">dFdSA</span> <span class="o">=</span> <span class="n">SHTXcalDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1417        <span class="n">odfCor</span><span class="p">,</span><span class="n">dFdODF</span><span class="p">,</span><span class="n">dFdSA</span> <span class="o">=</span> <span class="n">SHTXcalDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    11911418        <span class="k">for</span> <span class="n">iSH</span> <span class="ow">in</span> <span class="n">dFdODF</span><span class="p">:</span>
    11921419            <span class="n">dFdODF</span><span class="p">[</span><span class="n">iSH</span><span class="p">]</span> <span class="o">/=</span> <span class="n">odfCor</span>
     
    11941421            <span class="n">dFdSA</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">/=</span> <span class="n">odfCor</span>
    11951422    <span class="k">elif</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;poType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;MD&#39;</span> <span class="ow">or</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SHord&#39;</span><span class="p">]:</span>
    1196         <span class="n">POcorr</span><span class="p">,</span><span class="n">dIdPO</span> <span class="o">=</span> <span class="n">GetPrefOriDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>       
     1423        <span class="n">POcorr</span><span class="p">,</span><span class="n">dIdPO</span> <span class="o">=</span> <span class="n">GetPrefOriDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>       
    11971424        <span class="k">for</span> <span class="n">iPO</span> <span class="ow">in</span> <span class="n">dIdPO</span><span class="p">:</span>
    11981425            <span class="n">dIdPO</span><span class="p">[</span><span class="n">iPO</span><span class="p">]</span> <span class="o">/=</span> <span class="n">POcorr</span>
    11991426    <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Type&#39;</span><span class="p">]:</span>
    1200         <span class="n">dFdAb</span> <span class="o">=</span> <span class="n">GetAbsorbDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">16</span><span class="p">]</span> <span class="c">#wave/abs corr</span>
    1201         <span class="n">dFdEx</span> <span class="o">=</span> <span class="n">GetPwdrExtDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">17</span><span class="p">]</span>    <span class="c">#/ext corr</span>
     1427        <span class="n">dFdAb</span> <span class="o">=</span> <span class="n">GetAbsorbDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">16</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="c">#wave/abs corr</span>
     1428        <span class="n">dFdEx</span> <span class="o">=</span> <span class="n">GetPwdrExtDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">17</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>    <span class="c">#/ext corr</span>
    12021429    <span class="k">else</span><span class="p">:</span>
    1203         <span class="n">dFdAb</span> <span class="o">=</span> <span class="n">GetAbsorbDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="p">]</span> <span class="c">#wave/abs corr</span>
    1204         <span class="n">dFdEx</span> <span class="o">=</span> <span class="n">GetPwdrExtDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="p">]</span>    <span class="c">#/ext corr        </span>
     1430        <span class="n">dFdAb</span> <span class="o">=</span> <span class="n">GetAbsorbDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="c">#wave/abs corr</span>
     1431        <span class="n">dFdEx</span> <span class="o">=</span> <span class="n">GetPwdrExtDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>    <span class="c">#/ext corr        </span>
    12051432    <span class="k">return</span> <span class="n">dIdsh</span><span class="p">,</span><span class="n">dIdsp</span><span class="p">,</span><span class="n">dIdPola</span><span class="p">,</span><span class="n">dIdPO</span><span class="p">,</span><span class="n">dFdODF</span><span class="p">,</span><span class="n">dFdSA</span><span class="p">,</span><span class="n">dFdAb</span><span class="p">,</span><span class="n">dFdEx</span>
    12061433        </div>
    1207 <div class="viewcode-block" id="GetSampleSigGam"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetSampleSigGam">[docs]</a><span class="k">def</span> <span class="nf">GetSampleSigGam</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1434<div class="viewcode-block" id="GetSampleSigGam"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetSampleSigGam">[docs]</a><span class="k">def</span> <span class="nf">GetSampleSigGam</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    12081435    <span class="s">&#39;Needs a doc string&#39;</span>
    12091436    <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>     <span class="c">#All checked &amp; OK</span>
    1210         <span class="n">costh</span> <span class="o">=</span> <span class="n">cosd</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span>
     1437        <span class="n">costh</span> <span class="o">=</span> <span class="n">cosd</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span>
    12111438        <span class="c">#crystallite size</span>
    12121439        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SizeType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;isotropic&#39;</span><span class="p">:</span>
     
    12251452        <span class="c">#microstrain                </span>
    12261453        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;MustrainType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;isotropic&#39;</span><span class="p">:</span>
    1227             <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
     1454            <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    12281455        <span class="k">elif</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;MustrainType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;uniaxial&#39;</span><span class="p">:</span>
    12291456            <span class="n">H</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">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">])</span>
     
    12321459            <span class="n">Si</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span>
    12331460            <span class="n">Sa</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;a&#39;</span><span class="p">]</span>
    1234             <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">Si</span><span class="o">*</span><span class="n">Sa</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">pi</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">Si</span><span class="o">*</span><span class="n">cosP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">Sa</span><span class="o">*</span><span class="n">sinP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">))</span>
     1461            <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">Si</span><span class="o">*</span><span class="n">Sa</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">pi</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">Si</span><span class="o">*</span><span class="n">cosP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">Sa</span><span class="o">*</span><span class="n">sinP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">))</span>
    12351462        <span class="k">else</span><span class="p">:</span>       <span class="c">#generalized - P.W. Stephens model</span>
    12361463            <span class="n">Strms</span> <span class="o">=</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">MustrainCoeff</span><span class="p">(</span><span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGData</span><span class="p">)</span>
     
    12381465            <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">strm</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Strms</span><span class="p">):</span>
    12391466                <span class="n">Sum</span> <span class="o">+=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain:&#39;</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="o">*</span><span class="n">strm</span>
    1240             <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</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">Sum</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
     1467            <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</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">Sum</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    12411468    <span class="k">elif</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>       <span class="c">#All checked &amp; OK</span>
    12421469        <span class="c">#crystallite size</span>
    12431470        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SizeType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;isotropic&#39;</span><span class="p">:</span>    <span class="c">#OK</span>
    1244             <span class="n">Sgam</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span>
     1471            <span class="n">Sgam</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span>
    12451472        <span class="k">elif</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SizeType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;uniaxial&#39;</span><span class="p">:</span>   <span class="c">#OK</span>
    12461473            <span class="n">H</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">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">])</span>
    12471474            <span class="n">P</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">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SizeAxis&#39;</span><span class="p">])</span>
    12481475            <span class="n">cosP</span><span class="p">,</span><span class="n">sinP</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">CosSinAngle</span><span class="p">(</span><span class="n">H</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">G</span><span class="p">)</span>
    1249             <span class="n">Sgam</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;a&#39;</span><span class="p">])</span>
     1476            <span class="n">Sgam</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;a&#39;</span><span class="p">])</span>
    12501477            <span class="n">Sgam</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">sinP</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;a&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">cosP</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
    12511478        <span class="k">else</span><span class="p">:</span>           <span class="c">#ellipsoidal crystallites   #OK</span>
     
    12531480            <span class="n">H</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">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">])</span>
    12541481            <span class="n">lenR</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">ellipseSize</span><span class="p">(</span><span class="n">H</span><span class="p">,</span><span class="n">Sij</span><span class="p">,</span><span class="n">GB</span><span class="p">)</span>
    1255             <span class="n">Sgam</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">lenR</span>
     1482            <span class="n">Sgam</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">lenR</span>
    12561483        <span class="c">#microstrain                </span>
    12571484        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;MustrainType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;isotropic&#39;</span><span class="p">:</span>    <span class="c">#OK</span>
    1258             <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span>
     1485            <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span>
    12591486        <span class="k">elif</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;MustrainType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;uniaxial&#39;</span><span class="p">:</span>   <span class="c">#OK</span>
    12601487            <span class="n">H</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">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">])</span>
     
    12631490            <span class="n">Si</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span>
    12641491            <span class="n">Sa</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;a&#39;</span><span class="p">]</span>
    1265             <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">*</span><span class="n">Si</span><span class="o">*</span><span class="n">Sa</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">Si</span><span class="o">*</span><span class="n">cosP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">Sa</span><span class="o">*</span><span class="n">sinP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
     1492            <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">Si</span><span class="o">*</span><span class="n">Sa</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">Si</span><span class="o">*</span><span class="n">cosP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">Sa</span><span class="o">*</span><span class="n">sinP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
    12661493        <span class="k">else</span><span class="p">:</span>       <span class="c">#generalized - P.W. Stephens model  OK</span>
    12671494            <span class="n">Strms</span> <span class="o">=</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">MustrainCoeff</span><span class="p">(</span><span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGData</span><span class="p">)</span>
     
    12691496            <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">strm</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Strms</span><span class="p">):</span>
    12701497                <span class="n">Sum</span> <span class="o">+=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain:&#39;</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="o">*</span><span class="n">strm</span>
    1271             <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</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">Sum</span><span class="p">)</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">3</span>
     1498            <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</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">Sum</span><span class="p">)</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">3</span>
    12721499           
    12731500    <span class="n">gam</span> <span class="o">=</span> <span class="n">Sgam</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;mx&#39;</span><span class="p">]</span><span class="o">+</span><span class="n">Mgam</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;mx&#39;</span><span class="p">]</span>
     
    12761503    <span class="k">return</span> <span class="n">sig</span><span class="p">,</span><span class="n">gam</span>
    12771504        </div>
    1278 <div class="viewcode-block" id="GetSampleSigGamDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetSampleSigGamDerv">[docs]</a><span class="k">def</span> <span class="nf">GetSampleSigGamDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1505<div class="viewcode-block" id="GetSampleSigGamDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetSampleSigGamDerv">[docs]</a><span class="k">def</span> <span class="nf">GetSampleSigGamDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    12791506    <span class="s">&#39;Needs a doc string&#39;</span>
    12801507    <span class="n">gamDict</span> <span class="o">=</span> <span class="p">{}</span>
    12811508    <span class="n">sigDict</span> <span class="o">=</span> <span class="p">{}</span>
    12821509    <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>         <span class="c">#All checked &amp; OK</span>
    1283         <span class="n">costh</span> <span class="o">=</span> <span class="n">cosd</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span>
    1284         <span class="n">tanth</span> <span class="o">=</span> <span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span>
     1510        <span class="n">costh</span> <span class="o">=</span> <span class="n">cosd</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span>
     1511        <span class="n">tanth</span> <span class="o">=</span> <span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span>
    12851512        <span class="c">#crystallite size derivatives</span>
    12861513        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SizeType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;isotropic&#39;</span><span class="p">:</span>
     
    13171544        <span class="c">#microstrain derivatives                </span>
    13181545        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;MustrainType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;isotropic&#39;</span><span class="p">:</span>
    1319             <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
     1546            <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    13201547            <span class="n">gamDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span> <span class="o">=</span>  <span class="mf">0.018</span><span class="o">*</span><span class="n">tanth</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;mx&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    13211548            <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span> <span class="o">=</span>  <span class="mf">0.036</span><span class="o">*</span><span class="n">Mgam</span><span class="o">*</span><span class="n">tanth</span><span class="o">*</span><span class="p">(</span><span class="mf">1.</span><span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;mx&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">ateln2</span><span class="p">)</span>       
     
    13361563            <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;a&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="p">(</span><span class="n">Mgam</span><span class="o">/</span><span class="n">Sa</span><span class="o">+</span><span class="n">dsa</span><span class="p">)</span><span class="o">*</span><span class="n">Mgam</span><span class="o">*</span><span class="p">(</span><span class="mf">1.</span><span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;mx&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">ateln2</span>       
    13371564        <span class="k">else</span><span class="p">:</span>       <span class="c">#generalized - P.W. Stephens model</span>
    1338             <span class="n">const</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">tanth</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
     1565            <span class="n">const</span> <span class="o">=</span> <span class="mf">0.018</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">tanth</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    13391566            <span class="n">Strms</span> <span class="o">=</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">MustrainCoeff</span><span class="p">(</span><span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGData</span><span class="p">)</span>
    13401567            <span class="n">Sum</span> <span class="o">=</span> <span class="mi">0</span>
     
    13511578    <span class="k">else</span><span class="p">:</span>   <span class="c">#&#39;T&#39;OF - All checked &amp; OK</span>
    13521579        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SizeType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;isotropic&#39;</span><span class="p">:</span>    <span class="c">#OK</span>
    1353             <span class="n">Sgam</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span>
     1580            <span class="n">Sgam</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span>
    13541581            <span class="n">gamDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="n">Sgam</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;mx&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span>
    13551582            <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">Sgam</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="p">(</span><span class="mf">1.</span><span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;mx&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">ateln2</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;i&#39;</span><span class="p">])</span>
    13561583        <span class="k">elif</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SizeType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;uniaxial&#39;</span><span class="p">:</span>   <span class="c">#OK</span>
    1357             <span class="n">const</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     1584            <span class="n">const</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    13581585            <span class="n">H</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">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">])</span>
    13591586            <span class="n">P</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">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;SizeAxis&#39;</span><span class="p">])</span>
     
    13711598            <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;a&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mf">2.</span><span class="o">*</span><span class="n">dsa</span><span class="o">*</span><span class="n">Sgam</span><span class="o">*</span><span class="p">(</span><span class="mf">1.</span><span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size;mx&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">ateln2</span>
    13721599        <span class="k">else</span><span class="p">:</span>           <span class="c">#OK  ellipsoidal crystallites </span>
    1373             <span class="n">const</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     1600            <span class="n">const</span> <span class="o">=</span> <span class="mf">1.e-4</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    13741601            <span class="n">Sij</span> <span class="o">=</span><span class="p">[</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Size:</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span> <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="mi">6</span><span class="p">)]</span>
    13751602            <span class="n">H</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">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">])</span>
     
    13841611        <span class="c">#microstrain derivatives                </span>
    13851612        <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;MustrainType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;isotropic&#39;</span><span class="p">:</span>
    1386             <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span>
    1387             <span class="n">gamDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span> <span class="o">=</span>  <span class="mf">1.e-6</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;mx&#39;</span><span class="p">]</span>   <span class="c">#OK</span>
     1613            <span class="n">Mgam</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span>
     1614            <span class="n">gamDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span> <span class="o">=</span>  <span class="mf">1.e-6</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;mx&#39;</span><span class="p">]</span>   <span class="c">#OK</span>
    13881615            <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span> <span class="o">=</span>  <span class="mf">2.</span><span class="o">*</span><span class="n">Mgam</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="p">(</span><span class="mf">1.</span><span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;mx&#39;</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="p">(</span><span class="n">ateln2</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">])</span>       
    13891616        <span class="k">elif</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;MustrainType&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&#39;uniaxial&#39;</span><span class="p">:</span>
     
    13931620            <span class="n">Si</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;i&#39;</span><span class="p">]</span>
    13941621            <span class="n">Sa</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Mustrain;a&#39;</span><span class="p">]</span>
    1395             <span class="n">gami</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">*</span><span class="n">Si</span><span class="o">*</span><span class="n">Sa</span>
     1622            <span class="n">gami</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">Si</span><span class="o">*</span><span class="n">Sa</span>
    13961623            <span class="n">sqtrm</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">Si</span><span class="o">*</span><span class="n">cosP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">Sa</span><span class="o">*</span><span class="n">sinP</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
    13971624            <span class="n">Mgam</span> <span class="o">=</span> <span class="n">gami</span><span class="o">/</span><span class="n">sqtrm</span>
     
    14051632            <span class="n">pwrs</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;MuPwrs&#39;</span><span class="p">]</span>
    14061633            <span class="n">Strms</span> <span class="o">=</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">MustrainCoeff</span><span class="p">(</span><span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGData</span><span class="p">)</span>
    1407             <span class="n">const</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">3</span>
     1634            <span class="n">const</span> <span class="o">=</span> <span class="mf">1.e-6</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">3</span>
    14081635            <span class="n">Sum</span> <span class="o">=</span> <span class="mi">0</span>
    14091636            <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">strm</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">Strms</span><span class="p">):</span>
     
    14201647    <span class="k">return</span> <span class="n">sigDict</span><span class="p">,</span><span class="n">gamDict</span>
    14211648        </div>
    1422 <div class="viewcode-block" id="GetReflPos"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetReflPos">[docs]</a><span class="k">def</span> <span class="nf">GetReflPos</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1649<div class="viewcode-block" id="GetReflPos"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetReflPos">[docs]</a><span class="k">def</span> <span class="nf">GetReflPos</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    14231650    <span class="s">&#39;Needs a doc string&#39;</span>
    1424     <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
    1425     <span class="n">dsq</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">G2lat</span><span class="o">.</span><span class="n">calc_rDsq2</span><span class="p">(</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">G</span><span class="p">)</span>
    1426     <span class="n">d</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">dsq</span><span class="p">)</span>
    1427 
    1428     <span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="o">=</span> <span class="n">d</span>
     1651    <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     1652        <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">m</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span>
     1653        <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">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;mV0&#39;</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;mV1&#39;</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;mV2&#39;</span><span class="p">]])</span>
     1654        <span class="n">d</span> <span class="o">=</span> <span class="mf">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_rDsqSS</span><span class="p">(</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">m</span><span class="p">]),</span><span class="n">A</span><span class="p">,</span><span class="n">vec</span><span class="p">))</span>
     1655    <span class="k">else</span><span class="p">:</span>
     1656        <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
     1657        <span class="n">d</span> <span class="o">=</span> <span class="mf">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">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">A</span><span class="p">))</span>
     1658    <span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">d</span>
    14291659    <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    14301660        <span class="n">pos</span> <span class="o">=</span> <span class="mf">2.0</span><span class="o">*</span><span class="n">asind</span><span class="p">(</span><span class="n">wave</span><span class="o">/</span><span class="p">(</span><span class="mf">2.0</span><span class="o">*</span><span class="n">d</span><span class="p">))</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Zero&#39;</span><span class="p">]</span>
     
    14401670    <span class="k">return</span> <span class="n">pos</span>
    14411671</div>
    1442 <div class="viewcode-block" id="GetReflPosDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetReflPosDerv">[docs]</a><span class="k">def</span> <span class="nf">GetReflPosDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1672<div class="viewcode-block" id="GetReflPosDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetReflPosDerv">[docs]</a><span class="k">def</span> <span class="nf">GetReflPosDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    14431673    <span class="s">&#39;Needs a doc string&#39;</span>
    14441674    <span class="n">dpr</span> <span class="o">=</span> <span class="mf">180.</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    1445     <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
    1446     <span class="n">dstsq</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">calc_rDsq</span><span class="p">(</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">A</span><span class="p">)</span>
     1675    <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     1676        <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">m</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span>
     1677        <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">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;mV0&#39;</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;mV1&#39;</span><span class="p">],</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;mV2&#39;</span><span class="p">]])</span>
     1678        <span class="n">dstsq</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">calc_rDsqSS</span><span class="p">(</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">m</span><span class="p">]),</span><span class="n">A</span><span class="p">,</span><span class="n">vec</span><span class="p">)</span>
     1679    <span class="k">else</span><span class="p">:</span>
     1680        <span class="n">m</span> <span class="o">=</span> <span class="mi">0</span>
     1681        <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>       
     1682        <span class="n">dstsq</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">calc_rDsq</span><span class="p">(</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">A</span><span class="p">)</span>
    14471683    <span class="n">dst</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">dstsq</span><span class="p">)</span>
    14481684    <span class="n">dsp</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">dst</span>
    14491685    <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    1450         <span class="n">pos</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Zero&#39;</span><span class="p">]</span>
     1686        <span class="n">pos</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Zero&#39;</span><span class="p">]</span>
    14511687        <span class="n">const</span> <span class="o">=</span> <span class="n">dpr</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="mf">1.0</span><span class="o">-</span><span class="n">wave</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">dstsq</span><span class="o">/</span><span class="mf">4.0</span><span class="p">)</span>
    14521688        <span class="n">dpdw</span> <span class="o">=</span> <span class="n">const</span><span class="o">*</span><span class="n">dst</span>
    1453         <span class="n">dpdA</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="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">,</span><span class="n">h</span><span class="o">*</span><span class="n">l</span><span class="p">,</span><span class="n">k</span><span class="o">*</span><span class="n">l</span><span class="p">])</span>
    1454         <span class="n">dpdA</span> <span class="o">*=</span> <span class="n">const</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="p">(</span><span class="mf">2.0</span><span class="o">*</span><span class="n">dst</span><span class="p">)</span>
     1689        <span class="n">dpdA</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="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">,</span><span class="n">h</span><span class="o">*</span><span class="n">l</span><span class="p">,</span><span class="n">k</span><span class="o">*</span><span class="n">l</span><span class="p">])</span><span class="o">*</span><span class="n">const</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="p">(</span><span class="mf">2.0</span><span class="o">*</span><span class="n">dst</span><span class="p">)</span>
    14551690        <span class="n">dpdZ</span> <span class="o">=</span> <span class="mf">1.0</span>
    1456         <span class="n">const</span> <span class="o">=</span> <span class="mf">9.e-2</span><span class="o">/</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Gonio. radius&#39;</span><span class="p">])</span>                  <span class="c">#shifts in microns</span>
     1691        <span class="n">dpdV</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="mf">2.</span><span class="o">*</span><span class="n">h</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">k</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">+</span><span class="n">l</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="mi">2</span><span class="o">*</span><span class="n">k</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="n">h</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">+</span><span class="n">l</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span>
     1692            <span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">+</span><span class="n">h</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">+</span><span class="n">k</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">5</span><span class="p">]])</span><span class="o">*</span><span class="n">m</span><span class="o">*</span><span class="n">const</span><span class="o">*</span><span class="n">wave</span><span class="o">/</span><span class="p">(</span><span class="mf">2.0</span><span class="o">*</span><span class="n">dst</span><span class="p">)</span>
     1693        <span class="n">shft</span> <span class="o">=</span> <span class="mf">9.e-2</span><span class="o">/</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Gonio. radius&#39;</span><span class="p">])</span>                  <span class="c">#shifts in microns</span>
    14571694        <span class="k">if</span> <span class="s">&#39;Bragg&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;instType&#39;</span><span class="p">]:</span>
    1458             <span class="n">dpdSh</span> <span class="o">=</span> <span class="o">-</span><span class="mf">4.</span><span class="o">*</span><span class="n">const</span><span class="o">*</span><span class="n">cosd</span><span class="p">(</span><span class="n">pos</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>
    1459             <span class="n">dpdTr</span> <span class="o">=</span> <span class="o">-</span><span class="n">const</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span><span class="o">*</span><span class="mf">100.0</span>
    1460             <span class="k">return</span> <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdw</span><span class="p">,</span><span class="n">dpdZ</span><span class="p">,</span><span class="n">dpdSh</span><span class="p">,</span><span class="n">dpdTr</span><span class="p">,</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span>
     1695            <span class="n">dpdSh</span> <span class="o">=</span> <span class="o">-</span><span class="mf">4.</span><span class="o">*</span><span class="n">shft</span><span class="o">*</span><span class="n">cosd</span><span class="p">(</span><span class="n">pos</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>
     1696            <span class="n">dpdTr</span> <span class="o">=</span> <span class="o">-</span><span class="n">shft</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span><span class="o">*</span><span class="mf">100.0</span>
     1697            <span class="k">return</span> <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdw</span><span class="p">,</span><span class="n">dpdZ</span><span class="p">,</span><span class="n">dpdSh</span><span class="p">,</span><span class="n">dpdTr</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="n">dpdV</span>
    14611698        <span class="k">else</span><span class="p">:</span>               <span class="c">#Debye-Scherrer - simple but maybe not right</span>
    1462             <span class="n">dpdXd</span> <span class="o">=</span> <span class="o">-</span><span class="n">const</span><span class="o">*</span><span class="n">cosd</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
    1463             <span class="n">dpdYd</span> <span class="o">=</span> <span class="o">-</span><span class="n">const</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
    1464             <span class="k">return</span> <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdw</span><span class="p">,</span><span class="n">dpdZ</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="n">dpdXd</span><span class="p">,</span><span class="n">dpdYd</span>
     1699            <span class="n">dpdXd</span> <span class="o">=</span> <span class="o">-</span><span class="n">shft</span><span class="o">*</span><span class="n">cosd</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
     1700            <span class="n">dpdYd</span> <span class="o">=</span> <span class="o">-</span><span class="n">shft</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">pos</span><span class="p">)</span>
     1701            <span class="k">return</span> <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdw</span><span class="p">,</span><span class="n">dpdZ</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="n">dpdXd</span><span class="p">,</span><span class="n">dpdYd</span><span class="p">,</span><span class="n">dpdV</span>
    14651702    <span class="k">elif</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    14661703        <span class="n">dpdA</span> <span class="o">=</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="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">,</span><span class="n">h</span><span class="o">*</span><span class="n">l</span><span class="p">,</span><span class="n">k</span><span class="o">*</span><span class="n">l</span><span class="p">])</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">dsp</span><span class="o">**</span><span class="mi">3</span><span class="o">/</span><span class="mf">2.</span>
     
    14691706        <span class="n">dpdDA</span> <span class="o">=</span> <span class="n">dsp</span><span class="o">**</span><span class="mi">2</span>
    14701707        <span class="n">dpdDB</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">dsp</span>
    1471         <span class="k">return</span> <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdZ</span><span class="p">,</span><span class="n">dpdDC</span><span class="p">,</span><span class="n">dpdDA</span><span class="p">,</span><span class="n">dpdDB</span>
     1708        <span class="n">dpdV</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="mf">2.</span><span class="o">*</span><span class="n">h</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">k</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">+</span><span class="n">l</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="mi">2</span><span class="o">*</span><span class="n">k</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">+</span><span class="n">h</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span><span class="o">+</span><span class="n">l</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span>
     1709            <span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">+</span><span class="n">h</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">+</span><span class="n">k</span><span class="o">*</span><span class="n">A</span><span class="p">[</span><span class="mi">5</span><span class="p">]])</span><span class="o">*</span><span class="n">m</span><span class="o">**</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">dsp</span><span class="o">**</span><span class="mi">3</span><span class="o">/</span><span class="mf">2.</span>
     1710        <span class="k">return</span> <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdZ</span><span class="p">,</span><span class="n">dpdDC</span><span class="p">,</span><span class="n">dpdDA</span><span class="p">,</span><span class="n">dpdDB</span><span class="p">,</span><span class="n">dpdV</span>
    14721711            </div>
    1473 <div class="viewcode-block" id="GetHStrainShift"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetHStrainShift">[docs]</a><span class="k">def</span> <span class="nf">GetHStrainShift</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1712<div class="viewcode-block" id="GetHStrainShift"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetHStrainShift">[docs]</a><span class="k">def</span> <span class="nf">GetHStrainShift</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    14741713    <span class="s">&#39;Needs a doc string&#39;</span>
    14751714    <span class="n">laue</span> <span class="o">=</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGLaue&#39;</span><span class="p">]</span>
     
    14781717    <span class="k">if</span> <span class="n">laue</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;m3&#39;</span><span class="p">,</span><span class="s">&#39;m3m&#39;</span><span class="p">]:</span>
    14791718        <span class="n">Dij</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D11&#39;</span><span class="p">]</span><span class="o">*</span><span class="p">(</span><span class="n">h</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">+</span> \
    1480             <span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;eA&#39;</span><span class="p">]</span><span class="o">*</span><span class="p">((</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">h</span><span class="o">*</span><span class="n">l</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">k</span><span class="o">*</span><span class="n">l</span><span class="p">)</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">h</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span>
     1719            <span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;eA&#39;</span><span class="p">]</span><span class="o">*</span><span class="p">((</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">h</span><span class="o">*</span><span class="n">l</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">k</span><span class="o">*</span><span class="n">l</span><span class="p">)</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">h</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span>
    14811720    <span class="k">elif</span> <span class="n">laue</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;6/m&#39;</span><span class="p">,</span><span class="s">&#39;6/mmm&#39;</span><span class="p">,</span><span class="s">&#39;3m1&#39;</span><span class="p">,</span><span class="s">&#39;31m&#39;</span><span class="p">,</span><span class="s">&#39;3&#39;</span><span class="p">]:</span>
    14821721        <span class="n">Dij</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D11&#39;</span><span class="p">]</span><span class="o">*</span><span class="p">(</span><span class="n">h</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">)</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D33&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span>
     
    14991738            <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D12&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D13&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">h</span><span class="o">*</span><span class="n">l</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D23&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">k</span><span class="o">*</span><span class="n">l</span>
    15001739    <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    1501         <span class="k">return</span> <span class="o">-</span><span class="mf">180.</span><span class="o">*</span><span class="n">Dij</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
     1740        <span class="k">return</span> <span class="o">-</span><span class="mf">180.</span><span class="o">*</span><span class="n">Dij</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    15021741    <span class="k">else</span><span class="p">:</span>
    1503         <span class="k">return</span> <span class="o">-</span><span class="n">Dij</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="mf">2.</span>
     1742        <span class="k">return</span> <span class="o">-</span><span class="n">Dij</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="mf">2.</span>
    15041743            </div>
    1505 <div class="viewcode-block" id="GetHStrainShiftDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetHStrainShiftDerv">[docs]</a><span class="k">def</span> <span class="nf">GetHStrainShiftDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1744<div class="viewcode-block" id="GetHStrainShiftDerv"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetHStrainShiftDerv">[docs]</a><span class="k">def</span> <span class="nf">GetHStrainShiftDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    15061745    <span class="s">&#39;Needs a doc string&#39;</span>
    15071746    <span class="n">laue</span> <span class="o">=</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGLaue&#39;</span><span class="p">]</span>
     
    15101749    <span class="k">if</span> <span class="n">laue</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;m3&#39;</span><span class="p">,</span><span class="s">&#39;m3m&#39;</span><span class="p">]:</span>
    15111750        <span class="n">dDijDict</span> <span class="o">=</span> <span class="p">{</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D11&#39;</span><span class="p">:</span><span class="n">h</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span>
    1512             <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;eA&#39;</span><span class="p">:</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="p">((</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">h</span><span class="o">*</span><span class="n">l</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">k</span><span class="o">*</span><span class="n">l</span><span class="p">)</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">h</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">}</span>
     1751            <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;eA&#39;</span><span class="p">:</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="p">((</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">h</span><span class="o">*</span><span class="n">l</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="p">(</span><span class="n">k</span><span class="o">*</span><span class="n">l</span><span class="p">)</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">h</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">}</span>
    15131752    <span class="k">elif</span> <span class="n">laue</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;6/m&#39;</span><span class="p">,</span><span class="s">&#39;6/mmm&#39;</span><span class="p">,</span><span class="s">&#39;3m1&#39;</span><span class="p">,</span><span class="s">&#39;31m&#39;</span><span class="p">,</span><span class="s">&#39;3&#39;</span><span class="p">]:</span>
    15141753        <span class="n">dDijDict</span> <span class="o">=</span> <span class="p">{</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D11&#39;</span><span class="p">:</span><span class="n">h</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">k</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span><span class="n">h</span><span class="o">*</span><span class="n">k</span><span class="p">,</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;D33&#39;</span><span class="p">:</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">}</span>
     
    15331772    <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    15341773        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">dDijDict</span><span class="p">:</span>
    1535             <span class="n">dDijDict</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">*=</span> <span class="o">-</span><span class="mf">180.0</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
     1774            <span class="n">dDijDict</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">*=</span> <span class="mf">180.0</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span>
    15361775    <span class="k">else</span><span class="p">:</span>
    15371776        <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">dDijDict</span><span class="p">:</span>
    1538             <span class="n">dDijDict</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">*=</span> <span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="mf">2.</span>
     1777            <span class="n">dDijDict</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">*=</span> <span class="o">-</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">3</span><span class="o">/</span><span class="mf">2.</span>
    15391778    <span class="k">return</span> <span class="n">dDijDict</span>
    15401779    </div>
     1780<span class="k">def</span> <span class="nf">GetDij</span><span class="p">(</span><span class="n">phfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1781    <span class="n">HSvals</span> <span class="o">=</span> <span class="p">[</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">name</span><span class="p">]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">HStrainNames</span><span class="p">(</span><span class="n">SGData</span><span class="p">)]</span>
     1782    <span class="k">return</span> <span class="n">G2spc</span><span class="o">.</span><span class="n">HStrainVals</span><span class="p">(</span><span class="n">HSvals</span><span class="p">,</span><span class="n">SGData</span><span class="p">)</span>
     1783               
    15411784<div class="viewcode-block" id="GetFobsSq"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.GetFobsSq">[docs]</a><span class="k">def</span> <span class="nf">GetFobsSq</span><span class="p">(</span><span class="n">Histograms</span><span class="p">,</span><span class="n">Phases</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">calcControls</span><span class="p">):</span>
    15421785    <span class="s">&#39;Needs a doc string&#39;</span>
     
    15661809            <span class="n">refLists</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Reflection Lists&#39;</span><span class="p">]</span>
    15671810            <span class="k">for</span> <span class="n">phase</span> <span class="ow">in</span> <span class="n">refLists</span><span class="p">:</span>
     1811                <span class="k">if</span> <span class="n">phase</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">Phases</span><span class="p">:</span>     <span class="c">#skips deleted or renamed phases silently!</span>
     1812                    <span class="k">continue</span>
    15681813                <span class="n">Phase</span> <span class="o">=</span> <span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">]</span>
     1814                <span class="n">im</span> <span class="o">=</span> <span class="mi">0</span>
     1815                <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;Type&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;modulated&#39;</span><span class="p">,</span><span class="s">&#39;magnetic&#39;</span><span class="p">]:</span>
     1816                    <span class="n">im</span> <span class="o">=</span> <span class="mi">1</span>
    15691817                <span class="n">pId</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;pId&#39;</span><span class="p">]</span>
    15701818                <span class="n">phfx</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%d</span><span class="s">:</span><span class="si">%d</span><span class="s">:&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pId</span><span class="p">,</span><span class="n">hId</span><span class="p">)</span>
     
    15741822                <span class="n">sumFosq</span> <span class="o">=</span> <span class="mf">0.0</span>
    15751823                <span class="n">sumdFsq</span> <span class="o">=</span> <span class="mf">0.0</span>
     1824                <span class="n">sumInt</span> <span class="o">=</span> <span class="mf">0.0</span>
    15761825                <span class="k">for</span> <span class="n">refl</span> <span class="ow">in</span> <span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]:</span>
    15771826                    <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    15781827                        <span class="n">yp</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>
    1579                         <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
    1580                         <span class="n">iBeg</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">))</span>
    1581                         <span class="n">iFin</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="nb">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">),</span><span class="n">xF</span><span class="p">))</span>
     1828                        <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
     1829                        <span class="n">iBeg</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">))</span>
     1830                        <span class="n">iFin</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="nb">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">),</span><span class="n">xF</span><span class="p">))</span>
    15821831                        <span class="n">iFin2</span> <span class="o">=</span> <span class="n">iFin</span>
    15831832                        <span class="k">if</span> <span class="ow">not</span> <span class="n">iBeg</span><span class="o">+</span><span class="n">iFin</span><span class="p">:</span>       <span class="c">#peak below low limit - skip peak</span>
     
    15861835                            <span class="k">break</span>
    15871836                        <span class="k">elif</span> <span class="n">iBeg</span> <span class="o">&lt;</span> <span class="n">iFin</span><span class="p">:</span>
    1588                             <span class="n">yp</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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="c">#&gt;90% of time spent here</span>
     1837                            <span class="n">yp</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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="c">#&gt;90% of time spent here</span>
     1838                            <span class="n">sumInt</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    15891839                            <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
    1590                                 <span class="n">pos2</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">+</span><span class="n">lamRatio</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>       <span class="c"># + 360/pi * Dlam/lam * tan(th)</span>
    1591                                 <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
     1840                                <span class="n">pos2</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">lamRatio</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>       <span class="c"># + 360/pi * Dlam/lam * tan(th)</span>
     1841                                <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
    15921842                                <span class="n">iBeg2</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">pos2</span><span class="o">-</span><span class="n">fmin</span><span class="p">))</span>
    15931843                                <span class="n">iFin2</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">pos2</span><span class="o">+</span><span class="n">fmax</span><span class="p">),</span><span class="n">xF</span><span class="p">)</span>
    1594                                 <span class="n">yp</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">kRatio</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]))</span>        <span class="c">#and here</span>
    1595                             <span class="n">refl</span><span class="p">[</span><span class="mi">8</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">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">ratio</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">&gt;</span><span class="mf">0.</span><span class="p">,</span><span class="n">yp</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">*</span><span class="n">ratio</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">/</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="p">(</span><span class="mf">1.</span><span class="o">+</span><span class="n">kRatio</span><span class="p">)),</span><span class="mf">0.0</span><span class="p">))</span>
     1844                                <span class="n">yp</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">kRatio</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]))</span>        <span class="c">#and here</span>
     1845                                <span class="n">sumInt</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">kRatio</span>
     1846                            <span class="n">refl</span><span class="p">[</span><span class="mi">8</span><span class="o">+</span><span class="n">im</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">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">ratio</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">&gt;</span><span class="mf">0.</span><span class="p">,</span><span class="n">yp</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">*</span><span class="n">ratio</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">/</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="p">(</span><span class="mf">1.</span><span class="o">+</span><span class="n">kRatio</span><span class="p">)),</span><span class="mf">0.0</span><span class="p">))</span>
     1847                               
    15961848                    <span class="k">elif</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    15971849                        <span class="n">yp</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>
    1598                         <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">])</span>
    1599                         <span class="n">iBeg</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">))</span>
    1600                         <span class="n">iFin</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="nb">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">),</span><span class="n">xF</span><span class="p">))</span>
     1850                        <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
     1851                        <span class="n">iBeg</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">))</span>
     1852                        <span class="n">iFin</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">xB</span><span class="p">,</span><span class="nb">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">),</span><span class="n">xF</span><span class="p">))</span>
    16011853                        <span class="k">if</span> <span class="n">iBeg</span> <span class="o">&lt;</span> <span class="n">iFin</span><span class="p">:</span>
    1602                             <span class="n">yp</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getEpsVoigt</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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="c">#&gt;90% of time spent here</span>
    1603                             <span class="n">refl</span><span class="p">[</span><span class="mi">8</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">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">ratio</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">&gt;</span><span class="mf">0.</span><span class="p">,</span><span class="n">yp</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">ratio</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">],</span><span class="mf">0.0</span><span class="p">))</span>
    1604                     <span class="n">Fo</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">abs</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">8</span><span class="p">]))</span>
    1605                     <span class="n">Fc</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">abs</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]))</span>
     1854                            <span class="n">yp</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getEpsVoigt</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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="c">#&gt;90% of time spent here</span>
     1855                            <span class="n">refl</span><span class="p">[</span><span class="mi">8</span><span class="o">+</span><span class="n">im</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">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">ratio</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">&gt;</span><span class="mf">0.</span><span class="p">,</span><span class="n">yp</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">ratio</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="mf">0.0</span><span class="p">))</span>
     1856                            <span class="n">sumInt</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
     1857                    <span class="n">Fo</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">abs</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">8</span><span class="o">+</span><span class="n">im</span><span class="p">]))</span>
     1858                    <span class="n">Fc</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">abs</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">+</span><span class="n">im</span><span class="p">))</span>
    16061859                    <span class="n">sumFo</span> <span class="o">+=</span> <span class="n">Fo</span>
    1607                     <span class="n">sumFosq</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">8</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     1860                    <span class="n">sumFosq</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">8</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    16081861                    <span class="n">sumdF</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">Fo</span><span class="o">-</span><span class="n">Fc</span><span class="p">)</span>
    1609                     <span class="n">sumdFsq</span> <span class="o">+=</span> <span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">8</span><span class="p">]</span><span class="o">-</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span>
    1610                 <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Rf&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">100.</span><span class="p">,(</span><span class="n">sumdF</span><span class="o">/</span><span class="n">sumFo</span><span class="p">)</span><span class="o">*</span><span class="mf">100.</span><span class="p">)</span>
    1611                 <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Rf^2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">100.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">sumdFsq</span><span class="o">/</span><span class="n">sumFosq</span><span class="p">)</span><span class="o">*</span><span class="mf">100.</span><span class="p">)</span>
     1862                    <span class="n">sumdFsq</span> <span class="o">+=</span> <span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">8</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">-</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span>
     1863                <span class="k">if</span> <span class="n">sumFo</span><span class="p">:</span>
     1864                    <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Rf&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">100.</span><span class="p">,(</span><span class="n">sumdF</span><span class="o">/</span><span class="n">sumFo</span><span class="p">)</span><span class="o">*</span><span class="mf">100.</span><span class="p">)</span>
     1865                    <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Rf^2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">100.</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">sumdFsq</span><span class="o">/</span><span class="n">sumFosq</span><span class="p">)</span><span class="o">*</span><span class="mf">100.</span><span class="p">)</span>
     1866                <span class="k">else</span><span class="p">:</span>
     1867                    <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Rf&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mf">100.</span>
     1868                    <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Rf^2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mf">100.</span>
     1869                <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;sumInt&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sumInt</span>
    16121870                <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Nref&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">])</span>
    16131871                <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="s">&#39;hId&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">hId</span>
     
    16191877    <span class="s">&#39;Needs a doc string&#39;</span>
    16201878   
    1621     <span class="k">def</span> <span class="nf">GetReflSigGamCW</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1879    <span class="k">def</span> <span class="nf">GetReflSigGamCW</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    16221880        <span class="n">U</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;U&#39;</span><span class="p">]</span>
    16231881        <span class="n">V</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;V&#39;</span><span class="p">]</span>
     
    16251883        <span class="n">X</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;X&#39;</span><span class="p">]</span>
    16261884        <span class="n">Y</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Y&#39;</span><span class="p">]</span>
    1627         <span class="n">tanPos</span> <span class="o">=</span> <span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>
    1628         <span class="n">Ssig</span><span class="p">,</span><span class="n">Sgam</span> <span class="o">=</span> <span class="n">GetSampleSigGam</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1885        <span class="n">tanPos</span> <span class="o">=</span> <span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>
     1886        <span class="n">Ssig</span><span class="p">,</span><span class="n">Sgam</span> <span class="o">=</span> <span class="n">GetSampleSigGam</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    16291887        <span class="n">sig</span> <span class="o">=</span> <span class="n">U</span><span class="o">*</span><span class="n">tanPos</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">tanPos</span><span class="o">+</span><span class="n">W</span><span class="o">+</span><span class="n">Ssig</span>     <span class="c">#save peak sigma</span>
    16301888        <span class="n">sig</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="n">sig</span><span class="p">)</span>
    1631         <span class="n">gam</span> <span class="o">=</span> <span class="n">X</span><span class="o">/</span><span class="n">cosd</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span><span class="o">+</span><span class="n">Y</span><span class="o">*</span><span class="n">tanPos</span><span class="o">+</span><span class="n">Sgam</span>     <span class="c">#save peak gamma</span>
     1889        <span class="n">gam</span> <span class="o">=</span> <span class="n">X</span><span class="o">/</span><span class="n">cosd</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span><span class="o">+</span><span class="n">Y</span><span class="o">*</span><span class="n">tanPos</span><span class="o">+</span><span class="n">Sgam</span>     <span class="c">#save peak gamma</span>
    16321890        <span class="n">gam</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mf">0.001</span><span class="p">,</span><span class="n">gam</span><span class="p">)</span>
    16331891        <span class="k">return</span> <span class="n">sig</span><span class="p">,</span><span class="n">gam</span>
    16341892               
    1635     <span class="k">def</span> <span class="nf">GetReflSigGamTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    1636         <span class="n">sig</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-0&#39;</span><span class="p">]</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-1&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span>   \
    1637             <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-2&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-q&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    1638         <span class="n">gam</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;X&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Y&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    1639         <span class="n">Ssig</span><span class="p">,</span><span class="n">Sgam</span> <span class="o">=</span> <span class="n">GetSampleSigGam</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="mf">0.0</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1893    <span class="k">def</span> <span class="nf">GetReflSigGamTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1894        <span class="n">sig</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-0&#39;</span><span class="p">]</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-1&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="o">+</span>   \
     1895            <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-2&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-q&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     1896        <span class="n">gam</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;X&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Y&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     1897        <span class="n">Ssig</span><span class="p">,</span><span class="n">Sgam</span> <span class="o">=</span> <span class="n">GetSampleSigGam</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="mf">0.0</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    16401898        <span class="n">sig</span> <span class="o">+=</span> <span class="n">Ssig</span>
    16411899        <span class="n">gam</span> <span class="o">+=</span> <span class="n">Sgam</span>
    16421900        <span class="k">return</span> <span class="n">sig</span><span class="p">,</span><span class="n">gam</span>
    16431901       
    1644     <span class="k">def</span> <span class="nf">GetReflAlpBet</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
    1645         <span class="n">alp</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;alpha&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span>
    1646         <span class="n">bet</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-0&#39;</span><span class="p">]</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-1&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-q&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
     1902    <span class="k">def</span> <span class="nf">GetReflAlpBet</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">parmDict</span><span class="p">):</span>
     1903        <span class="n">alp</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;alpha&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
     1904        <span class="n">bet</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-0&#39;</span><span class="p">]</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-1&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span><span class="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-q&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span>
    16471905        <span class="k">return</span> <span class="n">alp</span><span class="p">,</span><span class="n">bet</span>
    1648                
     1906       
    16491907    <span class="n">hId</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;hId&#39;</span><span class="p">]</span>
    16501908    <span class="n">hfx</span> <span class="o">=</span> <span class="s">&#39;:</span><span class="si">%d</span><span class="s">:&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">hId</span><span class="p">)</span>
    16511909    <span class="n">bakType</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;bakType&#39;</span><span class="p">]</span>
    1652     <span class="n">yb</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getBackground</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">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">],</span><span class="n">x</span><span class="p">)</span>
     1910    <span class="n">yb</span><span class="p">,</span><span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;sumBk&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getBackground</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">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">],</span><span class="n">x</span><span class="p">)</span>
    16531911    <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>
    16541912    <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">x</span><span class="p">)</span>
     
    16671925    <span class="k">for</span> <span class="n">phase</span> <span class="ow">in</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Reflection Lists&#39;</span><span class="p">]:</span>
    16681926        <span class="n">refDict</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Reflection Lists&#39;</span><span class="p">][</span><span class="n">phase</span><span class="p">]</span>
     1927        <span class="k">if</span> <span class="n">phase</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">Phases</span><span class="p">:</span>     <span class="c">#skips deleted or renamed phases silently!</span>
     1928            <span class="k">continue</span>
    16691929        <span class="n">Phase</span> <span class="o">=</span> <span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">]</span>
    16701930        <span class="n">pId</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;pId&#39;</span><span class="p">]</span>
     
    16741934        <span class="n">SGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;SGData&#39;</span><span class="p">]</span>
    16751935        <span class="n">SGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGOps&#39;</span><span class="p">]])</span>
    1676         <span class="n">A</span> <span class="o">=</span> <span class="p">[</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;A</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span> <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="mi">6</span><span class="p">)]</span>     <span class="c">#Do I want to modify by Dij?</span>
     1936        <span class="n">im</span> <span class="o">=</span> <span class="mi">0</span>
     1937        <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;Type&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;modulated&#39;</span><span class="p">,</span><span class="s">&#39;magnetic&#39;</span><span class="p">]:</span>
     1938            <span class="n">SSGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;SSGData&#39;</span><span class="p">]</span>
     1939            <span class="n">SSGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SSGData</span><span class="p">[</span><span class="s">&#39;SSGOps&#39;</span><span class="p">]])</span>
     1940            <span class="n">im</span> <span class="o">=</span> <span class="mi">1</span>  <span class="c">#offset in SS reflection list</span>
     1941            <span class="c">#??</span>
     1942        <span class="n">Dij</span> <span class="o">=</span> <span class="n">GetDij</span><span class="p">(</span><span class="n">phfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1943        <span class="n">A</span> <span class="o">=</span> <span class="p">[</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;A</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span><span class="o">+</span><span class="n">Dij</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <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="mi">6</span><span class="p">)]</span>
    16771944        <span class="n">G</span><span class="p">,</span><span class="n">g</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">A2Gmat</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>       <span class="c">#recip &amp; real metric tensors</span>
    16781945        <span class="n">GA</span><span class="p">,</span><span class="n">GB</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">Gmat2AB</span><span class="p">(</span><span class="n">G</span><span class="p">)</span>    <span class="c">#Orthogonalization matricies</span>
     
    16801947        <span class="k">if</span> <span class="ow">not</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;doPawley&#39;</span><span class="p">):</span>
    16811948            <span class="n">time0</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
    1682             <span class="n">StructureFactor2</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1949            <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     1950                <span class="n">SStructureFactor</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</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">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1951            <span class="k">else</span><span class="p">:</span>
     1952                <span class="n">StructureFactor2</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    16831953<span class="c">#            print &#39;sf calc time: %.3fs&#39;%(time.time()-time0)</span>
    16841954        <span class="n">time0</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
     
    16861956        <span class="k">for</span> <span class="n">iref</span><span class="p">,</span><span class="n">refl</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]):</span>
    16871957            <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    1688                 <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
     1958                <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     1959                    <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">m</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span>
     1960                <span class="k">else</span><span class="p">:</span>
     1961                    <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
    16891962                <span class="n">Uniq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGMT</span><span class="p">)</span>
    1690                 <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflPos</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>         <span class="c">#corrected reflection position</span>
    1691                 <span class="n">Lorenz</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="p">(</span><span class="mf">2.</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">cosd</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">))</span>           <span class="c">#Lorentz correction</span>
    1692                 <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">+=</span> <span class="n">GetHStrainShift</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>               <span class="c">#apply hydrostatic strain shift</span>
    1693                 <span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">:</span><span class="mi">8</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflSigGamCW</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>    <span class="c">#peak sig &amp; gam</span>
    1694                 <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">:</span><span class="mi">15</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetIntensityCorr</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">Uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    1695                 <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span> <span class="o">*=</span> <span class="n">Vst</span><span class="o">*</span><span class="n">Lorenz</span>
     1963                <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflPos</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>         <span class="c">#corrected reflection position</span>
     1964                <span class="n">Lorenz</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="p">(</span><span class="mf">2.</span><span class="o">*</span><span class="n">sind</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="o">*</span><span class="n">cosd</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.</span><span class="p">))</span>           <span class="c">#Lorentz correction</span>
     1965<span class="c">#                refl[5+im] += GetHStrainShift(refl,im,SGData,phfx,hfx,calcControls,parmDict)               #apply hydrostatic strain shift</span>
     1966                <span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">:</span><span class="mi">8</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflSigGamCW</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>    <span class="c">#peak sig &amp; gam</span>
     1967                <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">:</span><span class="mi">15</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetIntensityCorr</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">Uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     1968                <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">*=</span> <span class="n">Vst</span><span class="o">*</span><span class="n">Lorenz</span>
    16961969                 
    16971970                <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;doPawley&#39;</span><span class="p">):</span>
    16981971                    <span class="k">try</span><span class="p">:</span>
    1699                         <span class="n">pInd</span> <span class="o">=</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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>
    1700                         <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">pInd</span><span class="p">]</span>
     1972                        <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     1973                            <span class="n">pInd</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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">m</span><span class="p">)])</span>
     1974                        <span class="k">else</span><span class="p">:</span>
     1975                            <span class="n">pInd</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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>
     1976                        <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">pInd</span><span class="p">]</span>
    17011977                    <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
    17021978<span class="c">#                        print &#39; ***Error %d,%d,%d missing from Pawley reflection list ***&#39;%(h,k,l)</span>
    17031979                        <span class="k">continue</span>
    1704                 <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
    1705                 <span class="n">iBeg</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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">)</span>
    1706                 <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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span>
     1980                <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
     1981                <span class="n">iBeg</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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">)</span>
     1982                <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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span>
    17071983                <span class="k">if</span> <span class="ow">not</span> <span class="n">iBeg</span><span class="o">+</span><span class="n">iFin</span><span class="p">:</span>       <span class="c">#peak below low limit - skip peak</span>
    17081984                    <span class="k">continue</span>
     
    17121988                    <span class="n">badPeak</span> <span class="o">=</span> <span class="bp">True</span>
    17131989                    <span class="k">continue</span>
    1714                 <span class="n">yc</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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="c">#&gt;90% of time spent here</span>
     1990                <span class="n">yc</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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="c">#&gt;90% of time spent here</span>
    17151991                <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
    1716                     <span class="n">pos2</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">+</span><span class="n">lamRatio</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>       <span class="c"># + 360/pi * Dlam/lam * tan(th)</span>
    1717                     <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
     1992                    <span class="n">pos2</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">lamRatio</span><span class="o">*</span><span class="n">tand</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>       <span class="c"># + 360/pi * Dlam/lam * tan(th)</span>
     1993                    <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
    17181994                    <span class="n">iBeg</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">x</span><span class="p">,</span><span class="n">pos2</span><span class="o">-</span><span class="n">fmin</span><span class="p">)</span>
    17191995                    <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">x</span><span class="p">,</span><span class="n">pos2</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span>
     
    17242000                    <span class="k">elif</span> <span class="n">iBeg</span> <span class="o">&gt;</span> <span class="n">iFin</span><span class="p">:</span>   <span class="c">#bad peak coeff - skip</span>
    17252001                        <span class="k">continue</span>
    1726                     <span class="n">yc</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">kRatio</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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="c">#and here</span>
     2002                    <span class="n">yc</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">kRatio</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getFCJVoigt3</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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="c">#and here</span>
    17272003            <span class="k">elif</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    17282004                <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
    17292005                <span class="n">Uniq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGMT</span><span class="p">)</span>
    1730                 <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflPos</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="mf">0.0</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>         <span class="c">#corrected reflection position</span>
    1731                 <span class="n">Lorenz</span> <span class="o">=</span> <span class="n">sind</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">]</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span>                                                <span class="c">#TOF Lorentz correction</span>
    1732                 <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">+=</span> <span class="n">GetHStrainShift</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>               <span class="c">#apply hydrostatic strain shift</span>
    1733                 <span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">:</span><span class="mi">8</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflSigGamTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>    <span class="c">#peak sig &amp; gam</span>
    1734                 <span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="p">:</span><span class="mi">14</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflAlpBet</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    1735                 <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">15</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">16</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">17</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetIntensityCorr</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">Uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    1736                 <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span> <span class="o">*=</span> <span class="n">Vst</span><span class="o">*</span><span class="n">Lorenz</span>
     2006                <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflPos</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="mf">0.0</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>         <span class="c">#corrected reflection position</span>
     2007                <span class="n">Lorenz</span> <span class="o">=</span> <span class="n">sind</span><span class="p">(</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;2-theta&#39;</span><span class="p">]</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span>                                                <span class="c">#TOF Lorentz correction</span>
     2008<span class="c">#                refl[5+im] += GetHStrainShift(refl,im,SGData,phfx,hfx,calcControls,parmDict)               #apply hydrostatic strain shift</span>
     2009                <span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">:</span><span class="mi">8</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflSigGamTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>    <span class="c">#peak sig &amp; gam</span>
     2010                <span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">:</span><span class="mi">14</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetReflAlpBet</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2011                <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">15</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">16</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">17</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">GetIntensityCorr</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">Uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2012                <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">*=</span> <span class="n">Vst</span><span class="o">*</span><span class="n">Lorenz</span>
    17372013                <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;doPawley&#39;</span><span class="p">):</span>
    17382014                    <span class="k">try</span><span class="p">:</span>
    1739                         <span class="n">pInd</span> <span class="o">=</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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>
    1740                         <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">pInd</span><span class="p">]</span>
     2015                        <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     2016                            <span class="n">pInd</span> <span class="o">=</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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">m</span><span class="p">)])</span>
     2017                        <span class="k">else</span><span class="p">:</span>
     2018                            <span class="n">pInd</span> <span class="o">=</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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>
     2019                        <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">pInd</span><span class="p">]</span>
    17412020                    <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
    17422021<span class="c">#                        print &#39; ***Error %d,%d,%d missing from Pawley reflection list ***&#39;%(h,k,l)</span>
    17432022                        <span class="k">continue</span>
    1744                 <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">])</span>
    1745                 <span class="n">iBeg</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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">)</span>
    1746                 <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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span>
     2023                <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
     2024                <span class="n">iBeg</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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">)</span>
     2025                <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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span>
    17472026                <span class="k">if</span> <span class="ow">not</span> <span class="n">iBeg</span><span class="o">+</span><span class="n">iFin</span><span class="p">:</span>       <span class="c">#peak below low limit - skip peak</span>
    17482027                    <span class="k">continue</span>
     
    17522031                    <span class="n">badPeak</span> <span class="o">=</span> <span class="bp">True</span>
    17532032                    <span class="k">continue</span>
    1754                 <span class="n">yc</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getEpsVoigt</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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">cw</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]</span>
     2033                <span class="n">yc</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">G2pwd</span><span class="o">.</span><span class="n">getEpsVoigt</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</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">cw</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]</span>
    17552034<span class="c">#        print &#39;profile calc time: %.3fs&#39;%(time.time()-time0)</span>
    17562035    <span class="k">if</span> <span class="n">badPeak</span><span class="p">:</span>
     
    18272106    <span class="k">for</span> <span class="n">phase</span> <span class="ow">in</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Reflection Lists&#39;</span><span class="p">]:</span>
    18282107        <span class="n">refDict</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Reflection Lists&#39;</span><span class="p">][</span><span class="n">phase</span><span class="p">]</span>
     2108        <span class="k">if</span> <span class="n">phase</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">Phases</span><span class="p">:</span>     <span class="c">#skips deleted or renamed phases silently!</span>
     2109            <span class="k">continue</span>
    18292110        <span class="n">Phase</span> <span class="o">=</span> <span class="n">Phases</span><span class="p">[</span><span class="n">phase</span><span class="p">]</span>
    18302111        <span class="n">SGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;SGData&#39;</span><span class="p">]</span>
    18312112        <span class="n">SGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SGData</span><span class="p">[</span><span class="s">&#39;SGOps&#39;</span><span class="p">]])</span>
     2113        <span class="n">im</span> <span class="o">=</span> <span class="mi">0</span>
     2114        <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;Type&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;modulated&#39;</span><span class="p">,</span><span class="s">&#39;magnetic&#39;</span><span class="p">]:</span>
     2115            <span class="n">SSGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;SSGData&#39;</span><span class="p">]</span>
     2116            <span class="n">SSGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SSGData</span><span class="p">[</span><span class="s">&#39;SSGOps&#39;</span><span class="p">]])</span>
     2117            <span class="n">im</span> <span class="o">=</span> <span class="mi">1</span>  <span class="c">#offset in SS reflection list</span>
     2118            <span class="c">#??</span>
    18322119        <span class="n">pId</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;pId&#39;</span><span class="p">]</span>
    18332120        <span class="n">pfx</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%d</span><span class="s">::&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pId</span><span class="p">)</span>
    18342121        <span class="n">phfx</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%d</span><span class="s">:</span><span class="si">%d</span><span class="s">:&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">pId</span><span class="p">,</span><span class="n">hId</span><span class="p">)</span>
    1835         <span class="n">A</span> <span class="o">=</span> <span class="p">[</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;A</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span> <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="mi">6</span><span class="p">)]</span>     <span class="c">#And modify here by Dij? - no</span>
     2122        <span class="n">Dij</span> <span class="o">=</span> <span class="n">GetDij</span><span class="p">(</span><span class="n">phfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2123        <span class="n">A</span> <span class="o">=</span> <span class="p">[</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;A</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span><span class="o">+</span><span class="n">Dij</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <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="mi">6</span><span class="p">)]</span>
    18362124        <span class="n">G</span><span class="p">,</span><span class="n">g</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">A2Gmat</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>       <span class="c">#recip &amp; real metric tensors</span>
    18372125        <span class="n">GA</span><span class="p">,</span><span class="n">GB</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">Gmat2AB</span><span class="p">(</span><span class="n">G</span><span class="p">)</span>    <span class="c">#Orthogonalization matricies</span>
    18382126        <span class="k">if</span> <span class="ow">not</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;doPawley&#39;</span><span class="p">):</span>
    18392127            <span class="n">time0</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
    1840             <span class="n">dFdvDict</span> <span class="o">=</span> <span class="n">StructureFactorDerv</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2128            <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     2129                <span class="n">dFdvDict</span> <span class="o">=</span> <span class="n">SStructureFactorDerv</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</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">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2130            <span class="k">else</span><span class="p">:</span>
     2131                <span class="n">dFdvDict</span> <span class="o">=</span> <span class="n">StructureFactorDerv</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    18412132<span class="c">#            print &#39;sf-derv time %.3fs&#39;%(time.time()-time0)</span>
    18422133            <span class="n">ApplyRBModelDervs</span><span class="p">(</span><span class="n">dFdvDict</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">rigidbodyDict</span><span class="p">,</span><span class="n">Phase</span><span class="p">)</span>
    18432134        <span class="n">time0</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
    18442135        <span class="k">for</span> <span class="n">iref</span><span class="p">,</span><span class="n">refl</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]):</span>
    1845             <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
     2136            <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     2137                <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">m</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span>
     2138            <span class="k">else</span><span class="p">:</span>
     2139                <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="o">=</span> <span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">]</span>
    18462140            <span class="n">Uniq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">refl</span><span class="p">[:</span><span class="mi">3</span><span class="p">],</span><span class="n">SGMT</span><span class="p">)</span>
    18472141            <span class="k">if</span> <span class="s">&#39;T&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    1848                 <span class="n">wave</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="p">]</span>
    1849             <span class="n">dIdsh</span><span class="p">,</span><span class="n">dIdsp</span><span class="p">,</span><span class="n">dIdpola</span><span class="p">,</span><span class="n">dIdPO</span><span class="p">,</span><span class="n">dFdODF</span><span class="p">,</span><span class="n">dFdSA</span><span class="p">,</span><span class="n">dFdAb</span><span class="p">,</span><span class="n">dFdEx</span> <span class="o">=</span> <span class="n">GetIntensityDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">Uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2142                <span class="n">wave</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">14</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
     2143            <span class="n">dIdsh</span><span class="p">,</span><span class="n">dIdsp</span><span class="p">,</span><span class="n">dIdpola</span><span class="p">,</span><span class="n">dIdPO</span><span class="p">,</span><span class="n">dFdODF</span><span class="p">,</span><span class="n">dFdSA</span><span class="p">,</span><span class="n">dFdAb</span><span class="p">,</span><span class="n">dFdEx</span> <span class="o">=</span> <span class="n">GetIntensityDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">Uniq</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">g</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    18502144            <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>        <span class="c">#CW powder</span>
    1851                 <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
     2145                <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsCW</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">)</span>
    18522146            <span class="k">else</span><span class="p">:</span> <span class="c">#&#39;T&#39;OF</span>
    1853                 <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">])</span>
    1854             <span class="n">iBeg</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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">)</span>
    1855             <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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span>
     2147                <span class="n">Wd</span><span class="p">,</span><span class="n">fmin</span><span class="p">,</span><span class="n">fmax</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getWidthsTOF</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
     2148            <span class="n">iBeg</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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">-</span><span class="n">fmin</span><span class="p">)</span>
     2149            <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">x</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span>
    18562150            <span class="k">if</span> <span class="ow">not</span> <span class="n">iBeg</span><span class="o">+</span><span class="n">iFin</span><span class="p">:</span>       <span class="c">#peak below low limit - skip peak</span>
    18572151                <span class="k">continue</span>
    18582152            <span class="k">elif</span> <span class="ow">not</span> <span class="n">iBeg</span><span class="o">-</span><span class="n">iFin</span><span class="p">:</span>     <span class="c">#peak above high limit - done</span>
    18592153                <span class="k">break</span>
    1860             <span class="n">pos</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span>
     2154            <span class="n">pos</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    18612155            <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    18622156                <span class="n">tanth</span> <span class="o">=</span> <span class="n">tand</span><span class="p">(</span><span class="n">pos</span><span class="o">/</span><span class="mf">2.0</span><span class="p">)</span>
     
    18642158                <span class="n">lenBF</span> <span class="o">=</span> <span class="n">iFin</span><span class="o">-</span><span class="n">iBeg</span>
    18652159                <span class="n">dMdpk</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="n">lenBF</span><span class="p">))</span>
    1866                 <span class="n">dMdipk</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getdFCJVoigt3</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]))</span>
     2160                <span class="n">dMdipk</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getdFCJVoigt3</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]))</span>
    18672161                <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="mi">5</span><span class="p">):</span>
    1868                     <span class="n">dMdpk</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="mf">100.</span><span class="o">*</span><span class="n">cw</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">dMdipk</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
     2162                    <span class="n">dMdpk</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="mf">100.</span><span class="o">*</span><span class="n">cw</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">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">dMdipk</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
    18692163                <span class="n">dervDict</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;int&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;pos&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="s">&#39;sig&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="s">&#39;gam&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span><span class="s">&#39;shl&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="s">&#39;L1/L2&#39;</span><span class="p">:</span><span class="n">np</span><span class="o">.</span><span class="n">zeros_like</span><span class="p">(</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">0</span><span class="p">])}</span>
    18702164                <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
    1871                     <span class="n">pos2</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">+</span><span class="n">lamRatio</span><span class="o">*</span><span class="n">tanth</span>       <span class="c"># + 360/pi * Dlam/lam * tan(th)</span>
     2165                    <span class="n">pos2</span> <span class="o">=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">+</span><span class="n">lamRatio</span><span class="o">*</span><span class="n">tanth</span>       <span class="c"># + 360/pi * Dlam/lam * tan(th)</span>
    18722166                    <span class="n">iBeg2</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">x</span><span class="p">,</span><span class="n">pos2</span><span class="o">-</span><span class="n">fmin</span><span class="p">)</span>
    18732167                    <span class="n">iFin2</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">x</span><span class="p">,</span><span class="n">pos2</span><span class="o">+</span><span class="n">fmax</span><span class="p">)</span>
     
    18752169                        <span class="n">lenBF2</span> <span class="o">=</span> <span class="n">iFin2</span><span class="o">-</span><span class="n">iBeg2</span>
    18762170                        <span class="n">dMdpk2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="n">lenBF2</span><span class="p">))</span>
    1877                         <span class="n">dMdipk2</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getdFCJVoigt3</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]))</span>
     2171                        <span class="n">dMdipk2</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getdFCJVoigt3</span><span class="p">(</span><span class="n">pos2</span><span class="p">,</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">shl</span><span class="p">,</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]))</span>
    18782172                        <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="mi">5</span><span class="p">):</span>
    1879                             <span class="n">dMdpk2</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="mf">100.</span><span class="o">*</span><span class="n">cw</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">kRatio</span><span class="o">*</span><span class="n">dMdipk2</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
    1880                         <span class="n">dMdpk2</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="mf">100.</span><span class="o">*</span><span class="n">cw</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">dMdipk2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
     2173                            <span class="n">dMdpk2</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="mf">100.</span><span class="o">*</span><span class="n">cw</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">kRatio</span><span class="o">*</span><span class="n">dMdipk2</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
     2174                        <span class="n">dMdpk2</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="mf">100.</span><span class="o">*</span><span class="n">cw</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">dMdipk2</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
    18812175                        <span class="n">dervDict2</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;int&#39;</span><span class="p">:</span><span class="n">dMdpk2</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;pos&#39;</span><span class="p">:</span><span class="n">dMdpk2</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="s">&#39;sig&#39;</span><span class="p">:</span><span class="n">dMdpk2</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="s">&#39;gam&#39;</span><span class="p">:</span><span class="n">dMdpk2</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span><span class="s">&#39;shl&#39;</span><span class="p">:</span><span class="n">dMdpk2</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="s">&#39;L1/L2&#39;</span><span class="p">:</span><span class="n">dMdpk2</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]}</span>
    18822176            <span class="k">else</span><span class="p">:</span>   <span class="c">#&#39;T&#39;OF</span>
     
    18852179                    <span class="k">break</span>
    18862180                <span class="n">dMdpk</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">shape</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="n">lenBF</span><span class="p">))</span>
    1887                 <span class="n">dMdipk</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getdEpsVoigt</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]))</span>
     2181                <span class="n">dMdipk</span> <span class="o">=</span> <span class="n">G2pwd</span><span class="o">.</span><span class="n">getdEpsVoigt</span><span class="p">(</span><span class="n">refl</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">12</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">13</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">refl</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="n">ma</span><span class="o">.</span><span class="n">getdata</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]))</span>
    18882182                <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="mi">6</span><span class="p">):</span>
    1889                     <span class="n">dMdpk</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">dMdipk</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>      <span class="c">#cw[iBeg:iFin]*</span>
     2183                    <span class="n">dMdpk</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="n">refl</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">dMdipk</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>      <span class="c">#cw[iBeg:iFin]*</span>
    18902184                <span class="n">dervDict</span> <span class="o">=</span> <span class="p">{</span><span class="s">&#39;int&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="s">&#39;pos&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="s">&#39;alp&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span><span class="s">&#39;bet&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span><span class="s">&#39;sig&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="s">&#39;gam&#39;</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">5</span><span class="p">]}</span>           
    18912185            <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;doPawley&#39;</span><span class="p">):</span>
    18922186                <span class="n">dMdpw</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
    18932187                <span class="k">try</span><span class="p">:</span>
    1894                     <span class="n">pIdx</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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>
     2188                    <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     2189                        <span class="n">pIdx</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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">m</span><span class="p">)])</span>
     2190                    <span class="k">else</span><span class="p">:</span>
     2191                        <span class="n">pIdx</span> <span class="o">=</span> <span class="n">pfx</span><span class="o">+</span><span class="s">&#39;PWLref:&#39;</span><span class="o">+</span><span class="nb">str</span><span class="p">(</span><span class="n">pawleyLookup</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">,</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</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>
    18952192                    <span class="n">idx</span> <span class="o">=</span> <span class="n">varylist</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">pIdx</span><span class="p">)</span>
    1896                     <span class="n">dMdpw</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">dervDict</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span>
     2193                    <span class="n">dMdpw</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">dervDict</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    18972194                    <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span> <span class="c">#not for TOF either</span>
    1898                         <span class="n">dMdpw</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span>
     2195                        <span class="n">dMdpw</span><span class="p">[</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    18992196                    <span class="n">dMdv</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> <span class="o">=</span> <span class="n">dMdpw</span>
    19002197                <span class="k">except</span><span class="p">:</span> <span class="c"># ValueError:</span>
    19012198                    <span class="k">pass</span>
    19022199            <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    1903                 <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdw</span><span class="p">,</span><span class="n">dpdZ</span><span class="p">,</span><span class="n">dpdSh</span><span class="p">,</span><span class="n">dpdTr</span><span class="p">,</span><span class="n">dpdX</span><span class="p">,</span><span class="n">dpdY</span> <span class="o">=</span> <span class="n">GetReflPosDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2200                <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdw</span><span class="p">,</span><span class="n">dpdZ</span><span class="p">,</span><span class="n">dpdSh</span><span class="p">,</span><span class="n">dpdTr</span><span class="p">,</span><span class="n">dpdX</span><span class="p">,</span><span class="n">dpdY</span><span class="p">,</span><span class="n">dpdV</span> <span class="o">=</span> <span class="n">GetReflPosDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    19042201                <span class="n">names</span> <span class="o">=</span> <span class="p">{</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">:[</span><span class="n">dIdsh</span><span class="p">,</span><span class="s">&#39;int&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Polariz.&#39;</span><span class="p">:[</span><span class="n">dIdpola</span><span class="p">,</span><span class="s">&#39;int&#39;</span><span class="p">],</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">:[</span><span class="n">dIdsp</span><span class="p">,</span><span class="s">&#39;int&#39;</span><span class="p">],</span>
    19052202                    <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;U&#39;</span><span class="p">:[</span><span class="n">tanth</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;V&#39;</span><span class="p">:[</span><span class="n">tanth</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;W&#39;</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span>
     
    19142211                    <span class="n">names</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">:[</span><span class="n">dFdAb</span><span class="p">,</span><span class="s">&#39;int&#39;</span><span class="p">],})</span>
    19152212            <span class="k">else</span><span class="p">:</span>   <span class="c">#&#39;T&#39;OF</span>
    1916                 <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdZ</span><span class="p">,</span><span class="n">dpdDC</span><span class="p">,</span><span class="n">dpdDA</span><span class="p">,</span><span class="n">dpdDB</span> <span class="o">=</span> <span class="n">GetReflPosDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="mf">0.0</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2213                <span class="n">dpdA</span><span class="p">,</span><span class="n">dpdZ</span><span class="p">,</span><span class="n">dpdDC</span><span class="p">,</span><span class="n">dpdDA</span><span class="p">,</span><span class="n">dpdDB</span><span class="p">,</span><span class="n">dpdV</span> <span class="o">=</span> <span class="n">GetReflPosDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="mf">0.0</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    19172214                <span class="n">names</span> <span class="o">=</span> <span class="p">{</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">:[</span><span class="n">dIdsh</span><span class="p">,</span><span class="s">&#39;int&#39;</span><span class="p">],</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">:[</span><span class="n">dIdsp</span><span class="p">,</span><span class="s">&#39;int&#39;</span><span class="p">],</span>
    19182215                    <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difC&#39;</span><span class="p">:[</span><span class="n">dpdDC</span><span class="p">,</span><span class="s">&#39;pos&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difA&#39;</span><span class="p">:[</span><span class="n">dpdDA</span><span class="p">,</span><span class="s">&#39;pos&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;difB&#39;</span><span class="p">:[</span><span class="n">dpdDB</span><span class="p">,</span><span class="s">&#39;pos&#39;</span><span class="p">],</span>
    1919                     <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Zero&#39;</span><span class="p">:[</span><span class="n">dpdZ</span><span class="p">,</span><span class="s">&#39;pos&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;X&#39;</span><span class="p">:[</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="s">&#39;gam&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Y&#39;</span><span class="p">:[</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;gam&#39;</span><span class="p">],</span>
    1920                     <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;alpha&#39;</span><span class="p">:[</span><span class="mf">1.</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span><span class="s">&#39;alp&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-0&#39;</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">&#39;bet&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-1&#39;</span><span class="p">:[</span><span class="mf">1.</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span><span class="p">,</span><span class="s">&#39;bet&#39;</span><span class="p">],</span>
    1921                     <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-q&#39;</span><span class="p">:[</span><span class="mf">1.</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;bet&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-0&#39;</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-1&#39;</span><span class="p">:[</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span>
    1922                     <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-2&#39;</span><span class="p">:[</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-q&#39;</span><span class="p">:[</span><span class="mf">1.</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span>
     2216                    <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Zero&#39;</span><span class="p">:[</span><span class="n">dpdZ</span><span class="p">,</span><span class="s">&#39;pos&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;X&#39;</span><span class="p">:[</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="s">&#39;gam&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Y&#39;</span><span class="p">:[</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;gam&#39;</span><span class="p">],</span>
     2217                    <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;alpha&#39;</span><span class="p">:[</span><span class="mf">1.</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">],</span><span class="s">&#39;alp&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-0&#39;</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">&#39;bet&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-1&#39;</span><span class="p">:[</span><span class="mf">1.</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span><span class="p">,</span><span class="s">&#39;bet&#39;</span><span class="p">],</span>
     2218                    <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;beta-q&#39;</span><span class="p">:[</span><span class="mf">1.</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;bet&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-0&#39;</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-1&#39;</span><span class="p">:[</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span>
     2219                    <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-2&#39;</span><span class="p">:[</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">4</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;sig-q&#39;</span><span class="p">:[</span><span class="mf">1.</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">4</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span><span class="s">&#39;sig&#39;</span><span class="p">],</span>
    19232220                    <span class="n">hfx</span><span class="o">+</span><span class="s">&#39;Absorption&#39;</span><span class="p">:[</span><span class="n">dFdAb</span><span class="p">,</span><span class="s">&#39;int&#39;</span><span class="p">],</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Extinction&#39;</span><span class="p">:[</span><span class="n">dFdEx</span><span class="p">,</span><span class="s">&#39;int&#39;</span><span class="p">],}</span>
    19242221            <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span>
     
    19702267                    <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
    19712268                        <span class="n">depDerivDict</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dpdA</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;pos&#39;</span><span class="p">]</span>
    1972             <span class="n">dDijDict</span> <span class="o">=</span> <span class="n">GetHStrainShiftDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2269            <span class="n">dDijDict</span> <span class="o">=</span> <span class="n">GetHStrainShiftDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    19732270            <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">dDijDict</span><span class="p">:</span>
    19742271                <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span>
     
    19802277                    <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
    19812278                        <span class="n">depDerivDict</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dDijDict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;pos&#39;</span><span class="p">]</span>
     2279            <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">pfx</span><span class="o">+</span><span class="s">&#39;mV0&#39;</span><span class="p">,</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;mV1&#39;</span><span class="p">,</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;mV2&#39;</span><span class="p">]):</span>
     2280                <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span>
     2281                    <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="n">iBeg</span><span class="p">:</span><span class="n">iFin</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dpdV</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="s">&#39;pos&#39;</span><span class="p">]</span>
     2282                    <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
     2283                        <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="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dpdV</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;pos&#39;</span><span class="p">]</span>
     2284                <span class="k">elif</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span>
     2285                    <span class="n">depDerivDict</span><span class="p">[</span><span class="n">name</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">dpdV</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="s">&#39;pos&#39;</span><span class="p">]</span>
     2286                    <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
     2287                        <span class="n">depDerivDict</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dpdV</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;pos&#39;</span><span class="p">]</span>
    19822288            <span class="k">if</span> <span class="s">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">calcControls</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">&#39;histType&#39;</span><span class="p">]:</span>
    1983                 <span class="n">sigDict</span><span class="p">,</span><span class="n">gamDict</span> <span class="o">=</span> <span class="n">GetSampleSigGamDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2289                <span class="n">sigDict</span><span class="p">,</span><span class="n">gamDict</span> <span class="o">=</span> <span class="n">GetSampleSigGamDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">wave</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    19842290            <span class="k">else</span><span class="p">:</span>   <span class="c">#&#39;T&#39;OF</span>
    1985                 <span class="n">sigDict</span><span class="p">,</span><span class="n">gamDict</span> <span class="o">=</span> <span class="n">GetSampleSigGamDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="mf">0.0</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2291                <span class="n">sigDict</span><span class="p">,</span><span class="n">gamDict</span> <span class="o">=</span> <span class="n">GetSampleSigGamDerv</span><span class="p">(</span><span class="n">refl</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="mf">0.0</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">GB</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    19862292            <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">gamDict</span><span class="p">:</span>
    19872293                <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span>
     
    20032309                        <span class="n">depDerivDict</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">sigDict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;sig&#39;</span><span class="p">]</span>
    20042310            <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;BabA&#39;</span><span class="p">,</span><span class="s">&#39;BabU&#39;</span><span class="p">]:</span>
    2005                 <span class="k">if</span> <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]:</span>
     2311                <span class="k">if</span> <span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]:</span>
    20062312                    <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="n">name</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span>
    2007                         <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">phfx</span><span class="o">+</span><span class="n">name</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">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span>
     2313                        <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">phfx</span><span class="o">+</span><span class="n">name</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">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20082314                        <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
    2009                             <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">phfx</span><span class="o">+</span><span class="n">name</span><span class="p">)][</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span>
     2315                            <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">phfx</span><span class="o">+</span><span class="n">name</span><span class="p">)][</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20102316                    <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="n">name</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span>                   
    2011                         <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">name</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">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span>
     2317                        <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">name</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">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20122318                        <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
    2013                             <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span>                 
     2319                            <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iBeg2</span><span class="p">:</span><span class="n">iFin2</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">name</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>                 
    20142320            <span class="k">if</span> <span class="ow">not</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;doPawley&#39;</span><span class="p">):</span>
    20152321                <span class="c">#do atom derivatives -  for RB,F,X &amp; U so far              </span>
    2016                 <span class="n">corr</span> <span class="o">=</span> <span class="n">dervDict</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span>
     2322                <span class="n">corr</span> <span class="o">=</span> <span class="n">dervDict</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20172323                <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span>
    2018                     <span class="n">corr2</span> <span class="o">=</span> <span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span>
     2324                    <span class="n">corr2</span> <span class="o">=</span> <span class="n">dervDict2</span><span class="p">[</span><span class="s">&#39;int&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">refl</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20192325                <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">varylist</span><span class="o">+</span><span class="n">dependentVars</span><span class="p">:</span>
    20202326                    <span class="k">if</span> <span class="s">&#39;::RBV;&#39;</span> <span class="ow">in</span> <span class="n">name</span><span class="p">:</span>
     
    20522358    <span class="n">phfx</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%d</span><span class="s">:</span><span class="si">%d</span><span class="s">:&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">&#39;pId&#39;</span><span class="p">],</span><span class="n">hId</span><span class="p">)</span>
    20532359    <span class="n">SGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;SGData&#39;</span><span class="p">]</span>
     2360    <span class="n">im</span> <span class="o">=</span> <span class="mi">0</span>
     2361    <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;Type&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;modulated&#39;</span><span class="p">,</span><span class="s">&#39;magnetic&#39;</span><span class="p">]:</span>
     2362        <span class="n">SSGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;SSGData&#39;</span><span class="p">]</span>
     2363        <span class="n">SSGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SSGData</span><span class="p">[</span><span class="s">&#39;SSGOps&#39;</span><span class="p">]])</span>
     2364        <span class="n">im</span> <span class="o">=</span> <span class="mi">1</span>  <span class="c">#offset in SS reflection list</span>
     2365        <span class="c">#??</span>
    20542366    <span class="n">A</span> <span class="o">=</span> <span class="p">[</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;A</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span> <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="mi">6</span><span class="p">)]</span>
    20552367    <span class="n">G</span><span class="p">,</span><span class="n">g</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">A2Gmat</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>       <span class="c">#recip &amp; real metric tensors</span>
    20562368    <span class="n">refDict</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">]</span>
    2057     <span class="n">dFdvDict</span> <span class="o">=</span> <span class="n">StructureFactorDerv</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2369    <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     2370        <span class="n">dFdvDict</span> <span class="o">=</span> <span class="n">SStructureFactorDerv</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</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">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2371    <span class="k">else</span><span class="p">:</span>
     2372        <span class="n">dFdvDict</span> <span class="o">=</span> <span class="n">StructureFactorDerv</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    20582373    <span class="n">ApplyRBModelDervs</span><span class="p">(</span><span class="n">dFdvDict</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">rigidbodyDict</span><span class="p">,</span><span class="n">Phase</span><span class="p">)</span>
    20592374    <span class="n">dMdvh</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">varylist</span><span class="p">),</span><span class="nb">len</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">])))</span>
     
    20652380    <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;F**2&#39;</span><span class="p">]:</span>
    20662381        <span class="k">for</span> <span class="n">iref</span><span class="p">,</span><span class="n">ref</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]):</span>
    2067             <span class="k">if</span> <span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
    2068                 <span class="n">dervDict</span> <span class="o">=</span> <span class="n">SCExtinction</span><span class="p">(</span><span class="n">ref</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">varylist</span><span class="o">+</span><span class="n">dependentVars</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
    2069                 <span class="n">w</span> <span class="o">=</span> <span class="mf">1.0</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span>
    2070                 <span class="k">if</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;minF/sig&#39;</span><span class="p">]:</span>
    2071                     <span class="n">wdf</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="p">(</span><span class="n">ref</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="o">-</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="p">])</span>
     2382            <span class="k">if</span> <span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
     2383                <span class="n">dervDict</span> <span class="o">=</span> <span class="n">SCExtinction</span><span class="p">(</span><span class="n">ref</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">varylist</span><span class="o">+</span><span class="n">dependentVars</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
     2384                <span class="n">w</span> <span class="o">=</span> <span class="mf">1.0</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
     2385                <span class="k">if</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;minF/sig&#39;</span><span class="p">]:</span>
     2386                    <span class="n">wdf</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="p">(</span><span class="n">ref</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">-</span><span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
    20722387                    <span class="k">for</span> <span class="n">j</span><span class="p">,</span><span class="n">var</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">varylist</span><span class="p">):</span>
    20732388                        <span class="k">if</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">dFdvDict</span><span class="p">:</span>
    2074                             <span class="n">dMdvh</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2389                            <span class="n">dMdvh</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20752390                    <span class="k">for</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span>
    20762391                        <span class="k">if</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">dFdvDict</span><span class="p">:</span>
    2077                             <span class="n">depDerivDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2392                            <span class="n">depDerivDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20782393                    <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span>
    2079                         <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2394                        <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20802395                    <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span>
    2081                         <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2396                        <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20822397                    <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;Ep&#39;</span><span class="p">,</span><span class="s">&#39;Es&#39;</span><span class="p">,</span><span class="s">&#39;Eg&#39;</span><span class="p">]:</span>
    20832398                        <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">varylist</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">dervDict</span><span class="p">:</span>
    2084                             <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">]</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>  <span class="c">#OK</span>
     2399                            <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">]</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>  <span class="c">#OK</span>
    20852400                        <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">dependentVars</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">dervDict</span><span class="p">:</span>
    2086                             <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">]</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>  <span class="c">#OK</span>
     2401                            <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">]</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>  <span class="c">#OK</span>
    20872402                    <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;BabA&#39;</span><span class="p">,</span><span class="s">&#39;BabU&#39;</span><span class="p">]:</span>
    20882403                        <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span>
    2089                             <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2404                            <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20902405                        <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span>
    2091                             <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2406                            <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20922407    <span class="k">else</span><span class="p">:</span>
    20932408        <span class="k">for</span> <span class="n">iref</span><span class="p">,</span><span class="n">ref</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]):</span>
    2094             <span class="k">if</span> <span class="n">ref</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mf">0.</span><span class="p">:</span>
    2095                 <span class="n">dervDict</span> <span class="o">=</span> <span class="n">SCExtinction</span><span class="p">(</span><span class="n">ref</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">varylist</span><span class="o">+</span><span class="n">dependentVars</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
    2096                 <span class="n">Fo</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">ref</span><span class="p">[</span><span class="mi">5</span><span class="p">])</span>
    2097                 <span class="n">Fc</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">ref</span><span class="p">[</span><span class="mi">7</span><span class="p">])</span>
    2098                 <span class="n">w</span> <span class="o">=</span> <span class="mf">1.0</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span>
     2409            <span class="k">if</span> <span class="n">ref</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mf">0.</span><span class="p">:</span>
     2410                <span class="n">dervDict</span> <span class="o">=</span> <span class="n">SCExtinction</span><span class="p">(</span><span class="n">ref</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">,</span><span class="n">varylist</span><span class="o">+</span><span class="n">dependentVars</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
     2411                <span class="n">Fo</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">ref</span><span class="p">[</span><span class="mi">5</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
     2412                <span class="n">Fc</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">ref</span><span class="p">[</span><span class="mi">7</span><span class="o">+</span><span class="n">im</span><span class="p">])</span>
     2413                <span class="n">w</span> <span class="o">=</span> <span class="mf">1.0</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    20992414                <span class="k">if</span> <span class="mf">2.0</span><span class="o">*</span><span class="n">Fo</span><span class="o">*</span><span class="n">w</span><span class="o">*</span><span class="n">Fo</span> <span class="o">&gt;=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;minF/sig&#39;</span><span class="p">]:</span>
    21002415                    <span class="n">wdf</span><span class="p">[</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="mf">2.0</span><span class="o">*</span><span class="n">Fo</span><span class="o">*</span><span class="n">w</span><span class="o">*</span><span class="p">(</span><span class="n">Fo</span><span class="o">-</span><span class="n">Fc</span><span class="p">)</span>
    21012416                    <span class="k">for</span> <span class="n">j</span><span class="p">,</span><span class="n">var</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">varylist</span><span class="p">):</span>
    21022417                        <span class="k">if</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">dFdvDict</span><span class="p">:</span>
    2103                             <span class="n">dMdvh</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2418                            <span class="n">dMdvh</span><span class="p">[</span><span class="n">j</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    21042419                    <span class="k">for</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span>
    21052420                        <span class="k">if</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">dFdvDict</span><span class="p">:</span>
    2106                             <span class="n">depDerivDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2421                            <span class="n">depDerivDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">var</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    21072422                    <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span>
    2108                         <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2423                        <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    21092424                    <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span>
    2110                         <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>                           
     2425                        <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="n">im</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>                           
    21112426                    <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;Ep&#39;</span><span class="p">,</span><span class="s">&#39;Es&#39;</span><span class="p">,</span><span class="s">&#39;Eg&#39;</span><span class="p">]:</span>
    21122427                        <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">varylist</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">dervDict</span><span class="p">:</span>
    2113                             <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">]</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>  <span class="c">#correct</span>
     2428                            <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">]</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>  <span class="c">#correct</span>
    21142429                        <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">dependentVars</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">dervDict</span><span class="p">:</span>
    2115                             <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">]</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2430                            <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dervDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">]</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    21162431                    <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;BabA&#39;</span><span class="p">,</span><span class="s">&#39;BabU&#39;</span><span class="p">]:</span>
    21172432                        <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span>
    2118                             <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2433                            <span class="n">dMdvh</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">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">)][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    21192434                        <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="n">item</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span>
    2120                             <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>
     2435                            <span class="n">depDerivDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">*</span><span class="n">dFdvDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="n">item</span><span class="p">][</span><span class="n">iref</span><span class="p">]</span><span class="o">*</span><span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="o">+</span><span class="n">im</span><span class="p">]</span>
    21212436    <span class="k">return</span> <span class="n">dMdvh</span><span class="p">,</span><span class="n">depDerivDict</span><span class="p">,</span><span class="n">wdf</span>
    21222437   
     
    22122527            <span class="n">dMdvh</span> <span class="o">*=</span> <span class="n">Wt</span>
    22132528            <span class="k">if</span> <span class="n">dlg</span><span class="p">:</span>
    2214                 <span class="n">dlg</span><span class="o">.</span><span class="n">Update</span><span class="p">(</span><span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="s">&#39;wR&#39;</span><span class="p">],</span><span class="n">newmsg</span><span class="o">=</span><span class="s">&#39;Hessian for histogram </span><span class="si">%d</span><span class="se">\n</span><span class="s">All data Rw=</span><span class="si">%8.3f%s</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">hId</span><span class="p">,</span><span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="s">&#39;wR&#39;</span><span class="p">],</span><span class="s">&#39;%&#39;</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span>
     2529                <span class="n">dlg</span><span class="o">.</span><span class="n">Update</span><span class="p">(</span><span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="s">&#39;wR&#39;</span><span class="p">],</span><span class="n">newmsg</span><span class="o">=</span><span class="s">&#39;Hessian for histogram </span><span class="si">%d</span><span class="se">\n</span><span class="s">All data Rw=</span><span class="si">%8.3f%s</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">hId</span><span class="p">,</span><span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Residuals&#39;</span><span class="p">][</span><span class="s">&#39;wR&#39;</span><span class="p">],</span><span class="s">&#39;%&#39;</span><span class="p">))</span>
    22152530            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">Hess</span><span class="p">):</span>
    22162531                <span class="n">Hess</span> <span class="o">+=</span> <span class="n">np</span><span class="o">.</span><span class="n">inner</span><span class="p">(</span><span class="n">dMdvh</span><span class="p">,</span><span class="n">dMdvh</span><span class="p">)</span>
     
    22502565    <span class="k">return</span> <span class="n">Vec</span><span class="p">,</span><span class="n">Hess</span>
    22512566</div>
    2252 <div class="viewcode-block" id="errRefine"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.errRefine">[docs]</a><span class="k">def</span> <span class="nf">errRefine</span><span class="p">(</span><span class="n">values</span><span class="p">,</span><span class="n">HistoPhases</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">calcControls</span><span class="p">,</span><span class="n">pawleyLookup</span><span class="p">,</span><span class="n">dlg</span><span class="p">):</span>       
    2253     <span class="s">&#39;Needs a doc string&#39;</span>
     2567<div class="viewcode-block" id="errRefine"><a class="viewcode-back" href="../GSASIIstruc.html#GSASIIstrMath.errRefine">[docs]</a><span class="k">def</span> <span class="nf">errRefine</span><span class="p">(</span><span class="n">values</span><span class="p">,</span><span class="n">HistoPhases</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">calcControls</span><span class="p">,</span><span class="n">pawleyLookup</span><span class="p">,</span><span class="n">dlg</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>       
     2568    <span class="sd">&#39;&#39;&#39;Computes the point-by-point discrepancies between every data point in every histogram</span>
     2569<span class="sd">    and the observed value</span>
     2570<span class="sd">    </span>
     2571<span class="sd">    :returns: an np array of differences between observed and computed diffraction values.</span>
     2572<span class="sd">    &#39;&#39;&#39;</span>
    22542573    <span class="n">Values2Dict</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">values</span><span class="p">)</span>
    22552574    <span class="n">G2mv</span><span class="o">.</span><span class="n">Dict2Map</span><span class="p">(</span><span class="n">parmDict</span><span class="p">,</span><span class="n">varylist</span><span class="p">)</span>
     
    23152634            <span class="n">phfx</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%d</span><span class="s">:</span><span class="si">%d</span><span class="s">:&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">&#39;pId&#39;</span><span class="p">],</span><span class="n">hId</span><span class="p">)</span>
    23162635            <span class="n">SGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;SGData&#39;</span><span class="p">]</span>
     2636            <span class="n">im</span> <span class="o">=</span> <span class="mi">0</span>
     2637            <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;Type&#39;</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;modulated&#39;</span><span class="p">,</span><span class="s">&#39;magnetic&#39;</span><span class="p">]:</span>
     2638                <span class="n">SSGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">&#39;General&#39;</span><span class="p">][</span><span class="s">&#39;SSGData&#39;</span><span class="p">]</span>
     2639                <span class="n">SSGMT</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">ops</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">T</span> <span class="k">for</span> <span class="n">ops</span> <span class="ow">in</span> <span class="n">SSGData</span><span class="p">[</span><span class="s">&#39;SSGOps&#39;</span><span class="p">]])</span>
     2640                <span class="n">im</span> <span class="o">=</span> <span class="mi">1</span>  <span class="c">#offset in SS reflection list</span>
     2641                <span class="c">#??</span>
    23172642            <span class="n">A</span> <span class="o">=</span> <span class="p">[</span><span class="n">parmDict</span><span class="p">[</span><span class="n">pfx</span><span class="o">+</span><span class="s">&#39;A</span><span class="si">%d</span><span class="s">&#39;</span><span class="o">%</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span> <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="mi">6</span><span class="p">)]</span>
    23182643            <span class="n">G</span><span class="p">,</span><span class="n">g</span> <span class="o">=</span> <span class="n">G2lat</span><span class="o">.</span><span class="n">A2Gmat</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>       <span class="c">#recip &amp; real metric tensors</span>
    23192644            <span class="n">refDict</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">&#39;Data&#39;</span><span class="p">]</span>
    23202645            <span class="n">time0</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
    2321             <span class="n">StructureFactor2</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2646            <span class="k">if</span> <span class="n">im</span><span class="p">:</span>
     2647                <span class="n">SStructureFactor</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">im</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</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">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
     2648            <span class="k">else</span><span class="p">:</span>
     2649                <span class="n">StructureFactor2</span><span class="p">(</span><span class="n">refDict</span><span class="p">,</span><span class="n">G</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">SGData</span><span class="p">,</span><span class="n">calcControls</span><span class="p">,</span><span class="n">parmDict</span><span class="p">)</span>
    23222650<span class="c">#            print &#39;sf-calc time: %.3f&#39;%(time.time()-time0)</span>
    23232651            <span class="n">df</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]))</span>
     
    23302658            <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;F**2&#39;</span><span class="p">]:</span>
    23312659                <span class="k">for</span> <span class="n">i</span><span class="p">,</span><span class="n">ref</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">refDict</span><span class="p">[</span><span class="s">&#39;RefList&#39;</span><span class="p">]):</span>
    2332                     <span class="k">if</span> <span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
    2333                         <span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span> <span class="o">=</span> <span class="n">SCExtinction</span><span class="p">(</span><span class="n">ref</span><span class="p">,</span><span class="n">phfx</span><span class="p">,</span><span class="n">hfx</span><span class="p">,</span><span class="n">pfx</span><span class="p">,</span><span class="n">calcControls</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="mi">0</span><span class="p">]</span>
    2334                         <span class="n">w</span> <span class="o">=</span> <span class="mf">1.0</span><span class="o">/</span><span class="n">ref</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span>
    2335                         <span class="n">ref</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span> <span class="o">=</span> <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">]</span>  <span class="c">#correct Fc^2 for extinction</span>
    2336                         <span class="n">ref</span><span class="p">[</span><span class="mi">8</span><span class="p">]</span> <span class="o">=</span> <span class="n">ref</span><span class="p">[</span><span class="mi">5</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">phfx</span><span class="o">+</span><span class="s">&#39;Scale&#39;</span><span class="p">]</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">11</span><span class="p">])</span>
    2337                         <span class="k">if</span> <span class="n">w</span><span class="o">*</span><span class="n">ref</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">&#39;minF/sig&#39;</span><span class="p">]:</span>
    2338                             <span class="n">Fo</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">ref</span><span class="p">[</span><span class="mi">5</span><span class="p">])</span>
     2660                    <span class="k">if</span> <span cl