Skip to content

Commit d1451c8

Browse files
committed
Deploying to main from @ terrapower/armi@5a41b25 🚀
1 parent 9d2fed9 commit d1451c8

File tree

68 files changed

+816
-468
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+816
-468
lines changed

armi/.apidocs/armi.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,6 +1385,8 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
13851385
<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>
13861386
<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>
13871387
<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>
1388+
<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>
1389+
<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>
13881390
</ul>
13891391
</li>
13901392
<li class="toctree-l3"><a class="reference internal" href="armi.utils.iterables.html">armi.utils.iterables module</a><ul>
@@ -1396,6 +1398,7 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
13961398
<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>
13971399
<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>
13981400
<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>
1401+
<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>
13991402
</ul>
14001403
</li>
14011404
<li class="toctree-l3"><a class="reference internal" href="armi.utils.mathematics.html">armi.utils.mathematics module</a><ul>

armi/.apidocs/armi.physics.fuelCycle.assemblyRotationAlgorithms.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
<code class="docutils literal notranslate"><span class="pre">FuelHandler.outage()</span></code>.</p>
147147
<div class="admonition warning">
148148
<p class="admonition-title">Warning</p>
149-
<p>Nothing should do in this file, but rotation algorithms.</p>
149+
<p>Nothing should go in this file, but rotation algorithms.</p>
150150
</div>
151151
</div>
152152
<dl class="py function">

armi/.apidocs/armi.reactor.assemblies.html

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -297,12 +297,6 @@
297297
<dd><p>Return the average of the plenum block outlet temperatures.</p>
298298
</dd></dl>
299299

300-
<dl class="py method">
301-
<dt class="sig sig-object py" id="armi.reactor.assemblies.Assembly.rotatePins">
302-
<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>
303-
<dd><p>Rotate an assembly, which means rotating the indexing of pins.</p>
304-
</dd></dl>
305-
306300
<dl class="py method">
307301
<dt class="sig sig-object py" id="armi.reactor.assemblies.Assembly.doubleResolution">
308302
<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>
@@ -814,10 +808,6 @@
814808
<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>
815809
</dd>
816810
</dl>
817-
<div class="admonition warning">
818-
<p class="admonition-title">Warning</p>
819-
<p>rad must be in 60-degree increments! (i.e., PI/6, PI/3, PI, 2 * PI/3, etc)</p>
820-
</div>
821811
</dd></dl>
822812

823813
<dl class="py method">
@@ -848,6 +838,21 @@
848838
</ul>
849839
</dd>
850840
</dl>
841+
<dl class="py method">
842+
<dt class="sig sig-object py" id="armi.reactor.assemblies.HexAssembly.rotate">
843+
<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>
844+
<dd><p>Rotate an assembly and its children.</p>
845+
<dl class="field-list simple">
846+
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
847+
<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
848+
60 degrees (PI / 3)</p>
849+
</dd>
850+
<dt class="field-even">Raises<span class="colon">:</span></dt>
851+
<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>
852+
</dd>
853+
</dl>
854+
</dd></dl>
855+
851856
<dl class="py attribute">
852857
<dt class="sig sig-object py" id="armi.reactor.assemblies.HexAssembly.paramCollectionType">
853858
<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>

armi/.apidocs/armi.reactor.blocks.html

