Skip to content

Commit

Permalink
Deploying to main from @ terrapower/armi@5a41b25 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
john-science committed Sep 12, 2024
1 parent 9d2fed9 commit d1451c8
Show file tree
Hide file tree
Showing 68 changed files with 816 additions and 468 deletions.
3 changes: 3 additions & 0 deletions armi/.apidocs/armi.html
Original file line number Diff line number Diff line change
Expand Up @@ -1385,6 +1385,8 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
<li class="toctree-l4"><a class="reference internal" href="armi.utils.hexagon.html#armi.utils.hexagon.pitch"><code class="docutils literal notranslate"><span class="pre">pitch()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="armi.utils.hexagon.html#armi.utils.hexagon.numRingsToHoldNumCells"><code class="docutils literal notranslate"><span class="pre">numRingsToHoldNumCells()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="armi.utils.hexagon.html#armi.utils.hexagon.numPositionsInRing"><code class="docutils literal notranslate"><span class="pre">numPositionsInRing()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="armi.utils.hexagon.html#armi.utils.hexagon.totalPositionsUpToRing"><code class="docutils literal notranslate"><span class="pre">totalPositionsUpToRing()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="armi.utils.hexagon.html#armi.utils.hexagon.getIndexOfRotatedCell"><code class="docutils literal notranslate"><span class="pre">getIndexOfRotatedCell()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="armi.utils.iterables.html">armi.utils.iterables module</a><ul>
Expand All @@ -1396,6 +1398,7 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
<li class="toctree-l4"><a class="reference internal" href="armi.utils.iterables.html#armi.utils.iterables.unpackHexStrings"><code class="docutils literal notranslate"><span class="pre">unpackHexStrings()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="armi.utils.iterables.html#armi.utils.iterables.packHexStrings"><code class="docutils literal notranslate"><span class="pre">packHexStrings()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="armi.utils.iterables.html#armi.utils.iterables.Sequence"><code class="docutils literal notranslate"><span class="pre">Sequence</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="armi.utils.iterables.html#armi.utils.iterables.pivot"><code class="docutils literal notranslate"><span class="pre">pivot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="armi.utils.mathematics.html">armi.utils.mathematics module</a><ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
<code class="docutils literal notranslate"><span class="pre">FuelHandler.outage()</span></code>.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Nothing should do in this file, but rotation algorithms.</p>
<p>Nothing should go in this file, but rotation algorithms.</p>
</div>
</div>
<dl class="py function">
Expand Down
25 changes: 15 additions & 10 deletions armi/.apidocs/armi.reactor.assemblies.html
Original file line number Diff line number Diff line change
Expand Up @@ -297,12 +297,6 @@
<dd><p>Return the average of the plenum block outlet temperatures.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="armi.reactor.assemblies.Assembly.rotatePins">
<span class="sig-name descname"><span class="pre">rotatePins</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/armi/reactor/assemblies.html#Assembly.rotatePins"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#armi.reactor.assemblies.Assembly.rotatePins" title="Permalink to this definition"></a></dt>
<dd><p>Rotate an assembly, which means rotating the indexing of pins.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="armi.reactor.assemblies.Assembly.doubleResolution">
<span class="sig-name descname"><span class="pre">doubleResolution</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/armi/reactor/assemblies.html#Assembly.doubleResolution"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#armi.reactor.assemblies.Assembly.doubleResolution" title="Permalink to this definition"></a></dt>
Expand Down Expand Up @@ -814,10 +808,6 @@
<dd class="field-odd"><p><strong>rad</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.12)"><em>float</em></a>) – number (in radians) specifying the angle of counter clockwise rotation</p>
</dd>
</dl>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>rad must be in 60-degree increments! (i.e., PI/6, PI/3, PI, 2 * PI/3, etc)</p>
</div>
</dd></dl>

