Changeset 1709 for sphinxdocs/build/html/_modules/GSASIIstrMath.html
- Timestamp:
- Mar 14, 2015 5:35:03 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sphinxdocs/build/html/_modules/GSASIIstrMath.html
r1513 r1709 55 55 <span class="sd">'''</span> 56 56 <span class="c">########### SVN repository information ###################</span> 57 <span class="c"># $Date: 201 4-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> 58 58 <span class="c"># $Author: vondreele $</span> 59 <span class="c"># $Revision: 1 498$</span>59 <span class="c"># $Revision: 1682 $</span> 60 60 <span class="c"># $URL: https://subversion.xray.aps.anl.gov/pyGSAS/trunk/GSASIIstrMath.py $</span> 61 <span class="c"># $Id: GSASIIstrMath.py 1 498 2014-09-16 21:20:57Z vondreele $</span>61 <span class="c"># $Id: GSASIIstrMath.py 1682 2015-02-28 15:16:41Z vondreele $</span> 62 62 <span class="c">########### SVN repository information ###################</span> 63 63 <span class="kn">import</span> <span class="nn">time</span> … … 70 70 <span class="kn">import</span> <span class="nn">scipy.stats</span> <span class="kn">as</span> <span class="nn">st</span> 71 71 <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">"$Revision: 1 498$"</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">"$Revision: 1682 $"</span><span class="p">)</span> 73 73 <span class="kn">import</span> <span class="nn">GSASIIElem</span> <span class="kn">as</span> <span class="nn">G2el</span> 74 74 <span class="kn">import</span> <span class="nn">GSASIIlattice</span> <span class="kn">as</span> <span class="nn">G2lat</span> … … 86 86 87 87 <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> 88 90 89 91 <span class="c">################################################################################</span> … … 116 118 <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> 117 119 <span class="n">General</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</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">'AtomPtrs'</span><span class="p">]</span> 118 121 <span class="n">cell</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">'Cell'</span><span class="p">][</span><span class="mi">1</span><span class="p">:</span><span class="mi">7</span><span class="p">]</span> 119 122 <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">'Atoms'</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">'Atoms'</span><span class="p">],</span><span class="n">cia</span><span class="o">+</span><span class="mi">8</span><span class="p">)</span> 121 124 <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">'pId'</span><span class="p">])</span><span class="o">+</span><span class="s">'::'</span> 122 125 <span class="k">if</span> <span class="n">Update</span><span class="p">:</span> … … 209 212 <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 & must be filled!</span> 210 213 <span class="n">General</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</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">'AtomPtrs'</span><span class="p">]</span> 211 215 <span class="n">cell</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">'Cell'</span><span class="p">][</span><span class="mi">1</span><span class="p">:</span><span class="mi">7</span><span class="p">]</span> 212 216 <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> … … 216 220 <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> 217 221 <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">'Atoms'</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">'Atoms'</span><span class="p">],</span><span class="n">cia</span><span class="o">+</span><span class="mi">8</span><span class="p">)</span> 219 223 <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">'pId'</span><span class="p">])</span><span class="o">+</span><span class="s">'::'</span> 220 224 <span class="n">RBModels</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'RBModels'</span><span class="p">]</span> … … 362 366 <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">'General'</span><span class="p">][</span><span class="s">'Pawley neg wt'</span><span class="p">]</span> 363 367 <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">'General'</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">'AtomPtrs'</span><span class="p">]</span> 364 369 <span class="n">textureData</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">'SH Texture'</span><span class="p">]</span> 365 370 <span class="n">SGData</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">'SGData'</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">'Atoms'</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">'Atoms'</span><span class="p">],</span><span class="n">cia</span><span class="o">+</span><span class="mi">8</span><span class="p">)</span> 367 372 <span class="n">cell</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">'Cell'</span><span class="p">][</span><span class="mi">1</span><span class="p">:</span><span class="mi">7</span><span class="p">]</span> 368 373 <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> … … 465 470 <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">'pId'</span><span class="p">]</span> 466 471 <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">'General'</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">'AtomPtrs'</span><span class="p">]</span> 467 473 <span class="n">SGData</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">'SGData'</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">'Atoms'</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">'Atoms'</span><span class="p">],</span><span class="n">cia</span><span class="o">+</span><span class="mi">8</span><span class="p">)</span> 469 475 <span class="n">cell</span> <span class="o">=</span> <span class="n">General</span><span class="p">[</span><span class="s">'Cell'</span><span class="p">][</span><span class="mi">1</span><span class="p">:</span><span class="mi">7</span><span class="p">]</span> 470 476 <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> … … 580 586 <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> 581 587 </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">'Needs a doc string'</span> 590 <span class="n">Natoms</span> <span class="o">=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">'Natoms'</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">'maxSSwave'</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">'F'</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">'Sfrac'</span><span class="p">],</span><span class="s">'X'</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">'Spos'</span><span class="p">],</span><span class="s">'Y'</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">'Spos'</span><span class="p">],</span><span class="s">'Z'</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">'Spos'</span><span class="p">],</span> 593 <span class="s">'U'</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">'Sadp'</span><span class="p">],</span><span class="s">'M'</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">'Smag'</span><span class="p">],</span><span class="s">'T'</span><span class="p">:</span><span class="n">maxSSwave</span><span class="p">[</span><span class="s">'Spos'</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">'Spos'</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">'Sfrac'</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">'Sadp'</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">'Smag'</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">'Fsin:'</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">'Fcos:'</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">'Fzero:'</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">'Fwid:'</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">'Tzero:'</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">'Xslope:'</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">'Yslope:'</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">'Zslope:'</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">'Xsin:'</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">'Ysin:'</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">'Zsin:'</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">'Xcos:'</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">'Ycos:'</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">'Zcos:'</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">'U11sin:'</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">'U22sin:'</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">'U33sin:'</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">'U12sin:'</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">'U13sin:'</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">'U23sin:'</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">'U11cos:'</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">'U22cos:'</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">'U33cos:'</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">'U12cos:'</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">'U13cos:'</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">'U23cos:'</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">'MXsin:'</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">'MYsin:'</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">'MZsin:'</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">'MXcos:'</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">'MYcos:'</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">'MZcos:'</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">'waveType:'</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">':</span><span class="si">%d</span><span class="s">'</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> 582 614 <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> 583 615 <span class="sd">''' Not Used: here only for comparison the StructureFactor2 - faster version</span> … … 596 628 597 629 <span class="sd"> '''</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>600 630 <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">':'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">hfx</span> 601 631 <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> … … 658 688 <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> 659 689 </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">''' </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"> 'RefList' list where each ref = h,k,l,m,d,...</span> 698 <span class="sd"> 'FF' 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"> '''</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">':'</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">'SGOps'</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">'SGOps'</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">'SSGOps'</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">'SSGOps'</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">'FFtables'</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">'BLtables'</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">'NC'</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">'histType'</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">'Lam'</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">'FP'</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">'FPP'</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">'FF'</span><span class="p">]):</span> 726 <span class="k">if</span> <span class="s">'N'</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">'histType'</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'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">'FF'</span><span class="p">][</span><span class="s">'El'</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">'FF'</span><span class="p">][</span><span class="s">'FF'</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">'RefList'</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">'RefList'</span><span class="p">]):</span> 733 <span class="k">if</span> <span class="s">'NT'</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">'histType'</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">'BabA'</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">'BabU'</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">'FF'</span><span class="p">][</span><span class="s">'FF'</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">'N'</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">'histType'</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">'FF'</span><span class="p">][</span><span class="s">'FF'</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">#'X'</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">'FF'</span><span class="p">][</span><span class="s">'FF'</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">'FF'</span><span class="p">][</span><span class="s">'El'</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">'FF'</span><span class="p">][</span><span class="s">'FF'</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"><</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"><</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">'SGInv'</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> 660 776 <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> 661 777 <span class="sd">''' Compute structure factors for all h,k,l for phase</span> … … 673 789 674 790 <span class="sd"> '''</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>677 791 <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">':'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">hfx</span> 678 792 <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> … … 750 864 <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> 751 865 <span class="s">'Needs a doc string'</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>754 866 <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">':'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="n">hfx</span> 755 867 <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> … … 848 960 <span class="k">return</span> <span class="n">dFdvDict</span> 849 961 </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">'Needs a doc string'</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">':'</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">'SGOps'</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">'SGOps'</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">'SSGOps'</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">'SSGOps'</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">'FFtables'</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">'BLtables'</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">'RefList'</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">'NC'</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">'histType'</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">'Lam'</span><span class="p">])</span> 980 <span class="k">elif</span> <span class="s">'X'</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">'histType'</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">'FP'</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">'FPP'</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">'RefList'</span><span class="p">]):</span> 992 <span class="k">if</span> <span class="s">'T'</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">'histType'</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">'BabU'</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">'BabA'</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">'FF'</span><span class="p">][</span><span class="s">'El'</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">'FF'</span><span class="p">][</span><span class="s">'FF'</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"><</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"><</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">'BabA'</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">'SGInv'</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">'BabA'</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">'Afrac:'</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">'dAx:'</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">'dAy:'</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">'dAz:'</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">'AUiso:'</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">'AU11:'</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">'AU22:'</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">'AU33:'</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">'AU12:'</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">'AU13:'</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">'AU23:'</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+'Xsin:'+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">'BabA'</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">'BabU'</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> 851 1078 <span class="sd">''' Single crystal extinction function; returns extinction & derivative</span> 852 1079 <span class="sd"> '''</span> … … 854 1081 <span class="n">dervDict</span> <span class="o">=</span> <span class="p">{}</span> 855 1082 <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">'EType'</span><span class="p">]</span> <span class="o">!=</span> <span class="s">'None'</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> 857 1084 <span class="k">if</span> <span class="s">'C'</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">'Type'</span><span class="p">]:</span> 858 1085 <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">'Lam'</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span> <span class="c">#cos(2theta)</span> 859 1086 <span class="k">else</span><span class="p">:</span> <span class="c">#'T'</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> 861 1088 <span class="k">if</span> <span class="s">'SXC'</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">'Type'</span><span class="p">]:</span> 862 1089 <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">'Vol'</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span> 863 1090 <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">'Lam'</span><span class="p">]</span> 864 1091 <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">'Cos2TM'</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">'Cos2TM'</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">'Lam'</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">'Lam'</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span> 866 1093 <span class="k">elif</span> <span class="s">'SNT'</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">'Type'</span><span class="p">]:</span> 867 1094 <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">'Vol'</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span> 868 1095 <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> 870 1097 <span class="k">elif</span> <span class="s">'SNC'</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">'Type'</span><span class="p">]:</span> 871 1098 <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">'Vol'</span><span class="p">]</span><span class="o">**</span><span class="mi">2</span> … … 879 1106 <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">'Tbar'</span><span class="p">]</span> 880 1107 <span class="k">else</span><span class="p">:</span> <span class="c">#'T'</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> 882 1109 <span class="k">if</span> <span class="s">'Primary'</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">'EType'</span><span class="p">]:</span> 883 1110 <span class="n">PLZ</span> <span class="o">*=</span> <span class="mf">1.5</span> … … 910 1137 911 1138 <span class="k">if</span> <span class="s">'Primary'</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">'EType'</span><span class="p">]</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="s">'Ep'</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">'Ep'</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">'Ep'</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> 913 1140 <span class="k">if</span> <span class="s">'II'</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">'EType'</span><span class="p">]</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="s">'Es'</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">'Es'</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">'Es'</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">'Es'</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">'Es'</span><span class="p">])</span><span class="o">**</span><span class="mi">3</span> 915 1142 <span class="k">if</span> <span class="s">'I'</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">'EType'</span><span class="p">]</span> <span class="ow">and</span> <span class="n">phfx</span><span class="o">+</span><span class="s">'Eg'</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">'Eg'</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">'Eg'</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">'Eg'</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">'Eg'</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> 917 1144 918 1145 <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> … … 938 1165 <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">'::'</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. '0::A0'</span> 939 1166 <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">'::'</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. '0::D11'</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> 941 1168 <span class="k">return</span> <span class="n">newCellDict</span> <span class="c"># is e.g. {'0::D11':A0-D11}</span> 942 1169 </div> … … 958 1185 <span class="k">return</span> <span class="n">newAtomDict</span> 959 1186 </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> 961 1188 <span class="s">'Spherical harmonics texture'</span> 962 1189 <span class="n">IFCoup</span> <span class="o">=</span> <span class="s">'Bragg'</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">'instType'</span><span class="p">]</span> … … 964 1191 <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">'2-theta'</span><span class="p">]</span> 965 1192 <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> 967 1194 <span class="n">odfCor</span> <span class="o">=</span> <span class="mf">1.0</span> 968 1195 <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> … … 981 1208 <span class="k">return</span> <span class="n">odfCor</span> 982 1209 </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> 984 1211 <span class="s">'Spherical harmonics texture derivatives'</span> 985 1212 <span class="k">if</span> <span class="s">'T'</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">'histType'</span><span class="p">]:</span> 986 1213 <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">'2-theta'</span><span class="p">]</span> 987 1214 <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> 989 1216 <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> 990 1217 <span class="n">IFCoup</span> <span class="o">=</span> <span class="s">'Bragg'</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">'instType'</span><span class="p">]</span> … … 1010 1237 <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> 1011 1238 </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> 1013 1240 <span class="s">'spherical harmonics preferred orientation (cylindrical symmetry only)'</span> 1014 1241 <span class="k">if</span> <span class="s">'T'</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">'histType'</span><span class="p">]:</span> 1015 1242 <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">'2-theta'</span><span class="p">]</span> 1016 1243 <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> 1018 1245 <span class="n">odfCor</span> <span class="o">=</span> <span class="mf">1.0</span> 1019 1246 <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> … … 1035 1262 <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> 1036 1263 </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> 1038 1265 <span class="s">'spherical harmonics preferred orientation derivatives (cylindrical symmetry only)'</span> 1039 1266 <span class="k">if</span> <span class="s">'T'</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">'histType'</span><span class="p">]:</span> 1040 1267 <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">'2-theta'</span><span class="p">]</span> 1041 1268 <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> 1043 1270 <span class="n">FORPI</span> <span class="o">=</span> <span class="mf">12.5663706143592</span> 1044 1271 <span class="n">odfCor</span> <span class="o">=</span> <span class="mf">1.0</span> … … 1063 1290 <span class="k">return</span> <span class="n">odfCor</span><span class="p">,</span><span class="n">dFdODF</span> 1064 1291 </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> 1066 1293 <span class="s">'March-Dollase preferred orientation correction'</span> 1067 1294 <span class="n">POcorr</span> <span class="o">=</span> <span class="mf">1.0</span> … … 1077 1304 <span class="k">return</span> <span class="n">POcorr</span> 1078 1305 </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> 1080 1307 <span class="s">'Needs a doc string'</span> 1081 1308 <span class="n">POcorr</span> <span class="o">=</span> <span class="mf">1.0</span> … … 1095 1322 <span class="k">else</span><span class="p">:</span> <span class="c">#spherical harmonics</span> 1096 1323 <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">'SHord'</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> 1098 1325 <span class="k">return</span> <span class="n">POcorr</span><span class="p">,</span><span class="n">POderv</span> 1099 1326 </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> 1101 1328 <span class="s">'Needs a doc string'</span> 1102 1329 <span class="k">if</span> <span class="s">'Debye'</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">'instType'</span><span class="p">]:</span> 1103 1330 <span class="k">if</span> <span class="s">'T'</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">'histType'</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">'Cylinder'</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">'Absorption'</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">'2-theta'</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">'Cylinder'</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">'Absorption'</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">'2-theta'</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> 1105 1332 <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">'Cylinder'</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">'Absorption'</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">'Cylinder'</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">'Absorption'</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> 1107 1334 <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">'SurfRoughA'</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">'SurfRoughB'</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">'SurfRoughA'</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">'SurfRoughB'</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> 1111 1338 <span class="s">'Needs a doc string'</span> 1112 1339 <span class="k">if</span> <span class="s">'Debye'</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">'instType'</span><span class="p">]:</span> 1113 1340 <span class="k">if</span> <span class="s">'T'</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">'histType'</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">'Cylinder'</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">'Absorption'</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">'2-theta'</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">'Cylinder'</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">'Absorption'</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">'2-theta'</span><span class="p">],</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span> 1115 1342 <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">'Cylinder'</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">'Absorption'</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">'Cylinder'</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">'Absorption'</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> 1117 1344 <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">'SurfRoughA'</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">'SurfRoughB'</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">'SurfRoughA'</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">'SurfRoughB'</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> 1119 1346 </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> 1121 1348 <span class="s">'Needs a doc string'</span> 1122 1349 <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> … … 1124 1351 <span class="k">if</span> <span class="s">'T'</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">'histType'</span><span class="p">]:</span> 1125 1352 <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">'2-theta'</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> 1127 1354 <span class="k">else</span><span class="p">:</span> <span class="c">#'C'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> 1129 1356 <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">'Lam'</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">'Lam1'</span><span class="p">,</span><span class="mf">1.0</span><span class="p">))</span> 1130 1357 <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">'Vol'</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">'Vol'</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span> 1132 1359 <span class="k">if</span> <span class="s">'X'</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">'histType'</span><span class="p">]:</span> 1133 1360 <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> … … 1145 1372 <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> 1146 1373 </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> 1148 1375 <span class="s">'Needs a doc string'</span> 1149 1376 <span class="n">delt</span> <span class="o">=</span> <span class="mf">0.001</span> 1150 1377 <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Extinction'</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> 1152 1379 <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Extinction'</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> 1154 1381 <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Extinction'</span><span class="p">]</span> <span class="o">+=</span> <span class="n">delt</span> 1155 1382 <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> 1156 1383 </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> 1158 1385 <span class="s">'Needs a doc string'</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">'Scale'</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">'Scale'</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">'Scale'</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">'Scale'</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> 1160 1387 <span class="k">if</span> <span class="s">'X'</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">'Type'</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">'Polariz.'</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">'Azimuth'</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">'Polariz.'</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">'Azimuth'</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> 1162 1389 <span class="n">POcorr</span> <span class="o">=</span> <span class="mf">1.0</span> 1163 1390 <span class="k">if</span> <span class="n">pfx</span><span class="o">+</span><span class="s">'SHorder'</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> 1165 1392 <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">'poType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'MD'</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> 1167 1394 <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">'SHord'</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> 1169 1396 <span class="n">Icorr</span> <span class="o">*=</span> <span class="n">POcorr</span> 1170 1397 <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> 1172 1399 <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> 1174 1401 <span class="n">Icorr</span> <span class="o">*=</span> <span class="n">ExtCorr</span> 1175 1402 <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> 1176 1403 </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> 1178 1405 <span class="s">'Needs a doc string'</span> <span class="c">#need powder extinction derivs!</span> 1179 1406 <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">'Scale'</span><span class="p">]</span> 1180 1407 <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">'Scale'</span><span class="p">]</span> 1181 1408 <span class="k">if</span> <span class="s">'X'</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">'Type'</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">'Polariz.'</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">'Azimuth'</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">'Polariz.'</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">'Azimuth'</span><span class="p">])</span> 1183 1410 <span class="n">dIdPola</span> <span class="o">/=</span> <span class="n">pola</span> 1184 1411 <span class="k">else</span><span class="p">:</span> <span class="c">#'N'</span> … … 1188 1415 <span class="n">dIdPO</span> <span class="o">=</span> <span class="p">{}</span> 1189 1416 <span class="k">if</span> <span class="n">pfx</span><span class="o">+</span><span class="s">'SHorder'</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> 1191 1418 <span class="k">for</span> <span class="n">iSH</span> <span class="ow">in</span> <span class="n">dFdODF</span><span class="p">:</span> 1192 1419 <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> … … 1194 1421 <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> 1195 1422 <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">'poType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'MD'</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">'SHord'</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> 1197 1424 <span class="k">for</span> <span class="n">iPO</span> <span class="ow">in</span> <span class="n">dIdPO</span><span class="p">:</span> 1198 1425 <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> 1199 1426 <span class="k">if</span> <span class="s">'T'</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">'Type'</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> 1202 1429 <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> 1205 1432 <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> 1206 1433 </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> 1208 1435 <span class="s">'Needs a doc string'</span> 1209 1436 <span class="k">if</span> <span class="s">'C'</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">'histType'</span><span class="p">]:</span> <span class="c">#All checked & 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> 1211 1438 <span class="c">#crystallite size</span> 1212 1439 <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">'SizeType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'isotropic'</span><span class="p">:</span> … … 1225 1452 <span class="c">#microstrain </span> 1226 1453 <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">'MustrainType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'isotropic'</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">'Mustrain;i'</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">'Mustrain;i'</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> 1228 1455 <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">'MustrainType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'uniaxial'</span><span class="p">:</span> 1229 1456 <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> … … 1232 1459 <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">'Mustrain;i'</span><span class="p">]</span> 1233 1460 <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">'Mustrain;a'</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> 1235 1462 <span class="k">else</span><span class="p">:</span> <span class="c">#generalized - P.W. Stephens model</span> 1236 1463 <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> … … 1238 1465 <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> 1239 1466 <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">'Mustrain:'</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> 1241 1468 <span class="k">elif</span> <span class="s">'T'</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">'histType'</span><span class="p">]:</span> <span class="c">#All checked & OK</span> 1242 1469 <span class="c">#crystallite size</span> 1243 1470 <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">'SizeType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'isotropic'</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">'difC'</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">'Size;i'</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">'difC'</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">'Size;i'</span><span class="p">]</span> 1245 1472 <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">'SizeType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'uniaxial'</span><span class="p">:</span> <span class="c">#OK</span> 1246 1473 <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> 1247 1474 <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">'SizeAxis'</span><span class="p">])</span> 1248 1475 <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">'difC'</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">'Size;i'</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">'Size;a'</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">'difC'</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">'Size;i'</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">'Size;a'</span><span class="p">])</span> 1250 1477 <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">'Size;a'</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">'Size;i'</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> 1251 1478 <span class="k">else</span><span class="p">:</span> <span class="c">#ellipsoidal crystallites #OK</span> … … 1253 1480 <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> 1254 1481 <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">'difC'</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">'difC'</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> 1256 1483 <span class="c">#microstrain </span> 1257 1484 <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">'MustrainType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'isotropic'</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">'difC'</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">'Mustrain;i'</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">'difC'</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">'Mustrain;i'</span><span class="p">]</span> 1259 1486 <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">'MustrainType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'uniaxial'</span><span class="p">:</span> <span class="c">#OK</span> 1260 1487 <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> … … 1263 1490 <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">'Mustrain;i'</span><span class="p">]</span> 1264 1491 <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">'Mustrain;a'</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">'difC'</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">'difC'</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> 1266 1493 <span class="k">else</span><span class="p">:</span> <span class="c">#generalized - P.W. Stephens model OK</span> 1267 1494 <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> … … 1269 1496 <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> 1270 1497 <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">'Mustrain:'</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">'difC'</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">'difC'</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> 1272 1499 1273 1500 <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">'Size;mx'</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">'Mustrain;mx'</span><span class="p">]</span> … … 1276 1503 <span class="k">return</span> <span class="n">sig</span><span class="p">,</span><span class="n">gam</span> 1277 1504 </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> 1279 1506 <span class="s">'Needs a doc string'</span> 1280 1507 <span class="n">gamDict</span> <span class="o">=</span> <span class="p">{}</span> 1281 1508 <span class="n">sigDict</span> <span class="o">=</span> <span class="p">{}</span> 1282 1509 <span class="k">if</span> <span class="s">'C'</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">'histType'</span><span class="p">]:</span> <span class="c">#All checked & 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> 1285 1512 <span class="c">#crystallite size derivatives</span> 1286 1513 <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">'SizeType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'isotropic'</span><span class="p">:</span> … … 1317 1544 <span class="c">#microstrain derivatives </span> 1318 1545 <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">'MustrainType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'isotropic'</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">'Mustrain;i'</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">'Mustrain;i'</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> 1320 1547 <span class="n">gamDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Mustrain;i'</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">'Mustrain;mx'</span><span class="p">]</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span> 1321 1548 <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Mustrain;i'</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">'Mustrain;mx'</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> … … 1336 1563 <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Mustrain;a'</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">'Mustrain;mx'</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">ateln2</span> 1337 1564 <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> 1339 1566 <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> 1340 1567 <span class="n">Sum</span> <span class="o">=</span> <span class="mi">0</span> … … 1351 1578 <span class="k">else</span><span class="p">:</span> <span class="c">#'T'OF - All checked & OK</span> 1352 1579 <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">'SizeType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'isotropic'</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">'difC'</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">'Size;i'</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">'difC'</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">'Size;i'</span><span class="p">]</span> 1354 1581 <span class="n">gamDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Size;i'</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">'Size;mx'</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">'Size;i'</span><span class="p">]</span> 1355 1582 <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Size;i'</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">'Size;mx'</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">'Size;i'</span><span class="p">])</span> 1356 1583 <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">'SizeType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'uniaxial'</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">'difC'</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">'difC'</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> 1358 1585 <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> 1359 1586 <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">'SizeAxis'</span><span class="p">])</span> … … 1371 1598 <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Size;a'</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">'Size;mx'</span><span class="p">])</span><span class="o">**</span><span class="mi">2</span><span class="o">/</span><span class="n">ateln2</span> 1372 1599 <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">'difC'</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">'difC'</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> 1374 1601 <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">'Size:</span><span class="si">%d</span><span class="s">'</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> 1375 1602 <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> … … 1384 1611 <span class="c">#microstrain derivatives </span> 1385 1612 <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">'MustrainType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'isotropic'</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">'difC'</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">'Mustrain;i'</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">'Mustrain;i'</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">'difC'</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">'Mustrain;mx'</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">'difC'</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">'Mustrain;i'</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">'Mustrain;i'</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">'difC'</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">'Mustrain;mx'</span><span class="p">]</span> <span class="c">#OK</span> 1388 1615 <span class="n">sigDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Mustrain;i'</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">'Mustrain;mx'</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">'Mustrain;i'</span><span class="p">])</span> 1389 1616 <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">'MustrainType'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'uniaxial'</span><span class="p">:</span> … … 1393 1620 <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">'Mustrain;i'</span><span class="p">]</span> 1394 1621 <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">'Mustrain;a'</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">'difC'</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">'difC'</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> 1396 1623 <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> 1397 1624 <span class="n">Mgam</span> <span class="o">=</span> <span class="n">gami</span><span class="o">/</span><span class="n">sqtrm</span> … … 1405 1632 <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">'MuPwrs'</span><span class="p">]</span> 1406 1633 <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">'difC'</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">'difC'</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> 1408 1635 <span class="n">Sum</span> <span class="o">=</span> <span class="mi">0</span> 1409 1636 <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> … … 1420 1647 <span class="k">return</span> <span class="n">sigDict</span><span class="p">,</span><span class="n">gamDict</span> 1421 1648 </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> 1423 1650 <span class="s">'Needs a doc string'</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">'mV0'</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">'mV1'</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">'mV2'</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> 1429 1659 <span class="k">if</span> <span class="s">'C'</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">'histType'</span><span class="p">]:</span> 1430 1660 <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">'Zero'</span><span class="p">]</span> … … 1440 1670 <span class="k">return</span> <span class="n">pos</span> 1441 1671 </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> 1443 1673 <span class="s">'Needs a doc string'</span> 1444 1674 <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">'mV0'</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">'mV1'</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">'mV2'</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> 1447 1683 <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> 1448 1684 <span class="n">dsp</span> <span class="o">=</span> <span class="mf">1.</span><span class="o">/</span><span class="n">dst</span> 1449 1685 <span class="k">if</span> <span class="s">'C'</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">'histType'</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">'Zero'</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">'Zero'</span><span class="p">]</span> 1451 1687 <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> 1452 1688 <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> 1455 1690 <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">'Gonio. radius'</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">'Gonio. radius'</span><span class="p">])</span> <span class="c">#shifts in microns</span> 1457 1694 <span class="k">if</span> <span class="s">'Bragg'</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">'instType'</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> 1461 1698 <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> 1465 1702 <span class="k">elif</span> <span class="s">'T'</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">'histType'</span><span class="p">]:</span> 1466 1703 <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">'difC'</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> … … 1469 1706 <span class="n">dpdDA</span> <span class="o">=</span> <span class="n">dsp</span><span class="o">**</span><span class="mi">2</span> 1470 1707 <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">'difC'</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> 1472 1711 </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> 1474 1713 <span class="s">'Needs a doc string'</span> 1475 1714 <span class="n">laue</span> <span class="o">=</span> <span class="n">SGData</span><span class="p">[</span><span class="s">'SGLaue'</span><span class="p">]</span> … … 1478 1717 <span class="k">if</span> <span class="n">laue</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'m3'</span><span class="p">,</span><span class="s">'m3m'</span><span class="p">]:</span> 1479 1718 <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">'D11'</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">'eA'</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">'eA'</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> 1481 1720 <span class="k">elif</span> <span class="n">laue</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'6/m'</span><span class="p">,</span><span class="s">'6/mmm'</span><span class="p">,</span><span class="s">'3m1'</span><span class="p">,</span><span class="s">'31m'</span><span class="p">,</span><span class="s">'3'</span><span class="p">]:</span> 1482 1721 <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">'D11'</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">'D33'</span><span class="p">]</span><span class="o">*</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span> … … 1499 1738 <span class="n">parmDict</span><span class="p">[</span><span class="n">phfx</span><span class="o">+</span><span class="s">'D12'</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">'D13'</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">'D23'</span><span class="p">]</span><span class="o">*</span><span class="n">k</span><span class="o">*</span><span class="n">l</span> 1500 1739 <span class="k">if</span> <span class="s">'C'</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">'histType'</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> 1502 1741 <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">'difC'</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">'difC'</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> 1504 1743 </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> 1506 1745 <span class="s">'Needs a doc string'</span> 1507 1746 <span class="n">laue</span> <span class="o">=</span> <span class="n">SGData</span><span class="p">[</span><span class="s">'SGLaue'</span><span class="p">]</span> … … 1510 1749 <span class="k">if</span> <span class="n">laue</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'m3'</span><span class="p">,</span><span class="s">'m3m'</span><span class="p">]:</span> 1511 1750 <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">'D11'</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">'eA'</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">'eA'</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> 1513 1752 <span class="k">elif</span> <span class="n">laue</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'6/m'</span><span class="p">,</span><span class="s">'6/mmm'</span><span class="p">,</span><span class="s">'3m1'</span><span class="p">,</span><span class="s">'31m'</span><span class="p">,</span><span class="s">'3'</span><span class="p">]:</span> 1514 1753 <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">'D11'</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">'D33'</span><span class="p">:</span><span class="n">l</span><span class="o">**</span><span class="mi">2</span><span class="p">}</span> … … 1533 1772 <span class="k">if</span> <span class="s">'C'</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">'histType'</span><span class="p">]:</span> 1534 1773 <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> 1536 1775 <span class="k">else</span><span class="p">:</span> 1537 1776 <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">'difC'</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">'difC'</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> 1539 1778 <span class="k">return</span> <span class="n">dDijDict</span> 1540 1779 </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 1541 1784 <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> 1542 1785 <span class="s">'Needs a doc string'</span> … … 1566 1809 <span class="n">refLists</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">'Reflection Lists'</span><span class="p">]</span> 1567 1810 <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> 1568 1813 <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">'General'</span><span class="p">][</span><span class="s">'Type'</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'modulated'</span><span class="p">,</span><span class="s">'magnetic'</span><span class="p">]:</span> 1816 <span class="n">im</span> <span class="o">=</span> <span class="mi">1</span> 1569 1817 <span class="n">pId</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'pId'</span><span class="p">]</span> 1570 1818 <span class="n">phfx</span> <span class="o">=</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="o">%</span><span class="p">(</span><span class="n">pId</span><span class="p">,</span><span class="n">hId</span><span class="p">)</span> … … 1574 1822 <span class="n">sumFosq</span> <span class="o">=</span> <span class="mf">0.0</span> 1575 1823 <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> 1576 1825 <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">'RefList'</span><span class="p">]:</span> 1577 1826 <span class="k">if</span> <span class="s">'C'</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">'histType'</span><span class="p">]:</span> 1578 1827 <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> 1582 1831 <span class="n">iFin2</span> <span class="o">=</span> <span class="n">iFin</span> 1583 1832 <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> … … 1586 1835 <span class="k">break</span> 1587 1836 <span class="k">elif</span> <span class="n">iBeg</span> <span class="o"><</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">#>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">#>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> 1589 1839 <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> 1592 1842 <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> 1593 1843 <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">></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">></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 1596 1848 <span class="k">elif</span> <span class="s">'T'</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">'histType'</span><span class="p">]:</span> 1597 1849 <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> 1601 1853 <span class="k">if</span> <span class="n">iBeg</span> <span class="o"><</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">#>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">></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">#>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">></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> 1606 1859 <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> 1608 1861 <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">'Residuals'</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Rf'</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">'Residuals'</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Rf^2'</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">'Residuals'</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Rf'</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">'Residuals'</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Rf^2'</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">'Residuals'</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Rf'</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">'Residuals'</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Rf^2'</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">'Residuals'</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">'sumInt'</span><span class="p">]</span> <span class="o">=</span> <span class="n">sumInt</span> 1612 1870 <span class="n">Histogram</span><span class="p">[</span><span class="s">'Residuals'</span><span class="p">][</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Nref'</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">'RefList'</span><span class="p">])</span> 1613 1871 <span class="n">Histogram</span><span class="p">[</span><span class="s">'Residuals'</span><span class="p">][</span><span class="s">'hId'</span><span class="p">]</span> <span class="o">=</span> <span class="n">hId</span> … … 1619 1877 <span class="s">'Needs a doc string'</span> 1620 1878 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> 1622 1880 <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">'U'</span><span class="p">]</span> 1623 1881 <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">'V'</span><span class="p">]</span> … … 1625 1883 <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">'X'</span><span class="p">]</span> 1626 1884 <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">'Y'</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> 1629 1887 <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> 1630 1888 <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> 1632 1890 <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> 1633 1891 <span class="k">return</span> <span class="n">sig</span><span class="p">,</span><span class="n">gam</span> 1634 1892 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">'sig-0'</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">'sig-1'</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">'sig-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="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">'sig-q'</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">'X'</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">'Y'</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">'sig-0'</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">'sig-1'</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">'sig-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="o">+</span><span class="n">parmDict</span><span class="p">[</span><span class="n">hfx</span><span class="o">+</span><span class="s">'sig-q'</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">'X'</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">'Y'</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> 1640 1898 <span class="n">sig</span> <span class="o">+=</span> <span class="n">Ssig</span> 1641 1899 <span class="n">gam</span> <span class="o">+=</span> <span class="n">Sgam</span> 1642 1900 <span class="k">return</span> <span class="n">sig</span><span class="p">,</span><span class="n">gam</span> 1643 1901 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">'alpha'</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">'beta-0'</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">'beta-1'</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">'beta-q'</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">'alpha'</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">'beta-0'</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">'beta-1'</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">'beta-q'</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> 1647 1905 <span class="k">return</span> <span class="n">alp</span><span class="p">,</span><span class="n">bet</span> 1648 1906 1649 1907 <span class="n">hId</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">'hId'</span><span class="p">]</span> 1650 1908 <span class="n">hfx</span> <span class="o">=</span> <span class="s">':</span><span class="si">%d</span><span class="s">:'</span><span class="o">%</span><span class="p">(</span><span class="n">hId</span><span class="p">)</span> 1651 1909 <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">'bakType'</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">'histType'</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">'sumBk'</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">'histType'</span><span class="p">],</span><span class="n">x</span><span class="p">)</span> 1653 1911 <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> 1654 1912 <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> … … 1667 1925 <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">'Reflection Lists'</span><span class="p">]:</span> 1668 1926 <span class="n">refDict</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">'Reflection Lists'</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> 1669 1929 <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> 1670 1930 <span class="n">pId</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'pId'</span><span class="p">]</span> … … 1674 1934 <span class="n">SGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">][</span><span class="s">'SGData'</span><span class="p">]</span> 1675 1935 <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">'SGOps'</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">'A</span><span class="si">%d</span><span class="s">'</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">'General'</span><span class="p">][</span><span class="s">'Type'</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'modulated'</span><span class="p">,</span><span class="s">'magnetic'</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">'General'</span><span class="p">][</span><span class="s">'SSGData'</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">'SSGOps'</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">'A</span><span class="si">%d</span><span class="s">'</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> 1677 1944 <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 & real metric tensors</span> 1678 1945 <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> … … 1680 1947 <span class="k">if</span> <span class="ow">not</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'doPawley'</span><span class="p">):</span> 1681 1948 <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> 1683 1953 <span class="c"># print 'sf calc time: %.3fs'%(time.time()-time0)</span> 1684 1954 <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> … … 1686 1956 <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">'RefList'</span><span class="p">]):</span> 1687 1957 <span class="k">if</span> <span class="s">'C'</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">'histType'</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> 1689 1962 <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 & 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 & 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> 1696 1969 1697 1970 <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'doPawley'</span><span class="p">):</span> 1698 1971 <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">'PWLref:</span><span class="si">%d</span><span class="s">'</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">'</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="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">'PWLref:</span><span class="si">%d</span><span class="s">'</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">'</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">'</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">'PWLref:</span><span class="si">%d</span><span class="s">'</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">'</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="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> 1701 1977 <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> 1702 1978 <span class="c"># print ' ***Error %d,%d,%d missing from Pawley reflection list ***'%(h,k,l)</span> 1703 1979 <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> 1707 1983 <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> 1708 1984 <span class="k">continue</span> … … 1712 1988 <span class="n">badPeak</span> <span class="o">=</span> <span class="bp">True</span> 1713 1989 <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">#>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">#>90% of time spent here</span> 1715 1991 <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> 1718 1994 <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> 1719 1995 <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> … … 1724 2000 <span class="k">elif</span> <span class="n">iBeg</span> <span class="o">></span> <span class="n">iFin</span><span class="p">:</span> <span class="c">#bad peak coeff - skip</span> 1725 2001 <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> 1727 2003 <span class="k">elif</span> <span class="s">'T'</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">'histType'</span><span class="p">]:</span> 1728 2004 <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> 1729 2005 <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">'2-theta'</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 & 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">'2-theta'</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 & 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> 1737 2013 <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'doPawley'</span><span class="p">):</span> 1738 2014 <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">'PWLref:</span><span class="si">%d</span><span class="s">'</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">'</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="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">'PWLref:</span><span class="si">%d</span><span class="s">'</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">'</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">'</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">'PWLref:</span><span class="si">%d</span><span class="s">'</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">'</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="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> 1741 2020 <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> 1742 2021 <span class="c"># print ' ***Error %d,%d,%d missing from Pawley reflection list ***'%(h,k,l)</span> 1743 2022 <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> 1747 2026 <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> 1748 2027 <span class="k">continue</span> … … 1752 2031 <span class="n">badPeak</span> <span class="o">=</span> <span class="bp">True</span> 1753 2032 <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> 1755 2034 <span class="c"># print 'profile calc time: %.3fs'%(time.time()-time0)</span> 1756 2035 <span class="k">if</span> <span class="n">badPeak</span><span class="p">:</span> … … 1827 2106 <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">'Reflection Lists'</span><span class="p">]:</span> 1828 2107 <span class="n">refDict</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">'Reflection Lists'</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> 1829 2110 <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> 1830 2111 <span class="n">SGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">][</span><span class="s">'SGData'</span><span class="p">]</span> 1831 2112 <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">'SGOps'</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">'General'</span><span class="p">][</span><span class="s">'Type'</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'modulated'</span><span class="p">,</span><span class="s">'magnetic'</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">'General'</span><span class="p">][</span><span class="s">'SSGData'</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">'SSGOps'</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> 1832 2119 <span class="n">pId</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'pId'</span><span class="p">]</span> 1833 2120 <span class="n">pfx</span> <span class="o">=</span> <span class="s">'</span><span class="si">%d</span><span class="s">::'</span><span class="o">%</span><span class="p">(</span><span class="n">pId</span><span class="p">)</span> 1834 2121 <span class="n">phfx</span> <span class="o">=</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="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">'A</span><span class="si">%d</span><span class="s">'</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">'A</span><span class="si">%d</span><span class="s">'</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> 1836 2124 <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 & real metric tensors</span> 1837 2125 <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> 1838 2126 <span class="k">if</span> <span class="ow">not</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'doPawley'</span><span class="p">):</span> 1839 2127 <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> 1841 2132 <span class="c"># print 'sf-derv time %.3fs'%(time.time()-time0)</span> 1842 2133 <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> 1843 2134 <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> 1844 2135 <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">'RefList'</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> 1846 2140 <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> 1847 2141 <span class="k">if</span> <span class="s">'T'</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">'histType'</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> 1850 2144 <span class="k">if</span> <span class="s">'C'</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">'histType'</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> 1852 2146 <span class="k">else</span><span class="p">:</span> <span class="c">#'T'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> 1856 2150 <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> 1857 2151 <span class="k">continue</span> 1858 2152 <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> 1859 2153 <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> 1861 2155 <span class="k">if</span> <span class="s">'C'</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">'histType'</span><span class="p">]:</span> 1862 2156 <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> … … 1864 2158 <span class="n">lenBF</span> <span class="o">=</span> <span class="n">iFin</span><span class="o">-</span><span class="n">iBeg</span> 1865 2159 <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> 1867 2161 <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> 1869 2163 <span class="n">dervDict</span> <span class="o">=</span> <span class="p">{</span><span class="s">'int'</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">'pos'</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">'sig'</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">'gam'</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">'shl'</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">'L1/L2'</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> 1870 2164 <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> 1872 2166 <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> 1873 2167 <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> … … 1875 2169 <span class="n">lenBF2</span> <span class="o">=</span> <span class="n">iFin2</span><span class="o">-</span><span class="n">iBeg2</span> 1876 2170 <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> 1878 2172 <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> 1881 2175 <span class="n">dervDict2</span> <span class="o">=</span> <span class="p">{</span><span class="s">'int'</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">'pos'</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">'sig'</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">'gam'</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">'shl'</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">'L1/L2'</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> 1882 2176 <span class="k">else</span><span class="p">:</span> <span class="c">#'T'OF</span> … … 1885 2179 <span class="k">break</span> 1886 2180 <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> 1888 2182 <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> 1890 2184 <span class="n">dervDict</span> <span class="o">=</span> <span class="p">{</span><span class="s">'int'</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">'pos'</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">'alp'</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">'bet'</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">'sig'</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">'gam'</span><span class="p">:</span><span class="n">dMdpk</span><span class="p">[</span><span class="mi">5</span><span class="p">]}</span> 1891 2185 <span class="k">if</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'doPawley'</span><span class="p">):</span> 1892 2186 <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> 1893 2187 <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">'PWLref:'</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">'</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="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">'PWLref:'</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">'</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">'</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">'PWLref:'</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">'</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="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> 1895 2192 <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">'int'</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">'int'</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> 1897 2194 <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">'int'</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">'int'</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> 1899 2196 <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> 1900 2197 <span class="k">except</span><span class="p">:</span> <span class="c"># ValueError:</span> 1901 2198 <span class="k">pass</span> 1902 2199 <span class="k">if</span> <span class="s">'C'</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">'histType'</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> 1904 2201 <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">'Scale'</span><span class="p">:[</span><span class="n">dIdsh</span><span class="p">,</span><span class="s">'int'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'Polariz.'</span><span class="p">:[</span><span class="n">dIdpola</span><span class="p">,</span><span class="s">'int'</span><span class="p">],</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Scale'</span><span class="p">:[</span><span class="n">dIdsp</span><span class="p">,</span><span class="s">'int'</span><span class="p">],</span> 1905 2202 <span class="n">hfx</span><span class="o">+</span><span class="s">'U'</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">'sig'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'V'</span><span class="p">:[</span><span class="n">tanth</span><span class="p">,</span><span class="s">'sig'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'W'</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">'sig'</span><span class="p">],</span> … … 1914 2211 <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">'Absorption'</span><span class="p">:[</span><span class="n">dFdAb</span><span class="p">,</span><span class="s">'int'</span><span class="p">],})</span> 1915 2212 <span class="k">else</span><span class="p">:</span> <span class="c">#'T'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> 1917 2214 <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">'Scale'</span><span class="p">:[</span><span class="n">dIdsh</span><span class="p">,</span><span class="s">'int'</span><span class="p">],</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Scale'</span><span class="p">:[</span><span class="n">dIdsp</span><span class="p">,</span><span class="s">'int'</span><span class="p">],</span> 1918 2215 <span class="n">hfx</span><span class="o">+</span><span class="s">'difC'</span><span class="p">:[</span><span class="n">dpdDC</span><span class="p">,</span><span class="s">'pos'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'difA'</span><span class="p">:[</span><span class="n">dpdDA</span><span class="p">,</span><span class="s">'pos'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'difB'</span><span class="p">:[</span><span class="n">dpdDB</span><span class="p">,</span><span class="s">'pos'</span><span class="p">],</span> 1919 <span class="n">hfx</span><span class="o">+</span><span class="s">'Zero'</span><span class="p">:[</span><span class="n">dpdZ</span><span class="p">,</span><span class="s">'pos'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'X'</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">'gam'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'Y'</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">'gam'</span><span class="p">],</span>1920 <span class="n">hfx</span><span class="o">+</span><span class="s">'alpha'</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">'alp'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'beta-0'</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">'bet'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'beta-1'</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">'bet'</span><span class="p">],</span>1921 <span class="n">hfx</span><span class="o">+</span><span class="s">'beta-q'</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">'bet'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'sig-0'</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">'sig'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'sig-1'</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">'sig'</span><span class="p">],</span>1922 <span class="n">hfx</span><span class="o">+</span><span class="s">'sig-2'</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">'sig'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'sig-q'</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">'sig'</span><span class="p">],</span>2216 <span class="n">hfx</span><span class="o">+</span><span class="s">'Zero'</span><span class="p">:[</span><span class="n">dpdZ</span><span class="p">,</span><span class="s">'pos'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'X'</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">'gam'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'Y'</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">'gam'</span><span class="p">],</span> 2217 <span class="n">hfx</span><span class="o">+</span><span class="s">'alpha'</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">'alp'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'beta-0'</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">'bet'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'beta-1'</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">'bet'</span><span class="p">],</span> 2218 <span class="n">hfx</span><span class="o">+</span><span class="s">'beta-q'</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">'bet'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'sig-0'</span><span class="p">:[</span><span class="mf">1.0</span><span class="p">,</span><span class="s">'sig'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'sig-1'</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">'sig'</span><span class="p">],</span> 2219 <span class="n">hfx</span><span class="o">+</span><span class="s">'sig-2'</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">'sig'</span><span class="p">],</span><span class="n">hfx</span><span class="o">+</span><span class="s">'sig-q'</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">'sig'</span><span class="p">],</span> 1923 2220 <span class="n">hfx</span><span class="o">+</span><span class="s">'Absorption'</span><span class="p">:[</span><span class="n">dFdAb</span><span class="p">,</span><span class="s">'int'</span><span class="p">],</span><span class="n">phfx</span><span class="o">+</span><span class="s">'Extinction'</span><span class="p">:[</span><span class="n">dFdEx</span><span class="p">,</span><span class="s">'int'</span><span class="p">],}</span> 1924 2221 <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span> … … 1970 2267 <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span> 1971 2268 <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">'pos'</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> 1973 2270 <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">dDijDict</span><span class="p">:</span> 1974 2271 <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span> … … 1980 2277 <span class="k">if</span> <span class="n">Ka2</span><span class="p">:</span> 1981 2278 <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">'pos'</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">'mV0'</span><span class="p">,</span><span class="n">pfx</span><span class="o">+</span><span class="s">'mV1'</span><span class="p">,</span><span class="n">pfx</span><span class="o">+</span><span class="s">'mV2'</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">'pos'</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">'pos'</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">'pos'</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">'pos'</span><span class="p">]</span> 1982 2288 <span class="k">if</span> <span class="s">'C'</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">'histType'</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> 1984 2290 <span class="k">else</span><span class="p">:</span> <span class="c">#'T'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> 1986 2292 <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">gamDict</span><span class="p">:</span> 1987 2293 <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">varylist</span><span class="p">:</span> … … 2003 2309 <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">'sig'</span><span class="p">]</span> 2004 2310 <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'BabA'</span><span class="p">,</span><span class="s">'BabU'</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> 2006 2312 <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">'int'</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">'int'</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> 2008 2314 <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">'int'</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">'int'</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> 2010 2316 <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">'int'</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">'int'</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> 2012 2318 <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">'int'</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">'int'</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> 2014 2320 <span class="k">if</span> <span class="ow">not</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'doPawley'</span><span class="p">):</span> 2015 2321 <span class="c">#do atom derivatives - for RB,F,X & 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">'int'</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">'int'</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> 2017 2323 <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">'int'</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">'int'</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> 2019 2325 <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> 2020 2326 <span class="k">if</span> <span class="s">'::RBV;'</span> <span class="ow">in</span> <span class="n">name</span><span class="p">:</span> … … 2052 2358 <span class="n">phfx</span> <span class="o">=</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="o">%</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">'pId'</span><span class="p">],</span><span class="n">hId</span><span class="p">)</span> 2053 2359 <span class="n">SGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">][</span><span class="s">'SGData'</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">'General'</span><span class="p">][</span><span class="s">'Type'</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'modulated'</span><span class="p">,</span><span class="s">'magnetic'</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">'General'</span><span class="p">][</span><span class="s">'SSGData'</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">'SSGOps'</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> 2054 2366 <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">'A</span><span class="si">%d</span><span class="s">'</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> 2055 2367 <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 & real metric tensors</span> 2056 2368 <span class="n">refDict</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">'Data'</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> 2058 2373 <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> 2059 2374 <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">'RefList'</span><span class="p">])))</span> … … 2065 2380 <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">'F**2'</span><span class="p">]:</span> 2066 2381 <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">'RefList'</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">></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">>=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">'minF/sig'</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">></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">>=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">'minF/sig'</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> 2072 2387 <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> 2073 2388 <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">'Scale'</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">'Scale'</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> 2075 2390 <span class="k">for</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span> 2076 2391 <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">'Scale'</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">'Scale'</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> 2078 2393 <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="s">'Scale'</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">'Scale'</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">'Scale'</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> 2080 2395 <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="s">'Scale'</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">'Scale'</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">'Scale'</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> 2082 2397 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'Ep'</span><span class="p">,</span><span class="s">'Es'</span><span class="p">,</span><span class="s">'Eg'</span><span class="p">]:</span> 2083 2398 <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> 2085 2400 <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> 2087 2402 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'BabA'</span><span class="p">,</span><span class="s">'BabU'</span><span class="p">]:</span> 2088 2403 <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">'Scale'</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">'Scale'</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> 2090 2405 <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">'Scale'</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">'Scale'</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> 2092 2407 <span class="k">else</span><span class="p">:</span> 2093 2408 <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">'RefList'</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">></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">></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> 2099 2414 <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">>=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">'minF/sig'</span><span class="p">]:</span> 2100 2415 <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> 2101 2416 <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> 2102 2417 <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">'Scale'</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">'Scale'</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> 2104 2419 <span class="k">for</span> <span class="n">var</span> <span class="ow">in</span> <span class="n">dependentVars</span><span class="p">:</span> 2105 2420 <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">'Scale'</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">'Scale'</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> 2107 2422 <span class="k">if</span> <span class="n">phfx</span><span class="o">+</span><span class="s">'Scale'</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">'Scale'</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">'Scale'</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> 2109 2424 <span class="k">elif</span> <span class="n">phfx</span><span class="o">+</span><span class="s">'Scale'</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">'Scale'</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">'Scale'</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> 2111 2426 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'Ep'</span><span class="p">,</span><span class="s">'Es'</span><span class="p">,</span><span class="s">'Eg'</span><span class="p">]:</span> 2112 2427 <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> 2114 2429 <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> 2116 2431 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'BabA'</span><span class="p">,</span><span class="s">'BabU'</span><span class="p">]:</span> 2117 2432 <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">'Scale'</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">'Scale'</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> 2119 2434 <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">'Scale'</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">'Scale'</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> 2121 2436 <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> 2122 2437 … … 2212 2527 <span class="n">dMdvh</span> <span class="o">*=</span> <span class="n">Wt</span> 2213 2528 <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">'Residuals'</span><span class="p">][</span><span class="s">'wR'</span><span class="p">],</span><span class="n">newmsg</span><span class="o">=</span><span class="s">'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">'</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">'Residuals'</span><span class="p">][</span><span class="s">'wR'</span><span class="p">],</span><span class="s">'%'</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">'Residuals'</span><span class="p">][</span><span class="s">'wR'</span><span class="p">],</span><span class="n">newmsg</span><span class="o">=</span><span class="s">'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">'</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">'Residuals'</span><span class="p">][</span><span class="s">'wR'</span><span class="p">],</span><span class="s">'%'</span><span class="p">))</span> 2215 2530 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">Hess</span><span class="p">):</span> 2216 2531 <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> … … 2250 2565 <span class="k">return</span> <span class="n">Vec</span><span class="p">,</span><span class="n">Hess</span> 2251 2566 </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">'Needs a doc string'</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">'''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"> '''</span> 2254 2573 <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> 2255 2574 <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> … … 2315 2634 <span class="n">phfx</span> <span class="o">=</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="o">%</span><span class="p">(</span><span class="n">Phase</span><span class="p">[</span><span class="s">'pId'</span><span class="p">],</span><span class="n">hId</span><span class="p">)</span> 2316 2635 <span class="n">SGData</span> <span class="o">=</span> <span class="n">Phase</span><span class="p">[</span><span class="s">'General'</span><span class="p">][</span><span class="s">'SGData'</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">'General'</span><span class="p">][</span><span class="s">'Type'</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'modulated'</span><span class="p">,</span><span class="s">'magnetic'</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">'General'</span><span class="p">][</span><span class="s">'SSGData'</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">'SSGOps'</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> 2317 2642 <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">'A</span><span class="si">%d</span><span class="s">'</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> 2318 2643 <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 & real metric tensors</span> 2319 2644 <span class="n">refDict</span> <span class="o">=</span> <span class="n">Histogram</span><span class="p">[</span><span class="s">'Data'</span><span class="p">]</span> 2320 2645 <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> 2322 2650 <span class="c"># print 'sf-calc time: %.3f'%(time.time()-time0)</span> 2323 2651 <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">'RefList'</span><span class="p">]))</span> … … 2330 2658 <span class="k">if</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">'F**2'</span><span class="p">]:</span> 2331 2659 <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">'RefList'</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">></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">'Scale'</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">'Scale'</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">>=</span> <span class="n">calcControls</span><span class="p">[</span><span class="s">'minF/sig'</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