Lines changed: 1 addition & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,73 +1221,14 @@ <h2>Parameter<a class="headerlink" href="#parameter" title="Permalink to this he
12211221
<p>The parameters must have a ParamLocation of either CORNERS or EDGES and must be a
12221222
Python list of length 6 in order to be eligible for rotation; all parameters that
12231223
do not meet these two criteria are not rotated.</p>
1224-
<p>The pin indexing, as stored on the pinLocation parameter, is also updated via
1225-
<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>
1224+
<p>The pin indexing, as stored on the <code class="docutils literal notranslate"><span class="pre">pinLocation</span></code> parameter, is also updated.</p>
12261225
<dl class="field-list simple">
12271226
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
12281227
<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
12291228
in 60-degree increments (i.e., PI/6, PI/3, PI, 2 * PI/3, 5 * PI/6,
12301229
and 2 * PI)</p>
12311230
</dd>
12321231
</dl>
1233-
<div class="admonition seealso">
1234-
<p class="admonition-title">See also</p>
1235-
<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>
1236-
</div>
1237-
</dd></dl>
1238-
1239-
<dl class="py method">
1240-
<dt class="sig sig-object py" id="armi.reactor.blocks.HexBlock.rotatePins">
1241-
<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>
1242-
<dd><p>Rotate the pins of a block, which means rotating the indexing of pins. Note that this does
1243-
not rotate all block quantities, just the pins.</p>
1244-
<dl class="field-list simple">
1245-
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
1246-
<dd class="field-odd"><ul class="simple">
1247-
<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
1248-
from the CURRENT orientation. Degrees of counter-clockwise rotation = 60*rot</p></li>
1249-
<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
1250-
self.p.pinLocation. If False, rotateIndexLookup will be returned AND assigned to the
1251-
object variable self.p.pinLocation. Useful for figuring out which rotation is best
1252-
to minimize burnup, etc.</p></li>
1253-
</ul>
1254-
</dd>
1255-
<dt class="field-even">Returns<span class="colon">:</span></dt>
1256-
<dd class="field-even"><p><strong>rotateIndexLookup</strong> – This is an index lookup (or mapping) between pin ids and pin locations. The pin
1257-
indexing is 1-D (not ring,pos or GEODST). The “ARMI pin ordering” is used for location,
1258-
which is counter-clockwise from 1 o’clock. Pin ids are always consecutively
1259-
ordered starting at 1, while pin locations are not once a rotation has been
1260-
applied.</p>
1261-
</dd>
1262-
<dt class="field-odd">Return type<span class="colon">:</span></dt>
1263-
<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>
1264-
</dd>
1265-
</dl>
1266-
<div class="admonition-notes admonition">
1267-
<p class="admonition-title">Notes</p>
1268-
<p>Changing (x,y) positions of pins does NOT constitute rotation, because the indexing of pin
1269-
atom densities must be re-ordered. Re-order indexing of pin-level quantities, NOT (x,y)
1270-
locations of pins. Otherwise, subchannel input will be in wrong order.</p>
1271-
<p>How rotations works is like this. There are pins with unique pin numbers in each block.
1272-
These pin numbers will not change no matter what happens to a block, so if you have pin 1,
1273-
you always have pin 1. However, these pins are all in pinLocations, and these are what
1274-
change with rotations. At BOL, a pin’s pinLocation is equal to its pin number, but after
1275-
a rotation, this will no longer be so.</p>
1276-
<p>So, all params that don’t care about exactly where in space the pin is (such as depletion)
1277-
can just use the pin number, but anything that needs to know the spatial location (such as
1278-
fluxRecon, which interpolates the flux spatially, or subchannel codes, which needs to know where the
1279-
power is) need to map through the pinLocation parameters.</p>
1280-
<p>This method rotates the pins by changing the pinLocation parameter.</p>
1281-
</div>
1282-
<div class="admonition seealso">
1283-
<p class="admonition-title">See also</p>
1284-
<dl class="simple">
1285-
<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>
1286-
</dd>
1287-
</dl>
1288-
</div>
1289-
<p class="rubric">Examples</p>
1290-
<p>rotateIndexLookup[i_after_rotation-1] = i_before_rotation-1</p>
12911232
</dd></dl>
12921233

12931234
<dl class="py method">

armi/.apidocs/armi.reactor.geometry.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@
321321
yaml and/or the database nicely.</p>
322322
<dl class="py attribute">
323323
<dt class="sig sig-object py" id="armi.reactor.geometry.SymmetryType.VALID_SYMMETRY">
324-
<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>
324+
<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>
325325
<dd></dd></dl>
326326

327327
<dl class="py method">

0 commit comments

Comments
 (0)