<dl class="py method">
Expand Down Expand Up @@ -848,6 +838,21 @@
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="armi.reactor.assemblies.HexAssembly.rotate">
<span class="sig-name descname"><span class="pre">rotate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">rad</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.12)"><span class="pre">float</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/armi/reactor/assemblies.html#HexAssembly.rotate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#armi.reactor.assemblies.HexAssembly.rotate" title="Permalink to this definition"></a></dt>
<dd><p>Rotate an assembly and its children.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>rad</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.12)"><em>float</em></a>) – Counter clockwise rotation in radians. <strong>MUST</strong> be in increments of
60 degrees (PI / 3)</p>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/exceptions.html#ValueError" title="(in Python v3.12)"><strong>ValueError</strong></a> – If rotation is not divisible by pi / 3.</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt class="sig sig-object py" id="armi.reactor.assemblies.HexAssembly.paramCollectionType">
<span class="sig-name descname"><span class="pre">paramCollectionType</span></span><a class="headerlink" href="#armi.reactor.assemblies.HexAssembly.paramCollectionType" title="Permalink to this definition"></a></dt>
Expand Down
61 changes: 1 addition & 60 deletions armi/.apidocs/armi.reactor.blocks.html
Original file line number Diff line number Diff line change
Expand Up @@ -1221,73 +1221,14 @@ <h2>Parameter<a class="headerlink" href="#parameter" title="Permalink to this he
<p>The parameters must have a ParamLocation of either CORNERS or EDGES and must be a
Python list of length 6 in order to be eligible for rotation; all parameters that
do not meet these two criteria are not rotated.</p>
<p>The pin indexing, as stored on the pinLocation parameter, is also updated via
<a class="reference internal" href="#armi.reactor.blocks.HexBlock.rotatePins" title="armi.reactor.blocks.HexBlock.rotatePins"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rotatePins</span></code></a>.</p>
<p>The pin indexing, as stored on the <code class="docutils literal notranslate"><span class="pre">pinLocation</span></code> parameter, is also updated.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>rad</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.12)"><em>float</em></a><em>, </em><em>required</em>) – Angle of counter-clockwise rotation in units of radians. Rotations must be
in 60-degree increments (i.e., PI/6, PI/3, PI, 2 * PI/3, 5 * PI/6,
and 2 * PI)</p>
</dd>
</dl>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#armi.reactor.blocks.HexBlock.rotatePins" title="armi.reactor.blocks.HexBlock.rotatePins"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rotatePins</span></code></a></p>
</div>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="armi.reactor.blocks.HexBlock.rotatePins">
<span class="sig-name descname"><span class="pre">rotatePins</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">rotNum</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">justCompute</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/armi/reactor/blocks.html#HexBlock.rotatePins"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#armi.reactor.blocks.HexBlock.rotatePins" title="Permalink to this definition"></a></dt>
<dd><p>Rotate the pins of a block, which means rotating the indexing of pins. Note that this does
not rotate all block quantities, just the pins.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>rotNum</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><em>int</em></a><em>, </em><em>required</em>) – An integer from 0 to 5, indicating the number of counterclockwise 60-degree rotations
from the CURRENT orientation. Degrees of counter-clockwise rotation = 60*rot</p></li>
<li><p><strong>justCompute</strong> (<em>boolean</em><em>, </em><em>optional</em>) – If True, rotateIndexLookup will be returned but NOT assigned to the object parameter
self.p.pinLocation. If False, rotateIndexLookup will be returned AND assigned to the
object variable self.p.pinLocation. Useful for figuring out which rotation is best
to minimize burnup, etc.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>rotateIndexLookup</strong> – This is an index lookup (or mapping) between pin ids and pin locations. The pin
indexing is 1-D (not ring,pos or GEODST). The “ARMI pin ordering” is used for location,
which is counter-clockwise from 1 o’clock. Pin ids are always consecutively
ordered starting at 1, while pin locations are not once a rotation has been
applied.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.12)">dict</a> of ints</p>
</dd>
</dl>
<div class="admonition-notes admonition">
<p class="admonition-title">Notes</p>
<p>Changing (x,y) positions of pins does NOT constitute rotation, because the indexing of pin
atom densities must be re-ordered. Re-order indexing of pin-level quantities, NOT (x,y)
locations of pins. Otherwise, subchannel input will be in wrong order.</p>
<p>How rotations works is like this. There are pins with unique pin numbers in each block.
These pin numbers will not change no matter what happens to a block, so if you have pin 1,
you always have pin 1. However, these pins are all in pinLocations, and these are what
change with rotations. At BOL, a pin’s pinLocation is equal to its pin number, but after
a rotation, this will no longer be so.</p>
<p>So, all params that don’t care about exactly where in space the pin is (such as depletion)
can just use the pin number, but anything that needs to know the spatial location (such as
fluxRecon, which interpolates the flux spatially, or subchannel codes, which needs to know where the
power is) need to map through the pinLocation parameters.</p>
<p>This method rotates the pins by changing the pinLocation parameter.</p>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<dl class="simple">
<dt><a class="reference internal" href="#armi.reactor.blocks.HexBlock.rotate" title="armi.reactor.blocks.HexBlock.rotate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">armi.reactor.blocks.HexBlock.rotate</span></code></a></dt><dd><p>Rotates the entire block (pins, ducts, and spatial quantities).</p>
</dd>
</dl>
</div>
<p class="rubric">Examples</p>
<p>rotateIndexLookup[i_after_rotation-1] = i_before_rotation-1</p>
</dd></dl>

<dl class="py method">
Expand Down
2 changes: 1 addition & 1 deletion armi/.apidocs/armi.reactor.geometry.html
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@
yaml and/or the database nicely.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="armi.reactor.geometry.SymmetryType.VALID_SYMMETRY">
<span class="sig-name descname"><span class="pre">VALID_SYMMETRY</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{(&lt;DomainType.QUARTER_CORE:</span> <span class="pre">4&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">True),</span> <span class="pre">(&lt;DomainType.QUARTER_CORE:</span> <span class="pre">4&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.EIGHTH_CORE:</span> <span class="pre">8&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.FULL_CORE:</span> <span class="pre">1&gt;,</span> <span class="pre">&lt;BoundaryType.NO_SYMMETRY:</span> <span class="pre">0&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.SIXTEENTH_CORE:</span> <span class="pre">16&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.EIGHTH_CORE:</span> <span class="pre">8&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">True),</span> <span class="pre">(&lt;DomainType.THIRD_CORE:</span> <span class="pre">3&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.QUARTER_CORE:</span> <span class="pre">4&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.EIGHTH_CORE:</span> <span class="pre">8&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.QUARTER_CORE:</span> <span class="pre">4&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">True),</span> <span class="pre">(&lt;DomainType.FULL_CORE:</span> <span class="pre">1&gt;,</span> <span class="pre">&lt;BoundaryType.NO_SYMMETRY:</span> <span class="pre">0&gt;,</span> <span class="pre">True),</span> <span class="pre">(&lt;DomainType.SIXTEENTH_CORE:</span> <span class="pre">16&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.EIGHTH_CORE:</span> <span class="pre">8&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">True)}</span></em><a class="headerlink" href="#armi.reactor.geometry.SymmetryType.VALID_SYMMETRY" title="Permalink to this definition"></a></dt>
<span class="sig-name descname"><span class="pre">VALID_SYMMETRY</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{(&lt;DomainType.EIGHTH_CORE:</span> <span class="pre">8&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">True),</span> <span class="pre">(&lt;DomainType.FULL_CORE:</span> <span class="pre">1&gt;,</span> <span class="pre">&lt;BoundaryType.NO_SYMMETRY:</span> <span class="pre">0&gt;,</span> <span class="pre">True),</span> <span class="pre">(&lt;DomainType.THIRD_CORE:</span> <span class="pre">3&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.EIGHTH_CORE:</span> <span class="pre">8&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.QUARTER_CORE:</span> <span class="pre">4&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.QUARTER_CORE:</span> <span class="pre">4&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">True),</span> <span class="pre">(&lt;DomainType.EIGHTH_CORE:</span> <span class="pre">8&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">True),</span> <span class="pre">(&lt;DomainType.SIXTEENTH_CORE:</span> <span class="pre">16&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.FULL_CORE:</span> <span class="pre">1&gt;,</span> <span class="pre">&lt;BoundaryType.NO_SYMMETRY:</span> <span class="pre">0&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.EIGHTH_CORE:</span> <span class="pre">8&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.QUARTER_CORE:</span> <span class="pre">4&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.SIXTEENTH_CORE:</span> <span class="pre">16&gt;,</span> <span class="pre">&lt;BoundaryType.REFLECTIVE:</span> <span class="pre">2&gt;,</span> <span class="pre">False),</span> <span class="pre">(&lt;DomainType.QUARTER_CORE:</span> <span class="pre">4&gt;,</span> <span class="pre">&lt;BoundaryType.PERIODIC:</span> <span class="pre">1&gt;,</span> <span class="pre">True)}</span></em><a class="headerlink" href="#armi.reactor.geometry.SymmetryType.VALID_SYMMETRY" title="Permalink to this definition"></a></dt>
<dd></dd></dl>

<dl class="py method">
Expand Down
Loading

0 comments on commit d1451c8

Please sign in to comment.