Repository: terrapower/armi
Pull request #1855 (2024-09-05 17:09:05)

thKernel data type fix
## What is the change?

The thKernel setting is meant to store the name of the primary thermal hydraulics solver for a run. The default value was False, causing the data type of thKernel to be bool. When a user set the value of thKernel to anything in the settings file, it would only be set to True. Changing the default value to an empty string changes its data type to str, allowing the setting to work as originally intended.

This change resolves issue #1854.

## Why is the change being made?

This change is necessary to allow the thKernel setting to work as intended. Without this change, the thKernel can only be set to boolean values. With this change, thKernel can be set to any string.

---

## Checklist

- [x] This PR has only [one purpose or idea](https://terrapower.github.io/armi/developer/tooling.html#one-idea-one-pr).
- [x] [Tests](https://terrapower.github.io/armi/developer/tooling.html#test-it) have been added/updated to verify any new/changed code.
- [x] The code style follows [good practices](https://terrapower.github.io/armi/developer/standards_and_practices.html).
- [x] The commit message(s) follow [good practices](https://terrapower.github.io/armi/developer/tooling.html).
- [x] The [release notes](https://terrapower.github.io/armi/developer/tooling.html#add-release-notes) have been updated if necessary.
- [x] The [documentation](https://terrapower.github.io/armi/developer/tooling.html#document-it) is still up-to-date in the `doc` folder.
- [x] The dependencies are still up-to-date in `pyproject.toml`.

CLAassistant: [![CLA assistant check](https://cla-assistant.io/pull/badge/not_signed)](https://cla-assistant.io/terrapower/armi?pullRequest=1855) <br/>Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our [Contributor License Agreement](https://cla-assistant.io/terrapower/armi?pullRequest=1855) before we can accept your contribution.<br/><sub>You have signed the CLA already but the status is still pending? Let us [recheck](https://cla-assistant.io/check/terrapower/armi?pullRequest=1855) it.</sub>

Patch:
diff --git a/.github/workflows/black.yaml b/.github/workflows/black.yaml
index bc42c84a..352f6b56 100644
--- a/.github/workflows/black.yaml
+++ b/.github/workflows/black.yaml
@@ -2,17 +2,20 @@ name: black
 
 on: [push, pull_request]
 
+permissions:
+  contents: read
+
 # use workaround due to: https://github.com/psf/black/issues/2079#issuecomment-812359146
 jobs:
-    check-formatting:
-        runs-on: ubuntu-24.04
-        steps:
-            - uses: actions/checkout@v2
-            - name: Set up Python 3.11
-              uses: actions/setup-python@v2
-              with:
-                python-version: '3.11'
-            - name: Install Black
-              run: pip install 'black==22.6.0'
-            - name: Run black --check .
-              run: black --check .
+  check-formatting:
+    runs-on: ubuntu-24.04
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Python 3.11
+        uses: actions/setup-python@v2
+        with:
+          python-version: '3.11'
+      - name: Install Black
+        run: pip install 'black==22.6.0'
+      - name: Run black --check .
+        run: black --check .
diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml
index 3dd65147..5eea821a 100644
--- a/.github/workflows/coverage.yaml
+++ b/.github/workflows/coverage.yaml
@@ -1,5 +1,8 @@
 name: Coverage
 
+permissions:
+  contents: read
+
 on:
   push:
     branches:
@@ -12,6 +15,8 @@ on:
 
 jobs:
   build:
+    # Deploying coverage to coveralls.io should not happen on forks
+    if: github.repository == 'terrapower/armi'
     runs-on: ubuntu-24.04
     env:
       GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 8f7f1a0c..ca1d20cb 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -7,7 +7,8 @@ on:
 
 jobs:
   build:
-
+    # Building and deploying docs is broken on forked repos
+    if: github.repository == 'terrapower/armi'
     runs-on: ubuntu-22.04
 
     steps:
diff --git a/.github/workflows/licensechecker.yaml b/.github/workflows/licensechecker.yaml
index abeee0e4..8a3bebe1 100644
--- a/.github/workflows/licensechecker.yaml
+++ b/.github/workflows/licensechecker.yaml
@@ -1,5 +1,10 @@
 name: Check License Lines
+
+permissions:
+  contents: read
+
 on: [push, pull_request]
+
 jobs:
   check-license-lines:
     runs-on: ubuntu-24.04
diff --git a/.github/workflows/linting.yaml b/.github/workflows/linting.yaml
index 89fca391..d72e0664 100644
--- a/.github/workflows/linting.yaml
+++ b/.github/workflows/linting.yaml
@@ -1,5 +1,8 @@
 name: Linting
 
+permissions:
+  contents: read
+
 on: [push, pull_request]
 
 jobs:
diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml
new file mode 100644
index 00000000..cc016738
--- /dev/null
+++ b/.github/workflows/stale.yaml
@@ -0,0 +1,27 @@
+# This workflow warns and then closes PRs that have had no activity for a specified amount of time.
+#
+# You can adjust the behavior by modifying this file.
+# For more information, see: https://github.com/actions/stale
+name: Mark Stale PRs
+
+on:
+  schedule:
+  # once a day at 3:14 AM
+  - cron: '14 3 * * *'
+
+permissions:
+  pull-requests: write
+
+jobs:
+  stale:
+    runs-on: ubuntu-24.04
+    steps:
+      - uses: actions/stale@v8
+        with:
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+          stale-pr-message: "This pull request has been automatically marked as stale because it has not had any activity in the last 100 days. It will be closed in 7 days if no further activity occurs. Thank you for your contributions."
+          stale-pr-label: "stale"
+          days-before-pr-stale: 100
+          days-before-pr-close: 7
+          days-before-issue-stale: -1
+          operations-per-run: 100
\ No newline at end of file
diff --git a/.github/workflows/validatemanifest.yaml b/.github/workflows/validatemanifest.yaml
index acd64020..d7cf36c4 100644
--- a/.github/workflows/validatemanifest.yaml
+++ b/.github/workflows/validatemanifest.yaml
@@ -1,5 +1,8 @@
 name: Validate Manifest
 
+permissions:
+  contents: read
+
 on: [push, pull_request]
 
 jobs:
diff --git a/armi/physics/fuelCycle/fuelHandlers.py b/armi/physics/fuelCycle/fuelHandlers.py
index 229adb8f..fbc06d15 100644
--- a/armi/physics/fuelCycle/fuelHandlers.py
+++ b/armi/physics/fuelCycle/fuelHandlers.py
@@ -54,19 +54,9 @@ class FuelHandler:
     """
 
     def __init__(self, operator):
-        # we need access to the operator to find the core, get settings, grab
-        # other interfaces, etc.
+        # we need access to the operator to find the core, get settings, grab other interfaces, etc.
         self.o = operator
         self.moved = []
-        self._handleBackwardsCompatibility()
-
-    def _handleBackwardsCompatibility(self):
-        # prepSearch used to be part of the API but is deprecated. This will
-        # trigger a warning if it's implemented.
-        # We have to do this hack until we phase out old inputs.
-        # This basically asks: "Did the custom subclass override prepSearch?"
-        if self.prepSearch.__func__ is not FuelHandler.prepSearch:
-            self.prepSearch()
 
     @property
     def cycle(self):
@@ -207,30 +197,28 @@ class FuelHandler:
         """Aux function to run before XS generation (do moderation, etc)."""
         pass
 
-    def prepSearch(self, *args, **kwargs):
+    @staticmethod
+    def _compareAssem(candidate, current):
+        """Check whether the candidate assembly should replace the current ideal assembly.
+
+        Given a candidate tuple (diff1, a1) and current tuple (diff2, a2), decide whether the
+        candidate is better than the current ideal. This first compares the diff1 and diff2 values.
+        If diff1 is sufficiently less than diff2, a1 wins, returning True. Otherwise, False. If
+        diff1 and diff2 are sufficiently close, the assembly with the lesser assemNum wins. This
+        should result in a more stable comparison than on floating-point comparisons alone.
         """
-        Optional method that can be implemented in preparation of shuffling.
+        if np.isclose(candidate[0], current[0], rtol=1e-8, atol=1e-8):
+            return candidate[1].p.assemNum < current[1].p.assemNum
+        else:
+            return candidate[0] < current[0]
 
-        Often used to prepare the scope of a shuffling branch search.
+    @staticmethod
+    def _getParamMax(a, paramName, blockLevelMax=True):
+        """Get parameter with Block-level maximum."""
+        if blockLevelMax:
+            return a.getChildParamValues(paramName).max()
 
-        Notes
-        -----
-        This was used historically to keep a long-lived fuel handler in sync
-        with the reactor and can now technically be removed from the API, but
-        many historical fuel management inputs still expect it to be called
-        by the framework, so here it remains. New developments should
-        avoid using it. Most code using it has been refactored to just use
-        a ``_prepSearch`` private method.
-
-        It now should not be used and will trigger a DeprecationWarning
-        in the constructor. It's still here because old user-input code
-        calls the parent's prepSearch, which is this.
-        """
-        warnings.warn(
-            "`FuelHandler.prepSearch` is being deprecated from the framework. Please "
-            "change your fuel management input to call this method directly.",
-            DeprecationWarning,
-        )
+        return a.p[paramName]
 
     def findAssembly(
         self,
@@ -295,24 +283,20 @@ class FuelHandler:
 
         maxParam : float or list, optional
             a parameter to compare to maxVal for setting upper bounds of acceptable assemblies.
-            If list,
-            must correspond to parameters in maxVal in order.
+            If list, must correspond to parameters in maxVal in order.
 
         minVal : float or list, optional
             a value or a (parameter, multiplier) tuple for setting lower bounds
 
-            For instance, if minParam = 'timeToLimit' and minVal=10, only assemblies with
-            timeToLimit higher than 10 will be returned.  (Of course, there is also maxParam and
-            maxVal)
+            For instance, if minParam='timeToLimit' and minVal=10, only assemblies with timeToLimit
+            higher than 10 will be returned. (Of course, there is also maxParam and maxVal)
 
         maxVal : float or list, optional
             a value or a (parameter, multiplier) tuple for setting upper bounds
 
         mandatoryLocations : list, optional
-            a list of string-representations of locations in the core for limiting the search to
-            several places
-
-            Any locations also included in `excludedLocations` will be excluded.
+            A list of string-representations of locations in the core for limiting the search to
+            several places. Any locations also included in `excludedLocations` will be excluded.
 
         excludedLocations : list, optional
             a list of string-representations of locations in the core that will be excluded from
@@ -349,20 +333,19 @@ class FuelHandler:
             default: false.
 
         findFromSfp : bool, optional
-            if true, will look in the spent-fuel pool instead of in the core.
+            If true, will look in the spent-fuel pool instead of in the core.
 
         maxNumAssems : int, optional
             The maximum number of assemblies to return. Only relevant if findMany==True
 
         circularRingFlag : bool, optional
-            A flag to toggle on using rings that are based on distance from the center of the
-            reactor
+            Toggle using rings that are based on distance from the center of the reactor
 
         Notes
         -----
-        The call signature on this method may have gotten slightly out of hand as
-        valuable capabilities were added in fuel management studies. For additional expansion,
-        it may be worth reconsidering the design of these query operations ;).
+        The call signature on this method may have gotten slightly out of hand as valuable
+        capabilities were added in fuel management studies. For additional expansion, it may be
+        worth reconsidering the design of these query operations.
 
         Returns
         -------
@@ -381,29 +364,8 @@ class FuelHandler:
                                      typeSpec=Flags.FEED | Flags.FUEL)
 
         """
-
-        def compareAssem(candidate, current):
-            """Check whether the candidate assembly should replace the current ideal
-            assembly.
-
-            Given a candidate tuple (diff1, a1) and current tuple (diff2, a2), decide
-            whether the candidate is better than the current ideal. This first compares
-            the diff1 and diff2 values. If diff1 is sufficiently less than diff2, a1
-            wins, returning True. Otherwise, False. If diff1 and diff2 are sufficiently
-            close, the assembly with the lesser assemNum wins. This should result in a
-            more stable comparison than on floating-point comparisons alone.
-            """
-            if np.isclose(candidate[0], current[0], rtol=1e-8, atol=1e-8):
-                return candidate[1].p.assemNum < current[1].p.assemNum
-            else:
-                return candidate[0] < current[0]
-
-        def getParamWithBlockLevelMax(a, paramName):
-            if blockLevelMax:
-                return a.getChildParamValues(paramName).max()
-            return a.p[paramName]
-
-        assemList = []  # list for storing multiple results if findMany is true.
+        # list for storing multiple results if findMany is true.
+        assemList = []
 
         # process input arguments
         if targetRing is None:
@@ -452,7 +414,7 @@ class FuelHandler:
             compVal = compareTo * mult
         elif param:
             # assume compareTo is an assembly
-            compVal = getParamWithBlockLevelMax(compareTo, param) * mult
+            compVal = FuelHandler._getParamMax(compareTo, param, blockLevelMax) * mult
 
         if coords:
             # find the assembly closest to xt,yt if coords are given without considering params.
@@ -501,12 +463,16 @@ class FuelHandler:
                         if isinstance(minVal, tuple):
                             # tuple turned in. it's a multiplier and a param
                             realMinVal = (
-                                getParamWithBlockLevelMax(a, minVal[0]) * minVal[1]
+                                FuelHandler._getParamMax(a, minVal[0], blockLevelMax)
+                                * minVal[1]
                             )
                         else:
                             realMinVal = minVal
 
-                        if getParamWithBlockLevelMax(a, minParam) < realMinVal:
+                        if (
+                            FuelHandler._getParamMax(a, minParam, blockLevelMax)
+                            < realMinVal
+                        ):
                             # this assembly does not meet the minVal specifications. Skip it.
                             innocent = False
                             break  # for speed (not a big deal here)
@@ -521,12 +487,16 @@ class FuelHandler:
                         if isinstance(maxVal, tuple):
                             # tuple turned in. it's a multiplier and a param
                             realMaxVal = (
-                                getParamWithBlockLevelMax(a, maxVal[0]) * maxVal[1]
+                                FuelHandler._getParamMax(a, maxVal[0], blockLevelMax)
+                                * maxVal[1]
                             )
                         else:
                             realMaxVal = maxVal
 
-                        if getParamWithBlockLevelMax(a, maxParam) > realMaxVal:
+                        if (
+                            FuelHandler._getParamMax(a, maxParam, blockLevelMax)
+                            > realMaxVal
+                        ):
                             # this assembly has a maxParam that's higher than maxVal and therefore
                             # doesn't qualify. skip it.
                             innocent = False
@@ -551,23 +521,25 @@ class FuelHandler:
 
                 # Now find the assembly with the param closest to the target val.
                 if param:
-                    diff = abs(getParamWithBlockLevelMax(a, param) - compVal)
+                    diff = abs(
+                        FuelHandler._getParamMax(a, param, blockLevelMax) - compVal
+                    )
 
                     if (
                         forceSide == 1
-                        and getParamWithBlockLevelMax(a, param) > compVal
-                        and compareAssem((diff, a), minDiff)
+                        and FuelHandler._getParamMax(a, param, blockLevelMax) > compVal
+                        and FuelHandler._compareAssem((diff, a), minDiff)
                     ):
                         # forceSide=1, so that means look in rings further out
                         minDiff = (diff, a)
                     elif (
                         forceSide == -1
-                        and getParamWithBlockLevelMax(a, param) < compVal
-                        and compareAssem((diff, a), minDiff)
+                        and FuelHandler._getParamMax(a, param, blockLevelMax) < compVal
+                        and FuelHandler._compareAssem((diff, a), minDiff)
                     ):
                         # forceSide=-1, so that means look in rings closer in from the targetRing
                         minDiff = (diff, a)
-                    elif compareAssem((diff, a), minDiff):
+                    elif FuelHandler._compareAssem((diff, a), minDiff):
                         # no preference of which side, just take the one with the closest param.
                         minDiff = (diff, a)
                 else:
diff --git a/armi/physics/neutronics/latticePhysics/latticePhysicsInterface.py b/armi/physics/neutronics/latticePhysics/latticePhysicsInterface.py
index 0574ede4..d1782546 100644
--- a/armi/physics/neutronics/latticePhysics/latticePhysicsInterface.py
+++ b/armi/physics/neutronics/latticePhysics/latticePhysicsInterface.py
@@ -20,9 +20,9 @@ Parent classes for codes responsible for generating broad-group cross sections
 import os
 import shutil
 
+from armi import interfaces
 from armi import nuclearDataIO
-from armi import interfaces, runLog
-from armi.utils import codeTiming
+from armi import runLog
 from armi.physics import neutronics
 from armi.physics.neutronics.const import CONF_CROSS_SECTION
 from armi.physics.neutronics.settings import (
@@ -32,26 +32,20 @@ from armi.physics.neutronics.settings import (
     CONF_XS_KERNEL,
     CONF_LATTICE_PHYSICS_FREQUENCY,
 )
-from armi.utils.customExceptions import important
 from armi.physics.neutronics import LatticePhysicsFrequency
-
+from armi.utils import codeTiming
 
 LATTICE_PHYSICS = "latticePhysics"
 
 
-@important
-def SkippingXsGen_BuChangedLessThanTolerance(tolerance):
-    return "Skipping XS Generation this cycle because median block burnups changes less than {}%".format(
-        tolerance
-    )
-
-
 def setBlockNeutronVelocities(r, neutronVelocities):
     """
     Set the ``mgNeutronVelocity`` parameter for each block using the ``neutronVelocities`` dictionary data.
 
     Parameters
     ----------
+    r : Reactor
+        A Reactor object, that we want to modify.
     neutronVelocities : dict
         Dictionary that is keyed with the ``representativeBlock`` XS IDs with values of multigroup neutron
         velocity data computed by MC2.
@@ -504,9 +498,6 @@ class LatticePhysicsInterface(interfaces.Interface):
                             "Recalculating Cross-sections".format(xsID, buOld, buNow)
                         )
 
-            if not idsChangedBurnup:
-                SkippingXsGen_BuChangedLessThanTolerance(self._burnupTolerance)
-
         return idsChangedBurnup
 
     def _getProcessesPerNode(self):
diff --git a/armi/physics/thermalHydraulics/settings.py b/armi/physics/thermalHydraulics/settings.py
index a8df91ed..3975a35e 100644
--- a/armi/physics/thermalHydraulics/settings.py
+++ b/armi/physics/thermalHydraulics/settings.py
@@ -34,7 +34,7 @@ def defineSettings():
         ),
         setting.Setting(
             CONF_TH_KERNEL,
-            default=False,
+            default="",
             label="Thermal Hydraulics Kernel",
             description="Name of primary T/H solver in this run",
         ),
diff --git a/armi/reactor/composites.py b/armi/reactor/composites.py
index 91b53b82..db0e6499 100644
--- a/armi/reactor/composites.py
+++ b/armi/reactor/composites.py
@@ -175,7 +175,6 @@ class FlagSerializer(parameters.Serializer):
             flagCls.extend({k: auto() for k in missingFlags})
 
         flagOrderNow = flagCls.sortedFields()
-        flagSetNow = set(flagOrderNow)
 
         if all(i == j for i, j in zip(flagOrderPassed, flagOrderNow)):
             out = [flagCls.from_bytes(row.tobytes()) for row in data]
diff --git a/armi/resources/burn-chain.yaml b/armi/resources/burn-chain.yaml
index 8049061d..a51ae65f 100644
--- a/armi/resources/burn-chain.yaml
+++ b/armi/resources/burn-chain.yaml
@@ -1,1221 +1,1221 @@
 AM241:
-- transmutation:
-    branch: 1.0
-    products:
-    - PU240
-    type: n2n
-- transmutation:
-    branch: 0.1384
-    products:
-    - PU242
-    type: nGamma
-- transmutation:
-    branch: 0.6616
-    products:
-    - CM242
-    - DUMP2
-    type: nGamma
-- transmutation:
-    branch: 0.2
-    products:
-    - AM242M
-    - DUMP2
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.6500e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- decay:
-    branch: 1.0
-    products:
-    - NP237
-    type: ad
-- decay:
-    branch: 4.120055e-12
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU240
+      type: n2n
+  - transmutation:
+      branch: 0.1384
+      products:
+        - PU242
+      type: nGamma
+  - transmutation:
+      branch: 0.6616
+      products:
+        - CM242
+        - DUMP2
+      type: nGamma
+  - transmutation:
+      branch: 0.2
+      products:
+        - AM242M
+        - DUMP2
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.6500e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - decay:
+      branch: 1.0
+      products:
+        - NP237
+      type: ad
+  - decay:
+      branch: 4.120055e-12
+      products:
+        - LFP41
+      type: sf
 AM242G:
-- transmutation:
-    branch: 1.0
-    products:
-    - AM241
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - AM243
-    type: nGamma
-- decay:
-    branch: 0.173
-    products:
-    - PU242
-    type: ec
-- decay:
-    branch: 0.827
-    products:
-    - CM242
-    type: bmd
+  - transmutation:
+      branch: 1.0
+      products:
+        - AM241
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - AM243
+      type: nGamma
+  - decay:
+      branch: 0.173
+      products:
+        - PU242
+      type: ec
+  - decay:
+      branch: 0.827
+      products:
+        - CM242
+      type: bmd
 AM242M:
-- transmutation:
-    branch: 1.0
-    products:
-    - AM241
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - AM243
-    type: nGamma
-- decay:
-    branch: 0.822865
-    products:
-    - PU242
-    type: ec
-- decay:
-    branch: 0.172135
-    products:
-    - CM242
-    type: bmd
-- decay:
-    branch: 0.005
-    products:
-    - NP238
-    type: ad
+  - transmutation:
+      branch: 1.0
+      products:
+        - AM241
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - AM243
+      type: nGamma
+  - decay:
+      branch: 0.822865
+      products:
+        - PU242
+      type: ec
+  - decay:
+      branch: 0.172135
+      products:
+        - CM242
+      type: bmd
+  - decay:
+      branch: 0.005
+      products:
+        - NP238
+      type: ad
 AM243:
-- transmutation:
-    branch: 0.5
-    products:
-    - AM242M
-    type: n2n
-- transmutation:
-    branch: 0.0865
-    products:
-    - CM242
-    type: n2n
-- transmutation:
-    branch: 0.4135
-    products:
-    - PU242
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CM244
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - NP239
-    - PU239
-    type: ad
+  - transmutation:
+      branch: 0.5
+      products:
+        - AM242M
+      type: n2n
+  - transmutation:
+      branch: 0.0865
+      products:
+        - CM242
+      type: n2n
+  - transmutation:
+      branch: 0.4135
+      products:
+        - PU242
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM244
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - NP239
+        - PU239
+      type: ad
 B10:
-- transmutation:
-    branch: 1.0
-    products:
-    - B11
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LI7
-    - DUMP1
-    type: nalph
-- transmutation:
-    branch: 1.0
-    products:
-    - DUMP1
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - BE9
-    - DUMP1
-    type: nd
-- transmutation:
-    branch: 1.0
-    products:
-    - BE10
-    - DUMP1
-    type: np
+  - transmutation:
+      branch: 1.0
+      products:
+        - B11
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LI7
+        - DUMP1
+      type: nalph
+  - transmutation:
+      branch: 1.0
+      products:
+        - DUMP1
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - BE9
+        - DUMP1
+      type: nd
+  - transmutation:
+      branch: 1.0
+      products:
+        - BE10
+        - DUMP1
+      type: np
 B11:
-- transmutation:
-    branch: 1.0
-    products:
-    - DUMP1
-    type: nGamma
-- transmutation:
-    # n-alphas to Li-8 -> Be-8 -> 2 alphas
-    branch: 1.0
-    products:
-    - HE4
-    - DUMP1
-    type: nalph
-    productParticle: HE4
-- transmutation:
-    branch: 1.0
-    products:
-    - B10
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - BE9
-    - DUMP1
-    type: nt
+  - transmutation:
+      branch: 1.0
+      products:
+        - DUMP1
+      type: nGamma
+  - transmutation:
+      # n-alphas to Li-8 -> Be-8 -> 2 alphas
+      branch: 1.0
+      products:
+        - HE4
+        - DUMP1
+      type: nalph
+      productParticle: HE4
+  - transmutation:
+      branch: 1.0
+      products:
+        - B10
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - BE9
+        - DUMP1
+      type: nt
 BE9:
-- transmutation:
-    branch: 1.0
-    products:
-    - LI6
-    - DUMP1
-    type: nalph
-- transmutation:
-    branch: 1.0
-    products:
-    - LI7
-    - DUMP1
-    type: nt
+  - transmutation:
+      branch: 1.0
+      products:
+        - LI6
+        - DUMP1
+      type: nalph
+  - transmutation:
+      branch: 1.0
+      products:
+        - LI7
+        - DUMP1
+      type: nt
 BK249:
-- transmutation:
-    branch: 1.0
-    products:
-    - CM244
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CF250
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - CF249
-    type: bmd
-- decay:
-    branch: 4.755215e-10
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM244
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CF250
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - CF249
+      type: bmd
+  - decay:
+      branch: 4.755215e-10
+      products:
+        - LFP41
+      type: sf
 CF249:
-- transmutation:
-    branch: 1.0
-    products:
-    - CM244
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CF250
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - CM245
-    type: ad
-- decay:
-    branch: 5.00000e-09
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM244
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CF250
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - CM245
+      type: ad
+  - decay:
+      branch: 5.00000e-09
+      products:
+        - LFP41
+      type: sf
 CF250:
-- transmutation:
-    branch: 1.0
-    products:
-    - CF249
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CF251
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - CM246
-    type: ad
-- decay:
-    branch: 7.70000e-04
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CF249
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CF251
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - CM246
+      type: ad
+  - decay:
+      branch: 7.70000e-04
+      products:
+        - LFP41
+      type: sf
 CF251:
-- transmutation:
-    branch: 1.0
-    products:
-    - CF250
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CF252
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - CM247
-    type: ad
+  - transmutation:
+      branch: 1.0
+      products:
+        - CF250
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CF252
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - CM247
+      type: ad
 CF252:
-- transmutation:
-    branch: 1.0
-    products:
-    - CF251
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: nGamma
-- decay:
-    branch: 9.69080e-01
-    products:
-    - CM248
-    type: ad
-- decay:
-    branch: 3.093567e-02
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CF251
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: nGamma
+  - decay:
+      branch: 9.69080e-01
+      products:
+        - CM248
+      type: ad
+  - decay:
+      branch: 3.093567e-02
+      products:
+        - LFP41
+      type: sf
 CM242:
-- transmutation:
-    branch: 0.99
-    products:
-    - AM241
-    type: n2n
-- transmutation:
-    branch: 0.01
-    products:
-    - NP237
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CM243
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - PU238
-    type: ad
-- decay:
-    branch: 6.794544e-08
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 0.99
+      products:
+        - AM241
+      type: n2n
+  - transmutation:
+      branch: 0.01
+      products:
+        - NP237
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM243
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - PU238
+      type: ad
+  - decay:
+      branch: 6.794544e-08
+      products:
+        - LFP41
+      type: sf
 CM243:
-- transmutation:
-    branch: 1.0
-    products:
-    - CM242
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - CM244
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- decay:
-    branch: 0.9971
-    products:
-    - PU239
-    type: ad
-- decay:
-    branch: 0.0029
-    products:
-    - AM243
-    type: ec
-- decay:
-    branch: 5.30000e-11
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM242
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM244
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - decay:
+      branch: 0.9971
+      products:
+        - PU239
+      type: ad
+  - decay:
+      branch: 0.0029
+      products:
+        - AM243
+      type: ec
+  - decay:
+      branch: 5.30000e-11
+      products:
+        - LFP41
+      type: sf
 CM244:
-- transmutation:
-    branch: 1.0
-    products:
-    - CM243
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CM245
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - PU240
-    type: ad
-- decay:
-    branch: 1.340741e-06
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM243
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM245
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - PU240
+      type: ad
+  - decay:
+      branch: 1.340741e-06
+      products:
+        - LFP41
+      type: sf
 CM245:
-- transmutation:
-    branch: 1.0
-    products:
-    - CM244
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CM246
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - PU241
-    type: ad
-- decay:
-    branch: 6.10000e-09
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM244
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM246
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - PU241
+      type: ad
+  - decay:
+      branch: 6.10000e-09
+      products:
+        - LFP41
+      type: sf
 CM246:
-- transmutation:
-    branch: 1.0
-    products:
-    - CM245
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CM247
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - PU242
-    type: ad
-- decay:
-    branch: 2.61500e-04
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM245
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM247
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - PU242
+      type: ad
+  - decay:
+      branch: 2.61500e-04
+      products:
+        - LFP41
+      type: sf
 CM247:
-- transmutation:
-    branch: 1.0
-    products:
-    - CM246
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - CM248
-    - DUMP2
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - AM243
-    type: ad
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM246
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM248
+        - DUMP2
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - AM243
+      type: ad
 CM248:
-- transmutation:
-    branch: 1.0
-    products:
-    - CM247
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - BK249
-    type: nGamma
-- decay:
-    branch: 0.9161
-    products:
-    - DUMP2
-    type: ad
-- decay:
-    branch: 8.39000e-02
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - CM247
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - BK249
+      type: nGamma
+  - decay:
+      branch: 0.9161
+      products:
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 8.39000e-02
+      products:
+        - LFP41
+      type: sf
 H3:
-- decay:
-    branch: 1.0
-    products:
-    - HE3
-    - DUMP1
-    type: bmd
+  - decay:
+      branch: 1.0
+      products:
+        - HE3
+        - DUMP1
+      type: bmd
 HE3:
-- transmutation:
-    branch: 1.0
-    products:
-    - HE4
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - H3
-    type: np
+  - transmutation:
+      branch: 1.0
+      products:
+        - HE4
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - H3
+      type: np
 HE4: []
 IN113:
-- transmutation:
-    branch: 0.995
-    products:
-    - SN114
-    - DUMP1
-    type: nGamma
-- transmutation:
-    branch: 0.005
-    products:
-    - CD114
-    - DUMP1
-    type: nGamma
+  - transmutation:
+      branch: 0.995
+      products:
+        - SN114
+        - DUMP1
+      type: nGamma
+  - transmutation:
+      branch: 0.005
+      products:
+        - CD114
+        - DUMP1
+      type: nGamma
 IN115:
-- transmutation:
-    branch: 0.9997
-    products:
-    - SN116
-    - DUMP1
-    type: nGamma
-- transmutation:
-    branch: 0.0003
-    products:
-    - CD116
-    - DUMP1
-    type: nGamma
+  - transmutation:
+      branch: 0.9997
+      products:
+        - SN116
+        - DUMP1
+      type: nGamma
+  - transmutation:
+      branch: 0.0003
+      products:
+        - CD116
+        - DUMP1
+      type: nGamma
 LI6:
-- transmutation:
-    branch: 1.0
-    products:
-    - LI7
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - HE4
-    - DUMP1
-    type: nt
+  - transmutation:
+      branch: 1.0
+      products:
+        - LI7
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - HE4
+        - DUMP1
+      type: nt
 LI7:
-# LI7 n,gammas to Be8 which splits into two alphas, so we model both here by setting the productParticle to HE4
-- transmutation:
-    branch: 1.0
-    products:
-    - HE4
-    - DUMP1
-    type: nGamma
-    productParticle: HE4
-- transmutation:
-    branch: 1.0
-    products:
-    - LI6
-    type: n2n
+  # LI7 n,gammas to Be8 which splits into two alphas, so we model both here by setting the productParticle to HE4
+  - transmutation:
+      branch: 1.0
+      products:
+        - HE4
+        - DUMP1
+      type: nGamma
+      productParticle: HE4
+  - transmutation:
+      branch: 1.0
+      products:
+        - LI6
+      type: n2n
 NP237:
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP38
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.2500e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - NP238
-    - PU238
-    type: nGamma
-- transmutation:
-    branch: 0.346
-    products:
-    - PU236
-    type: n2n
-- transmutation:
-    branch: 0.374
-    products:
-    - U236
-    type: n2n
-- transmutation:
-    branch: 0.28
-    products:
-    - DUMP2
-    type: n2n
-- decay:
-    branch: 1.0
-    products:
-    - PA233
-    - DUMP2
-    type: ad
-- decay:
-    branch: 2.139954e-12
-    products:
-    - DUMP1
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP38
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.2500e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP238
+        - PU238
+      type: nGamma
+  - transmutation:
+      branch: 0.346
+      products:
+        - PU236
+      type: n2n
+  - transmutation:
+      branch: 0.374
+      products:
+        - U236
+      type: n2n
+  - transmutation:
+      branch: 0.28
+      products:
+        - DUMP2
+      type: n2n
+  - decay:
+      branch: 1.0
+      products:
+        - PA233
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 2.139954e-12
+      products:
+        - DUMP1
+      type: sf
 NP238:
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP38
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - NP239
-    - PU239
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - NP237
-    type: n2n
-- decay:
-    branch: 1.0
-    products:
-    - PU238
-    type: bmd
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP38
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP239
+        - PU239
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP237
+      type: n2n
+  - decay:
+      branch: 1.0
+      products:
+        - PU238
+      type: bmd
 PA231:
-- transmutation:
-    branch: 1.0
-    products:
-    - U232
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - U232
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: n2n
 PA233:
-- transmutation:
-    branch: 1.0
-    products:
-    - U234
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP35
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: n2n
-- decay:
-    branch: 1.0
-    products:
-    - U233
-    type: bmd
+  - transmutation:
+      branch: 1.0
+      products:
+        - U234
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP35
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: n2n
+  - decay:
+      branch: 1.0
+      products:
+        - U233
+      type: bmd
 PU236:
-- transmutation:
-    branch: 1.0
-    products:
-    - NP237
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP35
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: n2n
-- decay:
-    branch: 1.0
-    products:
-    - U232
-    - DUMP2
-    type: ad
-- decay:
-    branch: 1.90000e-09
-    products:
-    - LFP38
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP237
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP35
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: n2n
+  - decay:
+      branch: 1.0
+      products:
+        - U232
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 1.90000e-09
+      products:
+        - LFP38
+      type: sf
 PU238:
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP38
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - PU239
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - NP237
-    type: n2n
-- decay:
-    branch: 1.0
-    products:
-    - U234
-    type: ad
-- decay:
-    branch: 1.838574e-09
-    products:
-    - LFP38
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP38
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU239
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP237
+      type: n2n
+  - decay:
+      branch: 1.0
+      products:
+        - U234
+      type: ad
+  - decay:
+      branch: 1.838574e-09
+      products:
+        - LFP38
+      type: sf
 PU239:
-- transmutation:
-    branch: 1.0
-    products:
-    - PU238
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP39
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.4200e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - PU240
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - U235
-    type: ad
-- decay:
-    branch: 4.399635e-12
-    products:
-    - LFP39
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU238
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP39
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.4200e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU240
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - U235
+      type: ad
+  - decay:
+      branch: 4.399635e-12
+      products:
+        - LFP39
+      type: sf
 PU240:
-- transmutation:
-    branch: 1.0
-    products:
-    - PU239
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP40
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.9179e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - PU241
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - U236
-    type: ad
-- decay:
-    branch: 5.656034e-08
-    products:
-    - LFP40
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU239
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP40
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.9179e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU241
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - U236
+      type: ad
+  - decay:
+      branch: 5.656034e-08
+      products:
+        - LFP40
+      type: sf
 PU241:
-- transmutation:
-    branch: 1.0
-    products:
-    - PU240
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.4100e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - PU242
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - AM241
-    type: bmd
-- decay:
-    branch: 5.729878e-15
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU240
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.4100e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU242
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - AM241
+      type: bmd
+  - decay:
+      branch: 5.729878e-15
+      products:
+        - LFP41
+      type: sf
 PU242:
-- transmutation:
-    branch: 1.0
-    products:
-    - PU241
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP41
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.6348e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - AM243
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - U238
-    type: ad
-- decay:
-    branch: 5.482456e-06
-    products:
-    - LFP41
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU241
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP41
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.6348e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - AM243
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - U238
+      type: ad
+  - decay:
+      branch: 5.482456e-06
+      products:
+        - LFP41
+      type: sf
 TH232:
-- transmutation:
-    branch: 1.0
-    products:
-    - PA233
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP35
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - PA231
-    type: n2n
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: ad
-- decay:
-    branch: 1.410000e-11
-    products:
-    - LFP35
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - PA233
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP35
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - PA231
+      type: n2n
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 1.410000e-11
+      products:
+        - LFP35
+      type: sf
 U232:
-- transmutation:
-    branch: 1.0
-    products:
-    - U233
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP35
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - PA231
-    type: n2n
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: ad
-- decay:
-    branch: 8.612316e-13
-    products:
-    - LFP35
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - U233
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP35
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - PA231
+      type: n2n
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 8.612316e-13
+      products:
+        - LFP35
+      type: sf
 U233:
-- transmutation:
-    branch: 1.0
-    products:
-    - U234
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP35
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.1400e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - U232
-    type: n2n
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: ad
-- decay:
-    branch: 1.326638e-12
-    products:
-    - LFP35
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - U234
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP35
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.1400e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - U232
+      type: n2n
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 1.326638e-12
+      products:
+        - LFP35
+      type: sf
 U234:
-- transmutation:
-    branch: 1.0
-    products:
-    - U233
-    - DUMP2
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP35
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.5925e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - U235
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: ad
-- decay:
-    branch: 1.169048e-11
-    products:
-    - LFP35
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - U233
+        - DUMP2
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP35
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.5925e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - U235
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 1.169048e-11
+      products:
+        - LFP35
+      type: sf
 U235:
-- transmutation:
-    branch: 1.0
-    products:
-    - U234
-    - DUMP2
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP35
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.0800e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - U236
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: ad
-- decay:
-    branch: 2.011429e-09
-    products:
-    - LFP35
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - U234
+        - DUMP2
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP35
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.0800e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - U236
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 2.011429e-09
+      products:
+        - LFP35
+      type: sf
 U236:
-- transmutation:
-    branch: 1.0
-    products:
-    - U235
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - NP237
-    type: nGamma
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP35
-    type: fission
-- transmutation:
-    branch: 1.3094e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: ad
-- decay:
-    branch: 1.201026e-09
-    products:
-    - LFP35
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - U235
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP237
+      type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP35
+      type: fission
+  - transmutation:
+      branch: 1.3094e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: ad
+  - decay:
+      branch: 1.201026e-09
+      products:
+        - LFP35
+      type: sf
 U238:
-- transmutation:
-    branch: 1.0
-    products:
-    - NP237
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP38
-    type: fission
-# add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
-- transmutation:
-    branch: 1.0262e-04
-    products:
-    - H3
-    - DUMP1
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - NP239
-    - PU239
-    type: nGamma
-- decay:
-    branch: 5.448780e-07
-    products:
-    - LFP38
-    type: sf
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP237
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP38
+      type: fission
+  # add tritium from ternary fission from JEFF3.1.1 on top of the LFPs (400 keV)
+  - transmutation:
+      branch: 1.0262e-04
+      products:
+        - H3
+        - DUMP1
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP239
+        - PU239
+      type: nGamma
+  - decay:
+      branch: 5.448780e-07
+      products:
+        - LFP38
+      type: sf
 NP239:
-- transmutation:
-    branch: 1.0
-    products:
-    - NP238
-    type: n2n
-- transmutation:
-    branch: 1.0
-    products:
-    - LFP38
-    type: fission
-- transmutation:
-    branch: 1.0
-    products:
-    - PU240
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - PU239
-    type: bmd
+  - transmutation:
+      branch: 1.0
+      products:
+        - NP238
+      type: n2n
+  - transmutation:
+      branch: 1.0
+      products:
+        - LFP38
+      type: fission
+  - transmutation:
+      branch: 1.0
+      products:
+        - PU240
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - PU239
+      type: bmd
 Y89:
-- transmutation:
-    branch: 1.0
-    products:
-    - SR89
-    type: np
+  - transmutation:
+      branch: 1.0
+      products:
+        - SR89
+      type: np
 SR89:
-- transmutation:
-    branch: 1.0
-    products:
-    - SR90
-    type: nGamma
-- decay:
-    branch: 1.0
-    products:
-    - Y89
-    type: bmd
+  - transmutation:
+      branch: 1.0
+      products:
+        - SR90
+      type: nGamma
+  - decay:
+      branch: 1.0
+      products:
+        - Y89
+      type: bmd
 SR90:
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: bmd
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: bmd
 S32:
-- transmutation:
-    branch: 1.0
-    products:
-    - P32
-    type: np
-- transmutation:
-    branch: 1.0
-    products:
-    - S33
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - P32
+      type: np
+  - transmutation:
+      branch: 1.0
+      products:
+        - S33
+      type: nGamma
 P32:
-- decay:
-    branch: 1.0
-    products:
-    - S32
-    type: bmd
+  - decay:
+      branch: 1.0
+      products:
+        - S32
+      type: bmd
 S33:
-- transmutation:
-    branch: 1.0
-    products:
-    - S34
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - S34
+      type: nGamma
 S34:
-- transmutation:
-    branch: 1.0
-    products:
-    - S35
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - S35
+      type: nGamma
 S35:
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: bmd
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: bmd
 S36:
-- transmutation:
-    branch: 1.0
-    products:
-    - S37
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - S37
+      type: nGamma
 S37:
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: bmd
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: bmd
 TI46:
-- transmutation:
-    branch: 1.0
-    products:
-    - TI47
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - TI47
+      type: nGamma
 TI47:
-- transmutation:
-    branch: 1.0
-    products:
-    - SC47
-    type: np
-- transmutation:
-    branch: 1.0
-    products:
-    - TI48
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - SC47
+      type: np
+  - transmutation:
+      branch: 1.0
+      products:
+        - TI48
+      type: nGamma
 SC47:
-- decay:
-    branch: 1.0
-    products:
-    - TI47
-    type: bmd
+  - decay:
+      branch: 1.0
+      products:
+        - TI47
+      type: bmd
 TI48:
-- transmutation:
-    branch: 1.0
-    products:
-    - TI49
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - TI49
+      type: nGamma
 TI49:
-- transmutation:
-    branch: 1.0
-    products:
-    - TI50
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - TI50
+      type: nGamma
 TI50:
-- transmutation:
-    branch: 1.0
-    products:
-    - TI51
-    type: nGamma
+  - transmutation:
+      branch: 1.0
+      products:
+        - TI51
+      type: nGamma
 TI51:
-- decay:
-    branch: 1.0
-    products:
-    - DUMP2
-    type: bmd
+  - decay:
+      branch: 1.0
+      products:
+        - DUMP2
+      type: bmd
diff --git a/armi/resources/mcc-nuclides.yaml b/armi/resources/mcc-nuclides.yaml
index 8ba519a0..a4d68fdb 100644
--- a/armi/resources/mcc-nuclides.yaml
+++ b/armi/resources/mcc-nuclides.yaml
@@ -2,7 +2,7 @@
 # codes. The MC2-2 code base uses ENDF/B-V.2 and the MC2-3 code base uses
 # ENDF/B-VII.0. This file can be amended in the future for MC2-3 as the
 # code base changes, but the nuclides that MC2-3 models are consistent with
-# the data that is supplied by ENDF/B-VII.0. See: Appendix B of ANL/NE-11/41 Rev.3 
+# the data that is supplied by ENDF/B-VII.0. See: Appendix B of ANL/NE-11/41 Rev.3
 # Public Link: https://publications.anl.gov/anlpubs/2018/10/147840.pdf.
 AC225:
   ENDF/B-V.2: null
diff --git a/doc/release/0.4.rst b/doc/release/0.4.rst
index c61c6079..9151fd11 100644
--- a/doc/release/0.4.rst
+++ b/doc/release/0.4.rst
@@ -16,6 +16,8 @@ New Features
 API Changes
 -----------
 #. Removing flags ``CORE`` and ``REACTOR``. (`PR#1835 <https://github.com/terrapower/armi/pull/1835>`_)
+#. Removing deprecated method ``prepSearch``. (`PR#1845 <https://github.com/terrapower/armi/pull/1845>`_)
+#. Removing unused function ``SkippingXsGen_BuChangedLessThanTolerance``. (`PR#1845 <https://github.com/terrapower/armi/pull/1845>`_)
 #. Allow for unknown Flags when opening a DB. (`PR#1844 <https://github.com/terrapower/armi/pull/1835>`_)
 #. TBD
 
@@ -23,6 +25,7 @@ Bug Fixes
 ---------
 #. Fixed ``DerivedShape.getArea`` for ``cold=True``. (`PR#1831 <https://github.com/terrapower/armi/pull/1831>`_)
 #. Fixed error parsing command line integers in ``ReportsEntryPoint``. (`PR#1824 <https://github.com/terrapower/armi/pull/1824>`_)
+#. Changed data type of ``thKernel`` setting from ``bool`` to ``str`` in ``ThermalHydraulicsPlugin``. (`PR#1855 <https://github.com/terrapower/armi/pull/1855>`_)
 #. TBD
 
 Quality Work


Test patch:
diff --git a/.github/workflows/mac_tests.yaml b/.github/workflows/mac_tests.yaml
index 3cb78208..75d46653 100644
--- a/.github/workflows/mac_tests.yaml
+++ b/.github/workflows/mac_tests.yaml
@@ -1,5 +1,8 @@
 name: ARMI MacOS Tests
 
+permissions:
+  contents: read
+
 on:
   push:
     paths-ignore:
diff --git a/.github/workflows/unittests.yaml b/.github/workflows/unittests.yaml
index 4dead822..dafc04a8 100644
--- a/.github/workflows/unittests.yaml
+++ b/.github/workflows/unittests.yaml
@@ -1,5 +1,8 @@
 name: ARMI unit tests
 
+permissions:
+  contents: read
+
 on:
   push:
     paths-ignore:
diff --git a/.github/workflows/wintests.yaml b/.github/workflows/wintests.yaml
index e141cb14..1d77b551 100644
--- a/.github/workflows/wintests.yaml
+++ b/.github/workflows/wintests.yaml
@@ -1,5 +1,8 @@
 name: ARMI Windows tests
 
+permissions:
+  contents: read
+
 on:
   push:
     paths-ignore:
diff --git a/armi/bookkeeping/db/tests/test_databaseInterface.py b/armi/bookkeeping/db/tests/test_databaseInterface.py
index 0819a400..664ed193 100644
--- a/armi/bookkeeping/db/tests/test_databaseInterface.py
+++ b/armi/bookkeeping/db/tests/test_databaseInterface.py
@@ -77,6 +77,31 @@ class MockInterface(interfaces.Interface):
         self.action(cycle, node)
 
 
+class TestDatabaseInterfaceBOL(unittest.TestCase):
+    """Test the DatabaseInterface class at the BOL."""
+
+    def test_interactBOL(self):
+        """This test is in its own class, because of temporary directory issues."""
+        with directoryChangers.TemporaryDirectoryChanger():
+            self.o, self.r = loadTestReactor(
+                TEST_ROOT, inputFileName="smallestTestReactor/armiRunSmallest.yaml"
+            )
+            self.dbi = DatabaseInterface(self.r, self.o.cs)
+
+            dbName = f"{self._testMethodName}.h5"
+            self.dbi.initDB(fName=dbName)
+            self.db: Database3 = self.dbi.database
+            self.stateRetainer = self.r.retainState().__enter__()
+            self.assertIsNotNone(self.dbi._db)
+            self.dbi.interactBOL()
+            self.dbi.closeDB()
+            self.dbi._db = None
+            self.assertIsNone(self.dbi._db)
+
+            if os.path.exists(dbName):
+                os.remove(dbName)
+
+
 class TestDatabaseInterface(unittest.TestCase):
     """Tests for the DatabaseInterface class."""
 
@@ -105,15 +130,6 @@ class TestDatabaseInterface(unittest.TestCase):
             if os.path.exists(dirt):
                 os.remove(dirt)
 
-    def test_interactBOL(self):
-        self.assertIsNotNone(self.dbi._db)
-        self.dbi.interactBOL()
-
-        self.dbi._db = None
-        self.assertIsNone(self.dbi._db)
-        self.dbi.interactBOL()
-        self.assertIsNotNone(self.dbi._db)
-
     def test_distributable(self):
         self.assertEqual(self.dbi.distributable(), 4)
         self.dbi.interactDistributeState()
diff --git a/armi/physics/fuelCycle/tests/test_fuelHandlers.py b/armi/physics/fuelCycle/tests/test_fuelHandlers.py
index 2d8fbd30..dd3cd843 100644
--- a/armi/physics/fuelCycle/tests/test_fuelHandlers.py
+++ b/armi/physics/fuelCycle/tests/test_fuelHandlers.py
@@ -154,6 +154,15 @@ class MockXSGM(CrossSectionGroupManager):
 
 
 class TestFuelHandler(FuelHandlerTestHelper):
+    def test_getParamMax(self):
+        a = self.assembly
+
+        res = fuelHandlers.FuelHandler._getParamMax(a, "kInf", True)
+        self.assertEqual(res, 0.0)
+
+        res = fuelHandlers.FuelHandler._getParamMax(a, "kInf", False)
+        self.assertEqual(res, 0.0)
+
     def test_interactBOC(self):
         # set up mock interface
         self.o.addInterface(MockLatticePhysicsInterface(self.r, self.o.cs))
@@ -212,6 +221,18 @@ class TestFuelHandler(FuelHandlerTestHelper):
         fh.outage(factor=1.0)
         self.assertEqual(len(fh.moved), 0)
 
+    def test_outageEdgeCase(self):
+        class MockFH(fuelHandlers.FuelHandler):
+            def chooseSwaps(self, factor=1.0):
+                self.moved = [None]
+
+        # mock up a fuel handler
+        fh = MockFH(self.o)
+
+        # test edge case
+        with self.assertRaises(AttributeError):
+            fh.outage(factor=1.0)
+
     def test_isAssemblyInAZone(self):
         # build a fuel handler
         fh = fuelHandlers.FuelHandler(self.o)
@@ -404,8 +425,7 @@ class TestFuelHandler(FuelHandlerTestHelper):
         expected = lastB.parent
         self.assertIs(assem, expected)
 
-        # test the impossible: an block with burnup less than
-        # 110% of its own burnup
+        # test the impossible: an block with burnup less than 110% of its own burnup
         assem = fh.findAssembly(
             param="percentBu",
             compareTo=100,
diff --git a/armi/physics/neutronics/latticePhysics/tests/test_latticeInterface.py b/armi/physics/neutronics/latticePhysics/tests/test_latticeInterface.py
index fdf3a102..c8b6ed32 100644
--- a/armi/physics/neutronics/latticePhysics/tests/test_latticeInterface.py
+++ b/armi/physics/neutronics/latticePhysics/tests/test_latticeInterface.py
@@ -209,6 +209,9 @@ class TestLatticePhysicsInterface(TestLatticePhysicsInterfaceBase):
         self.latticeInterface.interactCoupled(iteration=1)
         self.assertIsNone(self.o.r.core.lib)
 
+    def test_getSuffix(self):
+        self.assertEqual(self.latticeInterface._getSuffix(7), "")
+
 
 class TestLatticePhysicsLibraryCreation(TestLatticePhysicsInterfaceBase):
     """Test variations of _newLibraryShouldBeCreated."""
diff --git a/armi/physics/neutronics/latticePhysics/tests/test_latticeWriter.py b/armi/physics/neutronics/latticePhysics/tests/test_latticeWriter.py
index 7c40eca1..f7f1f8e2 100644
--- a/armi/physics/neutronics/latticePhysics/tests/test_latticeWriter.py
+++ b/armi/physics/neutronics/latticePhysics/tests/test_latticeWriter.py
@@ -20,6 +20,9 @@ from armi.physics.neutronics.const import CONF_CROSS_SECTION
 from armi.physics.neutronics.fissionProductModel.fissionProductModelSettings import (
     CONF_FP_MODEL,
 )
+from armi.physics.neutronics.latticePhysics.latticePhysicsInterface import (
+    setBlockNeutronVelocities,
+)
 from armi.physics.neutronics.latticePhysics.latticePhysicsWriter import (
     LatticePhysicsWriter,
 )
@@ -66,6 +69,13 @@ class TestLatticePhysicsWriter(unittest.TestCase):
         self.block = self.r.core.getFirstBlock()
         self.w = FakeLatticePhysicsWriter(self.block, self.r, self.o)
 
+    def test_setBlockNeutronVelocities(self):
+        d = defaultdict(float)
+        d["AA"] = 10.0
+        setBlockNeutronVelocities(self.r, d)
+        tot = sum([b.p.mgNeutronVelocity for b in self.r.core.getBlocks()])
+        self.assertGreater(tot, 3000.0)
+
     def test_latticePhysicsWriter(self):
         """Super basic test of the LatticePhysicsWriter."""
         self.assertEqual(self.w.xsId, "AA")
diff --git a/armi/physics/neutronics/tests/test_crossSectionManager.py b/armi/physics/neutronics/tests/test_crossSectionManager.py
index 2437420a..80b5cac0 100644
--- a/armi/physics/neutronics/tests/test_crossSectionManager.py
+++ b/armi/physics/neutronics/tests/test_crossSectionManager.py
@@ -701,6 +701,16 @@ class TestCrossSectionGroupManager(unittest.TestCase):
         self.csm._setBuGroupBounds([3, 10, 30, 100])
         self.csm.interactBOL()
 
+    def test_enableBuGroupUpdates(self):
+        self.csm._buGroupUpdatesEnabled = False
+        self.csm.enableBuGroupUpdates()
+        self.assertTrue(self.csm.enableBuGroupUpdates)
+
+    def test_disableBuGroupUpdates(self):
+        self.csm._buGroupUpdatesEnabled = False
+        res = self.csm.disableBuGroupUpdates()
+        self.assertFalse(res)
+
     def test_updateBurnupGroups(self):
         self.blockList[1].p.percentBu = 3.1
         self.blockList[2].p.percentBu = 10.0
diff --git a/armi/physics/thermalHydraulics/tests/__init__.py b/armi/physics/thermalHydraulics/tests/__init__.py
new file mode 100644
index 00000000..84776603
--- /dev/null
+++ b/armi/physics/thermalHydraulics/tests/__init__.py
@@ -0,0 +1,13 @@
+# Copyright 2024 TerraPower, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/armi/physics/thermalHydraulics/tests/test_thermalHydraulicsPlugin.py b/armi/physics/thermalHydraulics/tests/test_thermalHydraulicsPlugin.py
new file mode 100644
index 00000000..3c9938ab
--- /dev/null
+++ b/armi/physics/thermalHydraulics/tests/test_thermalHydraulicsPlugin.py
@@ -0,0 +1,41 @@
+# Copyright 2024 TerraPower, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Unit tests for the thermal hydraulics plugin."""
+from armi.physics import thermalHydraulics
+from armi.physics.thermalHydraulics.settings import CONF_DO_TH, CONF_TH_KERNEL
+from armi.settings import caseSettings
+from armi.tests.test_plugins import TestPlugin
+
+
+class TestThermalHydraulicsPlugin(TestPlugin):
+    plugin = thermalHydraulics.ThermalHydraulicsPlugin
+
+    def test_thermalHydraulicsSettingsLoaded(self):
+        """Test that the thermal hydraulics case settings are loaded."""
+        cs = caseSettings.Settings()
+
+        self.assertIn(CONF_DO_TH, cs)
+        self.assertIn(CONF_TH_KERNEL, cs)
+
+    def test_thermalHydraulicsSettingsSet(self):
+        """Test that the thermal hydraulics case settings are applied correctly."""
+        cs = caseSettings.Settings()
+        thKernelName = "testKernel"
+
+        cs[CONF_DO_TH] = True
+        cs[CONF_TH_KERNEL] = thKernelName
+
+        self.assertTrue(cs[CONF_DO_TH])
+        self.assertEqual(cs[CONF_TH_KERNEL], thKernelName)
diff --git a/armi/tests/1DslabXSByCompTest.yaml b/armi/tests/1DslabXSByCompTest.yaml
index 0ea6d2b0..ce9cf6e8 100644
--- a/armi/tests/1DslabXSByCompTest.yaml
+++ b/armi/tests/1DslabXSByCompTest.yaml
@@ -1,187 +1,216 @@
 nuclide flags:
-    NA23: {burn: false, xs: true}
-    FE: {burn: false, xs: true}
-    U235: {burn: false, xs: true}
-    U238: {burn: false, xs: true}
-    PU239: {burn: false, xs: true}
-    PU240: {burn: false, xs: true}
-    PU241: {burn: false, xs: true}
+  NA23: {burn: false, xs: true}
+  FE: {burn: false, xs: true}
+  U235: {burn: false, xs: true}
+  U238: {burn: false, xs: true}
+  PU239: {burn: false, xs: true}
+  PU240: {burn: false, xs: true}
+  PU241: {burn: false, xs: true}
 custom isotopics:
-    eUranium:
-        input format: number densities
-        U235: 0.025
-        U238: 0.02
-    PuUranium:
-        input format: number densities
-        PU239: 0.02
-        PU240: 0.0075
-        PU241: 0.0025
-        U238: 0.015
-    depletedUranium:
-        input format: number densities
-        U238: 0.045
-    sodium:
-        input format: number densities
-        NA23: 0.02
-    structuralSteel:
-        input format: number densities
-        FE: 0.07
-    eUraniumHalf:
-        input format: number densities
-        U235: 0.0125
-        U238: 0.01
+  eUranium:
+    input format: number densities
+    U235: 0.025
+    U238: 0.02
+  PuUranium:
+    input format: number densities
+    PU239: 0.02
+    PU240: 0.0075
+    PU241: 0.0025
+    U238: 0.015
+  depletedUranium:
+    input format: number densities
+    U238: 0.045
+  sodium:
+    input format: number densities
+    NA23: 0.02
+  structuralSteel:
+    input format: number densities
+    FE: 0.07
+  eUraniumHalf:
+    input format: number densities
+    U235: 0.0125
+    U238: 0.01
 blocks:
-    eu fuel block: &block_eufuelblock
-        depleted_uranium: &component_eufuelblock_depleted_uranium
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: depletedUranium
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 1.0
-        enriched_uranium fuel:
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: eUranium
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 2.0
-        sodium: &component_eufuelblock_sodium
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: sodium
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 1.0
-        iron: &component_eufuelblock_iron
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: structuralSteel
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 4.0
-        latticeboundarycell: &component_eufuelblock_latticeboundarycell
-            shape: Rectangle
-            material: Void
-            Tinput: 20.0
-            Thot: 20.0
-            lengthInner: 1.0
-            lengthOuter: 1.0
-            mult: 1.0
-            widthInner: 8.0
-            widthOuter: 8.0
-    reversedeu fuel block: &block_reversedeufuelblock
-        iron: *component_eufuelblock_iron
-        sodium: *component_eufuelblock_sodium
-        enriched_uranium fuel:
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: eUraniumHalf
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 2.0
-        depleted_uranium: *component_eufuelblock_depleted_uranium
-        latticeboundarycell: *component_eufuelblock_latticeboundarycell
-    inheritseublocks: &block_inheritseublocks
-        sodium:
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: sodium
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 0.5
-        pu(fuel):
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: PuUranium
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 3.0
-        iron:
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: structuralSteel
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 1.0
-        pu(fuel)2:
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: PuUranium
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 0.5
-        iron2:
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: structuralSteel
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 3.0
-        latticeboundarycell: *component_eufuelblock_latticeboundarycell
-    blanket fuel block: &block_blanketfuelblock
-        depleted_uranium fuel 1: *component_eufuelblock_depleted_uranium
-        sodium:
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: sodium
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 6.0
-        depleted_uranium(fuel)2: *component_eufuelblock_depleted_uranium
-        latticeboundarycell: *component_eufuelblock_latticeboundarycell
-    reflectorblockinheritsblanket: &block_reflectorblockinheritsblanket
-        iron:
-            shape: SolidRectangle
-            material: Custom
-            Tinput: 20.0
-            Thot: 20.0
-            isotopics: structuralSteel
-            lengthOuter: 1.0
-            mult: 1.0
-            widthOuter: 8.0
-        latticeboundarycell: *component_eufuelblock_latticeboundarycell
+  eu fuel block: &block_eufuelblock
+    depleted_uranium: &component_eufuelblock_depleted_uranium
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: depletedUranium
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 1.0
+    enriched_uranium fuel:
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: eUranium
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 2.0
+    sodium: &component_eufuelblock_sodium
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: sodium
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 1.0
+    iron: &component_eufuelblock_iron
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: structuralSteel
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 4.0
+    latticeboundarycell: &component_eufuelblock_latticeboundarycell
+      shape: Rectangle
+      material: Void
+      Tinput: 20.0
+      Thot: 20.0
+      lengthInner: 1.0
+      lengthOuter: 1.0
+      mult: 1.0
+      widthInner: 8.0
+      widthOuter: 8.0
+  reversedeu fuel block: &block_reversedeufuelblock
+    iron: *component_eufuelblock_iron
+    sodium: *component_eufuelblock_sodium
+    enriched_uranium fuel:
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: eUraniumHalf
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 2.0
+    depleted_uranium: *component_eufuelblock_depleted_uranium
+    latticeboundarycell: *component_eufuelblock_latticeboundarycell
+  inheritseublocks: &block_inheritseublocks
+    sodium:
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: sodium
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 0.5
+    pu(fuel):
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: PuUranium
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 3.0
+    iron:
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: structuralSteel
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 1.0
+    pu(fuel)2:
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: PuUranium
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 0.5
+    iron2:
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: structuralSteel
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 3.0
+    latticeboundarycell: *component_eufuelblock_latticeboundarycell
+  blanket fuel block: &block_blanketfuelblock
+    depleted_uranium fuel 1: *component_eufuelblock_depleted_uranium
+    sodium:
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: sodium
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 6.0
+    depleted_uranium(fuel)2: *component_eufuelblock_depleted_uranium
+    latticeboundarycell: *component_eufuelblock_latticeboundarycell
+  reflectorblockinheritsblanket: &block_reflectorblockinheritsblanket
+    iron:
+      shape: SolidRectangle
+      material: Custom
+      Tinput: 20.0
+      Thot: 20.0
+      isotopics: structuralSteel
+      lengthOuter: 1.0
+      mult: 1.0
+      widthOuter: 8.0
+    latticeboundarycell: *component_eufuelblock_latticeboundarycell
 assemblies:
-    heights: &standard_heights [10.0, 30.0, 30.0, 15.0, 15.0, 30.0, 30.0, 10.0]
-    axial mesh points: &standard_axial_mesh_points [1, 2, 2, 1, 1, 2, 2, 1]
-    feed fuel:
-        specifier: DrawerSet1
-        blocks: [*block_reflectorblockinheritsblanket, *block_blanketfuelblock, *block_eufuelblock, *block_inheritseublocks, *block_reversedeufuelblock, *block_eufuelblock, *block_blanketfuelblock, *block_reflectorblockinheritsblanket]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: &feed_fuel_xs_types [AZ, AZ, AA, AA, AA, AA, AZ, AZ]
-    drawerset2:
-        specifier: DrawerSet2
-        blocks: [*block_reflectorblockinheritsblanket, *block_blanketfuelblock, *block_inheritseublocks, *block_eufuelblock, *block_reversedeufuelblock, *block_reversedeufuelblock, *block_blanketfuelblock,
-            *block_reflectorblockinheritsblanket]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: *feed_fuel_xs_types
-    NotInCoreButGetBlocks:
-        specifier: NotInCore
-        blocks: [*block_reflectorblockinheritsblanket, *block_blanketfuelblock, *block_eufuelblock, *block_inheritseublocks, *block_reversedeufuelblock, *block_eufuelblock, *block_blanketfuelblock, *block_reflectorblockinheritsblanket]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: [AZ, AZ, AC, AC, AC, AC, AZ, AZ]
+  heights: &standard_heights [10.0, 30.0, 30.0, 15.0, 15.0, 30.0, 30.0, 10.0]
+  axial mesh points: &standard_axial_mesh_points [1, 2, 2, 1, 1, 2, 2, 1]
+  feed fuel:
+    specifier: DrawerSet1
+    blocks:
+      [
+        *block_reflectorblockinheritsblanket,
+        *block_blanketfuelblock,
+        *block_eufuelblock,
+        *block_inheritseublocks,
+        *block_reversedeufuelblock,
+        *block_eufuelblock,
+        *block_blanketfuelblock,
+        *block_reflectorblockinheritsblanket,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: &feed_fuel_xs_types [AZ, AZ, AA, AA, AA, AA, AZ, AZ]
+  drawerset2:
+    specifier: DrawerSet2
+    blocks:
+      [
+        *block_reflectorblockinheritsblanket,
+        *block_blanketfuelblock,
+        *block_inheritseublocks,
+        *block_eufuelblock,
+        *block_reversedeufuelblock,
+        *block_reversedeufuelblock,
+        *block_blanketfuelblock,
+        *block_reflectorblockinheritsblanket,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: *feed_fuel_xs_types
+  NotInCoreButGetBlocks:
+    specifier: NotInCore
+    blocks:
+      [
+        *block_reflectorblockinheritsblanket,
+        *block_blanketfuelblock,
+        *block_eufuelblock,
+        *block_inheritseublocks,
+        *block_reversedeufuelblock,
+        *block_eufuelblock,
+        *block_blanketfuelblock,
+        *block_reflectorblockinheritsblanket,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: [AZ, AZ, AC, AC, AC, AC, AZ, AZ]
diff --git a/armi/tests/Godiva-blueprints.yaml b/armi/tests/Godiva-blueprints.yaml
index 519725dd..272337d4 100644
--- a/armi/tests/Godiva-blueprints.yaml
+++ b/armi/tests/Godiva-blueprints.yaml
@@ -1,450 +1,450 @@
 nuclide flags:
-  PU237: {burn: false,  xs: true, expandTo: []}
-  PU240: {burn: false,  xs: true, expandTo: []}
-  PU241: {burn: false,  xs: true, expandTo: []}
-  AR: {burn: false,  xs: true, expandTo: []}
-  PA233: {burn: false,  xs: true, expandTo: []}
-  NP238: {burn: false,  xs: true, expandTo: []}
-  AR36: {burn: false,  xs: true, expandTo: []}
-  TH230: {burn: false,  xs: true, expandTo: []}
-  AR38: {burn: false,  xs: true, expandTo: []}
-  U238: {burn: false,  xs: true, expandTo: []}
-  U239: {burn: false,  xs: true, expandTo: []}
-  C: {burn: false,  xs: true, expandTo: []}
-  LFP35: {burn: false,  xs: true, expandTo: []}
-  U233: {burn: false,  xs: true, expandTo: []}
-  U234: {burn: false,  xs: true, expandTo: []}
-  U235: {burn: false,  xs: true, expandTo: []}
-  U236: {burn: false,  xs: true, expandTo: []}
-  U237: {burn: false,  xs: true, expandTo: []}
-  PU239: {burn: false,  xs: true, expandTo: []}
-  PU238: {burn: false,  xs: true, expandTo: []}
-  TH234: {burn: false,  xs: true, expandTo: []}
-  TH232: {burn: false,  xs: true, expandTo: []}
-  AR40: {burn: false,  xs: true, expandTo: []}
-  LFP39: {burn: false,  xs: true, expandTo: []}
-  DUMP2: {burn: false,  xs: true, expandTo: []}
-  LFP41: {burn: false,  xs: true, expandTo: []}
-  LFP40: {burn: false,  xs: true, expandTo: []}
-  PU242: {burn: false,  xs: true, expandTo: []}
-  PU236: {burn: false,  xs: true, expandTo: []}
-  U232: {burn: false,  xs: true, expandTo: []}
-  DUMP1: {burn: false,  xs: true, expandTo: []}
-  LFP38: {burn: false,  xs: true, expandTo: []}
-  AM243: {burn: false,  xs: true, expandTo: []}
-  PA231: {burn: false,  xs: true, expandTo: []}
-  CM244: {burn: false,  xs: true, expandTo: []}
-  CM242: {burn: false,  xs: true, expandTo: []}
-  AM242: {burn: false,  xs: true, expandTo: []}
-  CM245: {burn: false,  xs: true, expandTo: []}
-  CM243: {burn: false,  xs: true, expandTo: []}
-  CM246: {burn: false,  xs: true, expandTo: []}
-  CM247: {burn: false,  xs: true, expandTo: []}
+  PU237: {burn: false, xs: true, expandTo: []}
+  PU240: {burn: false, xs: true, expandTo: []}
+  PU241: {burn: false, xs: true, expandTo: []}
+  AR: {burn: false, xs: true, expandTo: []}
+  PA233: {burn: false, xs: true, expandTo: []}
+  NP238: {burn: false, xs: true, expandTo: []}
+  AR36: {burn: false, xs: true, expandTo: []}
+  TH230: {burn: false, xs: true, expandTo: []}
+  AR38: {burn: false, xs: true, expandTo: []}
+  U238: {burn: false, xs: true, expandTo: []}
+  U239: {burn: false, xs: true, expandTo: []}
+  C: {burn: false, xs: true, expandTo: []}
+  LFP35: {burn: false, xs: true, expandTo: []}
+  U233: {burn: false, xs: true, expandTo: []}
+  U234: {burn: false, xs: true, expandTo: []}
+  U235: {burn: false, xs: true, expandTo: []}
+  U236: {burn: false, xs: true, expandTo: []}
+  U237: {burn: false, xs: true, expandTo: []}
+  PU239: {burn: false, xs: true, expandTo: []}
+  PU238: {burn: false, xs: true, expandTo: []}
+  TH234: {burn: false, xs: true, expandTo: []}
+  TH232: {burn: false, xs: true, expandTo: []}
+  AR40: {burn: false, xs: true, expandTo: []}
+  LFP39: {burn: false, xs: true, expandTo: []}
+  DUMP2: {burn: false, xs: true, expandTo: []}
+  LFP41: {burn: false, xs: true, expandTo: []}
+  LFP40: {burn: false, xs: true, expandTo: []}
+  PU242: {burn: false, xs: true, expandTo: []}
+  PU236: {burn: false, xs: true, expandTo: []}
+  U232: {burn: false, xs: true, expandTo: []}
+  DUMP1: {burn: false, xs: true, expandTo: []}
+  LFP38: {burn: false, xs: true, expandTo: []}
+  AM243: {burn: false, xs: true, expandTo: []}
+  PA231: {burn: false, xs: true, expandTo: []}
+  CM244: {burn: false, xs: true, expandTo: []}
+  CM242: {burn: false, xs: true, expandTo: []}
+  AM242: {burn: false, xs: true, expandTo: []}
+  CM245: {burn: false, xs: true, expandTo: []}
+  CM243: {burn: false, xs: true, expandTo: []}
+  CM246: {burn: false, xs: true, expandTo: []}
+  CM247: {burn: false, xs: true, expandTo: []}
   O: {burn: false, xs: true, expandTo: [O16]}
   N: {burn: false, xs: true, expandTo: [N14]}
-  ZR: {burn: false,  xs: true, expandTo: []}
+  ZR: {burn: false, xs: true, expandTo: []}
 custom isotopics: {}
 blocks: {}
 assemblies:
   heights:
-  - 3.5
-  - 3.5
-  - 3.5
-  - 3.5
-  - 3.5
-  axial mesh points:
-  - 5
-  - 5
-  - 5
-  - 5
-  - 5
-  assembly1_1:
-    specifier: assembly1_1
-    blocks:
-    - name: block1_1_1
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 3.001
-        inner_radius: 0.0
-        mult: 0.9226919412612915
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 3.001
-        inner_radius: 0.0
-        mult: 0.0773080587387085
-    - name: block1_1_2
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 3.001
-        inner_radius: 0.0
-        mult: 1.0
-    - name: block1_1_3
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 3.001
-        inner_radius: 0.0
-        mult: 1.0
-    - name: block1_1_4
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 3.001
-        inner_radius: 0.0
-        mult: 1.0
-    - name: block1_1_5
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 3.001
-        inner_radius: 0.0
-        mult: 0.9271114468574524
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 3.001
-        inner_radius: 0.0
-        mult: 0.07288855314254761
-    height:
     - 3.5
     - 3.5
     - 3.5
     - 3.5
     - 3.5
-    axial mesh points:
+  axial mesh points:
     - 5
     - 5
     - 5
     - 5
     - 5
+  assembly1_1:
+    specifier: assembly1_1
+    blocks:
+      - name: block1_1_1
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 3.001
+          inner_radius: 0.0
+          mult: 0.9226919412612915
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 3.001
+          inner_radius: 0.0
+          mult: 0.0773080587387085
+      - name: block1_1_2
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 3.001
+          inner_radius: 0.0
+          mult: 1.0
+      - name: block1_1_3
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 3.001
+          inner_radius: 0.0
+          mult: 1.0
+      - name: block1_1_4
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 3.001
+          inner_radius: 0.0
+          mult: 1.0
+      - name: block1_1_5
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 3.001
+          inner_radius: 0.0
+          mult: 0.9271114468574524
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 3.001
+          inner_radius: 0.0
+          mult: 0.07288855314254761
+    height:
+      - 3.5
+      - 3.5
+      - 3.5
+      - 3.5
+      - 3.5
+    axial mesh points:
+      - 5
+      - 5
+      - 5
+      - 5
+      - 5
     radial mesh points: 2
     azimuthal mesh points: 7
     material modifications:
       U235_wt_frac:
-      - 0.9371
-      - 0.9371
-      - 0.9371
-      - 0.9371
-      - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
       ZR_wt_frac:
-      - 0.0
-      - 0.0
-      - 0.0
-      - 0.0
-      - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
     xs types:
-    - A
-    - A
-    - A
-    - A
-    - A
+      - A
+      - A
+      - A
+      - A
+      - A
   assembly2_1:
     specifier: assembly2_1
     blocks:
-    - name: block2_1_1
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 6.002
-        inner_radius: 3.001
-        mult: 0.5954532027244568
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 6.002
-        inner_radius: 3.001
-        mult: 0.4045467972755432
-    - name: block2_1_2
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 6.002
-        inner_radius: 3.001
-        mult: 1.0
-    - name: block2_1_3
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 6.002
-        inner_radius: 3.001
-        mult: 1.0
-    - name: block2_1_4
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 6.002
-        inner_radius: 3.001
-        mult: 1.0
-    - name: block2_1_5
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 6.002
-        inner_radius: 3.001
-        mult: 0.5924441814422607
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 6.002
-        inner_radius: 3.001
-        mult: 0.40755581855773926
+      - name: block2_1_1
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 6.002
+          inner_radius: 3.001
+          mult: 0.5954532027244568
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 6.002
+          inner_radius: 3.001
+          mult: 0.4045467972755432
+      - name: block2_1_2
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 6.002
+          inner_radius: 3.001
+          mult: 1.0
+      - name: block2_1_3
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 6.002
+          inner_radius: 3.001
+          mult: 1.0
+      - name: block2_1_4
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 6.002
+          inner_radius: 3.001
+          mult: 1.0
+      - name: block2_1_5
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 6.002
+          inner_radius: 3.001
+          mult: 0.5924441814422607
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 6.002
+          inner_radius: 3.001
+          mult: 0.40755581855773926
     height:
-    - 3.5
-    - 3.5
-    - 3.5
-    - 3.5
-    - 3.5
+      - 3.5
+      - 3.5
+      - 3.5
+      - 3.5
+      - 3.5
     axial mesh points:
-    - 5
-    - 5
-    - 5
-    - 5
-    - 5
+      - 5
+      - 5
+      - 5
+      - 5
+      - 5
     radial mesh points: 2
     azimuthal mesh points: 7
     material modifications:
       U235_wt_frac:
-      - 0.9371
-      - 0.9371
-      - 0.9371
-      - 0.9371
-      - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
       ZR_wt_frac:
-      - 0.0
-      - 0.0
-      - 0.0
-      - 0.0
-      - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
     xs types:
-    - A
-    - A
-    - A
-    - A
-    - A
+      - A
+      - A
+      - A
+      - A
+      - A
   assembly3_1:
     specifier: assembly3_1
     blocks:
-    - name: block3_1_1
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.046154800802469254
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.9538451991975307
-    - name: block3_1_2
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.6035306453704834
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.3964693546295166
-    - name: block3_1_3
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.8756284713745117
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.12437152862548828
-    - name: block3_1_4
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.5993080139160156
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.4006919860839844
-    - name: block3_1_5
-      Godiva:
-        shape: RadialSegment
-        material: UZr
-        Tinput: 26.85
-        Thot: 26.85
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.04680449143052101
-      compliment:
-        shape: RadialSegment
-        material: Air
-        Tinput: 0.0
-        Thot: 0.0
-        outer_theta: 0.7853981633974483
-        height: 3.5
-        inner_theta: 0.0
-        outer_radius: 9.0
-        inner_radius: 6.002
-        mult: 0.953195508569479
+      - name: block3_1_1
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.046154800802469254
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.9538451991975307
+      - name: block3_1_2
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.6035306453704834
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.3964693546295166
+      - name: block3_1_3
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.8756284713745117
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.12437152862548828
+      - name: block3_1_4
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.5993080139160156
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.4006919860839844
+      - name: block3_1_5
+        Godiva:
+          shape: RadialSegment
+          material: UZr
+          Tinput: 26.85
+          Thot: 26.85
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.04680449143052101
+        compliment:
+          shape: RadialSegment
+          material: Air
+          Tinput: 0.0
+          Thot: 0.0
+          outer_theta: 0.7853981633974483
+          height: 3.5
+          inner_theta: 0.0
+          outer_radius: 9.0
+          inner_radius: 6.002
+          mult: 0.953195508569479
     height:
-    - 3.5
-    - 3.5
-    - 3.5
-    - 3.5
-    - 3.5
+      - 3.5
+      - 3.5
+      - 3.5
+      - 3.5
+      - 3.5
     axial mesh points:
-    - 5
-    - 5
-    - 5
-    - 5
-    - 5
+      - 5
+      - 5
+      - 5
+      - 5
+      - 5
     radial mesh points: 2
     azimuthal mesh points: 7
     material modifications:
       U235_wt_frac:
-      - 0.9371
-      - 0.9371
-      - 0.9371
-      - 0.9371
-      - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
+        - 0.9371
       ZR_wt_frac:
-      - 0.0
-      - 0.0
-      - 0.0
-      - 0.0
-      - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
+        - 0.0
     xs types:
-    - A
-    - A
-    - A
-    - A
-    - A
+      - A
+      - A
+      - A
+      - A
+      - A
 systems:
   core:
     grid name: core
@@ -458,20 +458,20 @@ grids:
     lattice map:
     grid bounds:
       r:
-      - 0.0
-      - 3.001
-      - 6.002
-      - 9.0
+        - 0.0
+        - 3.001
+        - 6.002
+        - 9.0
       theta:
-      - 0.0
-      - 0.7853981633974483
+        - 0.0
+        - 0.7853981633974483
       z:
-      - -8.75
-      - -5.25
-      - -1.7500000000000002
-      - 1.7500000000000002
-      - 5.25
-      - 8.75
+        - -8.75
+        - -5.25
+        - -1.7500000000000002
+        - 1.7500000000000002
+        - 5.25
+        - 8.75
     symmetry: eighth periodic
     grid contents:
       ? - 0
diff --git a/armi/tests/ThRZSettings.yaml b/armi/tests/ThRZSettings.yaml
index 8586ee1b..bcec8026 100644
--- a/armi/tests/ThRZSettings.yaml
+++ b/armi/tests/ThRZSettings.yaml
@@ -3,7 +3,7 @@ metadata:
 settings:
   branchVerbosity: info
   burnSteps: 0
-  comment: 'Revised benchmark  '
+  comment: "Revised benchmark  "
   db: false
   economics: false
   genXS: Neutron
diff --git a/armi/tests/ThRZloading.yaml b/armi/tests/ThRZloading.yaml
index 7da85bc9..665a5d34 100644
--- a/armi/tests/ThRZloading.yaml
+++ b/armi/tests/ThRZloading.yaml
@@ -1,124 +1,146 @@
 custom isotopics: {}
 blocks:
-    fuel: &block_fuel
-        bond:
-            shape: Circle
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            id: fuel.od
-            mult: fuel.mult
-            od: clad.id
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 470.0
-            Thot: 470.0
-            id: 1.0
-            mult: fuel.mult
-            od: 1.09
-        coolant: &component_fuel_coolant
-            shape: UnshapedComponent
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            area: 66.0
-        duct: &component_fuel_duct
-            shape: Hexagon
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            ip: 16.0
-            mult: 1.0
-            op: 16.6
-        fuel:
-            shape: Circle
-            material: UZr
-            Tinput: 600.0
-            Thot: 600.0
-            id: 0.0
-            mult: 169.0
-            od: 0.87
-        intercoolant: &component_fuel_intercoolant
-            shape: Hexagon
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            ip: duct.op
-            mult: 1.0
-            op: 16.75
-        wire:
-            shape: Helix
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            axialPitch: 30.
-            helixDiameter: 1.2
-            id: 0.0
-            mult: fuel.mult
-            od: 0.1
-    reflector: &block_reflector
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 470.0
-            Thot: 470.0
-            id: 1.0
-            mult: reflector.mult
-            od: 1.09
-        coolant: *component_fuel_coolant
-        duct: *component_fuel_duct
-        intercoolant: *component_fuel_intercoolant
-        reflector:
-            shape: Circle
-            material: HT9
-            Tinput: 600.0
-            Thot: 600.0
-            id: 0.0
-            mult: 169.0
-            od: 1.0
-        wire:
-            shape: Helix
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            axialPitch: 30.
-            helixDiameter: 1.2
-            id: 0.0
-            mult: reflector.mult
-            od: 0.1
-assemblies:
-    heights: &standard_heights [10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0]
-    axial mesh points: &standard_axial_mesh_points [1, 1, 1, 1, 1, 1, 1, 1, 1]
+  fuel: &block_fuel
+    bond:
+      shape: Circle
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      id: fuel.od
+      mult: fuel.mult
+      od: clad.id
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 470.0
+      Thot: 470.0
+      id: 1.0
+      mult: fuel.mult
+      od: 1.09
+    coolant: &component_fuel_coolant
+      shape: UnshapedComponent
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      area: 66.0
+    duct: &component_fuel_duct
+      shape: Hexagon
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      ip: 16.0
+      mult: 1.0
+      op: 16.6
     fuel:
-        specifier: IC
-        blocks: &fuel_blocks [*block_reflector, *block_fuel, *block_fuel, *block_fuel, *block_fuel, *block_fuel, *block_fuel, *block_fuel, *block_reflector]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        radial mesh points: 4
-        azimuthal mesh points: 4
-        material modifications:
-            U235_wt_frac: ['', 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, '']
-            ZR_wt_frac: &fuel_zr_wt_frac ['', 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, '']
-        xs types: &fuel_xs_types [A, A, A, A, A, A, A, A, A]
-    blanket fuel:
-        specifier: MC
-        blocks: *fuel_blocks
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        radial mesh points: 4
-        azimuthal mesh points: 4
-        material modifications:
-            U235_wt_frac: ['', 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, '']
-            ZR_wt_frac: *fuel_zr_wt_frac
-        xs types: *fuel_xs_types
+      shape: Circle
+      material: UZr
+      Tinput: 600.0
+      Thot: 600.0
+      id: 0.0
+      mult: 169.0
+      od: 0.87
+    intercoolant: &component_fuel_intercoolant
+      shape: Hexagon
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      ip: duct.op
+      mult: 1.0
+      op: 16.75
+    wire:
+      shape: Helix
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      axialPitch: 30.
+      helixDiameter: 1.2
+      id: 0.0
+      mult: fuel.mult
+      od: 0.1
+  reflector: &block_reflector
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 470.0
+      Thot: 470.0
+      id: 1.0
+      mult: reflector.mult
+      od: 1.09
+    coolant: *component_fuel_coolant
+    duct: *component_fuel_duct
+    intercoolant: *component_fuel_intercoolant
     reflector:
-        specifier: RR
-        blocks: [*block_reflector, *block_reflector, *block_reflector, *block_reflector, *block_reflector, *block_reflector, *block_reflector, *block_reflector, *block_reflector]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        radial mesh points: 4
-        azimuthal mesh points: 4
-        xs types: *fuel_xs_types
-
-
+      shape: Circle
+      material: HT9
+      Tinput: 600.0
+      Thot: 600.0
+      id: 0.0
+      mult: 169.0
+      od: 1.0
+    wire:
+      shape: Helix
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      axialPitch: 30.
+      helixDiameter: 1.2
+      id: 0.0
+      mult: reflector.mult
+      od: 0.1
+assemblies:
+  heights:
+    &standard_heights [10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0]
+  axial mesh points: &standard_axial_mesh_points [1, 1, 1, 1, 1, 1, 1, 1, 1]
+  fuel:
+    specifier: IC
+    blocks:
+      &fuel_blocks [
+        *block_reflector,
+        *block_fuel,
+        *block_fuel,
+        *block_fuel,
+        *block_fuel,
+        *block_fuel,
+        *block_fuel,
+        *block_fuel,
+        *block_reflector,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    radial mesh points: 4
+    azimuthal mesh points: 4
+    material modifications:
+      U235_wt_frac: ["", 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, ""]
+      ZR_wt_frac:
+        &fuel_zr_wt_frac ["", 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, ""]
+    xs types: &fuel_xs_types [A, A, A, A, A, A, A, A, A]
+  blanket fuel:
+    specifier: MC
+    blocks: *fuel_blocks
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    radial mesh points: 4
+    azimuthal mesh points: 4
+    material modifications:
+      U235_wt_frac: ["", 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, ""]
+      ZR_wt_frac: *fuel_zr_wt_frac
+    xs types: *fuel_xs_types
+  reflector:
+    specifier: RR
+    blocks:
+      [
+        *block_reflector,
+        *block_reflector,
+        *block_reflector,
+        *block_reflector,
+        *block_reflector,
+        *block_reflector,
+        *block_reflector,
+        *block_reflector,
+        *block_reflector,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    radial mesh points: 4
+    azimuthal mesh points: 4
+    xs types: *fuel_xs_types
diff --git a/armi/tests/armiRun.yaml b/armi/tests/armiRun.yaml
index f28bef69..33a86082 100644
--- a/armi/tests/armiRun.yaml
+++ b/armi/tests/armiRun.yaml
@@ -66,7 +66,7 @@ settings:
   smallRun: true
   summarizeAssemDesign: false
   targetK: 1.002
-  transientForSensitivity: ''
+  transientForSensitivity: ""
   verbosity: extra
   versions:
     armi: uncontrolled
diff --git a/armi/tests/detailedAxialExpansion/refSmallReactorBase.yaml b/armi/tests/detailedAxialExpansion/refSmallReactorBase.yaml
index 623b8b8b..65fb02d8 100644
--- a/armi/tests/detailedAxialExpansion/refSmallReactorBase.yaml
+++ b/armi/tests/detailedAxialExpansion/refSmallReactorBase.yaml
@@ -41,7 +41,7 @@ blocks:
             ip: grid.op
             mult: 1.0
             op: 16.75
-    
+
     duct: &block_duct
         coolant: *component_coolant
         duct: &component_duct
@@ -61,7 +61,7 @@ blocks:
             mult: 1.0
             op: 16.75
 
-    SodiumBlock : &block_dummy
+    SodiumBlock: &block_dummy
         flags: dummy
         coolant:
             shape: Hexagon
@@ -109,11 +109,11 @@ blocks:
             id: 0.0
             mult: shield.mult
             od: 0.10056
-        coolant: *component_coolant      
+        coolant: *component_coolant
         duct: *component_duct
         intercoolant: *component_intercoolant
 
-    fuel: &block_fuel    
+    fuel: &block_fuel
         fuel: &component_fuel_fuel
             shape: Circle
             material: UZr
@@ -151,7 +151,7 @@ blocks:
         coolant: *component_coolant
         duct: *component_duct
         intercoolant: *component_intercoolant
-    
+
     plenum: &block_plenum
         gap: &component_plenum_gap
             shape: Circle
@@ -182,8 +182,8 @@ blocks:
         coolant: *component_coolant
         duct: *component_duct
         intercoolant: *component_intercoolant
-    
-    aclp plenum : &block_aclp
+
+    aclp plenum: &block_aclp
         gap: *component_plenum_gap
         clad: *component_plenum_clad
         wire: *component_plenum_wire
@@ -232,18 +232,18 @@ blocks:
         coolant: *component_coolant
         duct: *component_duct
         intercoolant: *component_intercoolant
-    
+
     lta fuel a: &block_lta1_fuel
         fuel: *component_fuel_fuel
         bond: *component_fuel_bond
         liner2: *component_fuel2_liner2
         liner1: *component_fuel2_liner1
-        clad: *component_fuel_clad        
+        clad: *component_fuel_clad
         wire: *component_fuel_wire
         coolant: *component_coolant
         duct: *component_duct
         intercoolant: *component_intercoolant
-    
+
     lta fuel b: &block_lta2_fuel
         fuel:
             shape: Circle
@@ -257,12 +257,12 @@ blocks:
         bond: *component_fuel_bond
         liner2: *component_fuel2_liner2
         liner1: *component_fuel2_liner1
-        clad: *component_fuel_clad        
+        clad: *component_fuel_clad
         wire: *component_fuel_wire
         coolant: *component_coolant
         duct: *component_duct
         intercoolant: *component_intercoolant
-    
+
     annular fuel gap: &block_fuel3
         gap1:
             shape: Circle
@@ -333,7 +333,7 @@ blocks:
         coolant: *component_coolant
         duct: *component_duct
         intercoolant: *component_intercoolant
-    
+
     ## ------------------------------------------------------------------------------------
     ## control
     moveable duct: &block_ctrl_duct
@@ -389,7 +389,7 @@ blocks:
             helixDiameter: 1.771
             id: 0.0
             mult: clad.mult
-            od: 0.085 
+            od: 0.085
         innerDuct: &component_control_innerDuct
             shape: Hexagon
             material: HT9
@@ -401,7 +401,7 @@ blocks:
         duct: *component_control_duct
         coolant: *component_coolant
         intercoolant: *component_control_intercoolant
-    
+
     moveable plenum: &block_control_plenum
         gap: *component_control_gap
         clad: *component_control_clad
@@ -495,7 +495,7 @@ assemblies:
         xs types: *igniter_fuel_xs_types
     lead test fuel:
         specifier: LA
-        blocks: [*block_grid_plate, *block_fuel_axial_shield, *block_lta1_fuel, *block_lta1_fuel, *block_lta1_fuel, *block_plenum,  *block_aclp, *block_plenum, *block_duct, *block_dummy]
+        blocks: [*block_grid_plate, *block_fuel_axial_shield, *block_lta1_fuel, *block_lta1_fuel, *block_lta1_fuel, *block_plenum, *block_aclp, *block_plenum, *block_duct, *block_dummy]
         height: *highOffset_height
         axial mesh points: *standard_axial_mesh_points
         material modifications:
diff --git a/armi/tests/refSmallCartesian.yaml b/armi/tests/refSmallCartesian.yaml
index 18066c5b..fae2134e 100644
--- a/armi/tests/refSmallCartesian.yaml
+++ b/armi/tests/refSmallCartesian.yaml
@@ -1,309 +1,337 @@
 custom isotopics:
-    MOX:
-        input format: number densities
-        AM241: 2.3606e-05
-        PU238: 3.7387e-06
-        PU239: 0.00286038
-        PU240: 0.000712945
-        PU241: 9.82312e-05
-        PU242: 2.02221e-05
-        U235: 0.00405533
-        U238: 0.0134125
+  MOX:
+    input format: number densities
+    AM241: 2.3606e-05
+    PU238: 3.7387e-06
+    PU239: 0.00286038
+    PU240: 0.000712945
+    PU241: 9.82312e-05
+    PU242: 2.02221e-05
+    U235: 0.00405533
+    U238: 0.0134125
 blocks:
-    fuel: &block_fuel
-        fuel:
-            shape: Circle
-            material: UZr
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.0
-            mult: 64.0
-            od: 0.7
-        clad: &component_fuel_clad
-            shape: Circle
-            material: HT9
-            Tinput: 25.0
-            Thot: 470.0
-            id: 1.0
-            mult: fuel.mult
-            od: 1.15
-        bond: &component_fuel_bond
-            shape: Circle
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            id: fuel.od
-            mult: fuel.mult
-            od: clad.id
-        wire: &component_fuel_wire
-            shape: Helix
-            material: HT9
-            Tinput: 25.0
-            Thot: 450.0
-            axialPitch: 30.15
-            helixDiameter: 1.2
-            id: 0.0
-            mult: fuel.mult
-            od: 0.100
-        coolant: &component_fuel_coolant
-            shape: DerivedShape
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-        duct: &component_fuel_duct
-            shape: Rectangle
-            material: HT9
-            Tinput: 25.0
-            Thot: 450.0
-            lengthInner: 9.0
-            lengthOuter: 9.5
-            mult: 1.0
-            widthInner: 9.0
-            widthOuter: 9.5
-        intercoolant: &component_fuel_intercoolant
-            shape: Rectangle
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            lengthInner: 9.5
-            lengthOuter: 10.0
-            mult: 1.0
-            widthInner: 9.5
-            widthOuter: 10.0
-    control: &block_control
-        control:
-            shape: Circle
-            material: B4C
-            Tinput: 600.0
-            Thot: 600.0
-            id: 0.0
-            mult: 25.0
-            od: 1.3
-        innerduct:
-            shape: Rectangle
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            lengthInner: 8.0
-            lengthOuter: 8.5
-            mult: 1.0
-            widthInner: 8.0
-            widthOuter: 8.5
-        duct:
-            shape: Rectangle
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            lengthInner: 8.7
-            lengthOuter: 9.0
-            mult: 1.0
-            widthInner: 8.7
-            widthOuter: 9.0
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            id: 1.35
-            mult: control.mult
-            od: 1.7
-        wire:
-            shape: Helix
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            axialPitch: 50.0
-            helixDiameter: 1.7
-            id: 0.0
-            mult: control.mult
-            od: 0.085
-        intercoolant: *component_fuel_intercoolant
-        gap:
-            shape: Circle
-            material: Void
-            Tinput: 450.0
-            Thot: 450.0
-            id: control.od
-            mult: control.mult
-            od: clad.id
-        coolant: *component_fuel_coolant
-    duct: &block_duct
-        duct: &component_duct_duct
-            shape: Rectangle
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            lengthInner: 9.0
-            lengthOuter: 9.5
-            mult: 1.0
-            widthInner: 9.0
-            widthOuter: 9.5
-        coolant: *component_fuel_coolant
-        intercoolant: *component_fuel_intercoolant
-    grid plate: &block_grid_plate
-        grid:
-            shape: Rectangle
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            lengthInner: 0.0
-            lengthOuter: 9.5
-            mult: 1.0
-            widthInner: 0.0
-            widthOuter: 9.5
-        coolant: *component_fuel_coolant
-        intercoolant: *component_fuel_intercoolant
-    axial shield: &block_axial_shield
-        shield:
-            shape: Circle
-            material: HT9
-            Tinput: 600.0
-            Thot: 600.0
-            id: 0.0
-            mult: 64.0
-            od: 0.90
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            id: 0.905
-            mult: shield.mult
-            od: 1.050
-        gap:
-            shape: Circle
-            material: Void
-            Tinput: 450.0
-            Thot: 450.0
-            id: shield.od
-            mult: shield.mult
-            od: clad.id
-        duct: *component_duct_duct
-        intercoolant: *component_fuel_intercoolant
-        coolant: *component_fuel_coolant
-        wire:
-            shape: Helix
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            axialPitch: 30.15
-            helixDiameter: 10.10
-            id: 0.0
-            mult: shield.mult
-            od: 0.100
-    plenum: &block_plenum
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 25.0
-            Thot: 470.0
-            id: 1.0
-            mult: 64.0
-            od: 1.09
-        gap:
-            shape: Circle
-            material: Void
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.0
-            mult: clad.mult
-            od: clad.id
-        wire:
-            shape: Helix
-            material: HT9
-            Tinput: 25.0
-            Thot: 450.0
-            axialPitch: 30.
-            helixDiameter: 1.2
-            id: 0.0
-            mult: clad.mult
-            od: 0.1
-        coolant: *component_fuel_coolant
-        duct: *component_fuel_duct
-        intercoolant: *component_fuel_intercoolant
-    fuel2: &block_fuel2
-        fuel:
-            shape: Circle
-            material: Custom
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.0
-            isotopics: MOX
-            mult: 64.0
-            od: 0.87
-        clad: *component_fuel_clad
-        bond: *component_fuel_bond
-        wire: *component_fuel_wire
-        coolant: *component_fuel_coolant
-        duct: *component_fuel_duct
-        intercoolant: *component_fuel_intercoolant
+  fuel: &block_fuel
+    fuel:
+      shape: Circle
+      material: UZr
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.0
+      mult: 64.0
+      od: 0.7
+    clad: &component_fuel_clad
+      shape: Circle
+      material: HT9
+      Tinput: 25.0
+      Thot: 470.0
+      id: 1.0
+      mult: fuel.mult
+      od: 1.15
+    bond: &component_fuel_bond
+      shape: Circle
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      id: fuel.od
+      mult: fuel.mult
+      od: clad.id
+    wire: &component_fuel_wire
+      shape: Helix
+      material: HT9
+      Tinput: 25.0
+      Thot: 450.0
+      axialPitch: 30.15
+      helixDiameter: 1.2
+      id: 0.0
+      mult: fuel.mult
+      od: 0.100
+    coolant: &component_fuel_coolant
+      shape: DerivedShape
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+    duct: &component_fuel_duct
+      shape: Rectangle
+      material: HT9
+      Tinput: 25.0
+      Thot: 450.0
+      lengthInner: 9.0
+      lengthOuter: 9.5
+      mult: 1.0
+      widthInner: 9.0
+      widthOuter: 9.5
+    intercoolant: &component_fuel_intercoolant
+      shape: Rectangle
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      lengthInner: 9.5
+      lengthOuter: 10.0
+      mult: 1.0
+      widthInner: 9.5
+      widthOuter: 10.0
+  control: &block_control
+    control:
+      shape: Circle
+      material: B4C
+      Tinput: 600.0
+      Thot: 600.0
+      id: 0.0
+      mult: 25.0
+      od: 1.3
+    innerduct:
+      shape: Rectangle
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      lengthInner: 8.0
+      lengthOuter: 8.5
+      mult: 1.0
+      widthInner: 8.0
+      widthOuter: 8.5
+    duct:
+      shape: Rectangle
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      lengthInner: 8.7
+      lengthOuter: 9.0
+      mult: 1.0
+      widthInner: 8.7
+      widthOuter: 9.0
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      id: 1.35
+      mult: control.mult
+      od: 1.7
+    wire:
+      shape: Helix
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      axialPitch: 50.0
+      helixDiameter: 1.7
+      id: 0.0
+      mult: control.mult
+      od: 0.085
+    intercoolant: *component_fuel_intercoolant
+    gap:
+      shape: Circle
+      material: Void
+      Tinput: 450.0
+      Thot: 450.0
+      id: control.od
+      mult: control.mult
+      od: clad.id
+    coolant: *component_fuel_coolant
+  duct: &block_duct
+    duct: &component_duct_duct
+      shape: Rectangle
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      lengthInner: 9.0
+      lengthOuter: 9.5
+      mult: 1.0
+      widthInner: 9.0
+      widthOuter: 9.5
+    coolant: *component_fuel_coolant
+    intercoolant: *component_fuel_intercoolant
+  grid plate: &block_grid_plate
+    grid:
+      shape: Rectangle
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      lengthInner: 0.0
+      lengthOuter: 9.5
+      mult: 1.0
+      widthInner: 0.0
+      widthOuter: 9.5
+    coolant: *component_fuel_coolant
+    intercoolant: *component_fuel_intercoolant
+  axial shield: &block_axial_shield
+    shield:
+      shape: Circle
+      material: HT9
+      Tinput: 600.0
+      Thot: 600.0
+      id: 0.0
+      mult: 64.0
+      od: 0.90
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      id: 0.905
+      mult: shield.mult
+      od: 1.050
+    gap:
+      shape: Circle
+      material: Void
+      Tinput: 450.0
+      Thot: 450.0
+      id: shield.od
+      mult: shield.mult
+      od: clad.id
+    duct: *component_duct_duct
+    intercoolant: *component_fuel_intercoolant
+    coolant: *component_fuel_coolant
+    wire:
+      shape: Helix
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      axialPitch: 30.15
+      helixDiameter: 10.10
+      id: 0.0
+      mult: shield.mult
+      od: 0.100
+  plenum: &block_plenum
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 25.0
+      Thot: 470.0
+      id: 1.0
+      mult: 64.0
+      od: 1.09
+    gap:
+      shape: Circle
+      material: Void
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.0
+      mult: clad.mult
+      od: clad.id
+    wire:
+      shape: Helix
+      material: HT9
+      Tinput: 25.0
+      Thot: 450.0
+      axialPitch: 30.
+      helixDiameter: 1.2
+      id: 0.0
+      mult: clad.mult
+      od: 0.1
+    coolant: *component_fuel_coolant
+    duct: *component_fuel_duct
+    intercoolant: *component_fuel_intercoolant
+  fuel2: &block_fuel2
+    fuel:
+      shape: Circle
+      material: Custom
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.0
+      isotopics: MOX
+      mult: 64.0
+      od: 0.87
+    clad: *component_fuel_clad
+    bond: *component_fuel_bond
+    wire: *component_fuel_wire
+    coolant: *component_fuel_coolant
+    duct: *component_fuel_duct
+    intercoolant: *component_fuel_intercoolant
 assemblies:
-    heights: &standard_heights [25.0, 25.0, 25.0, 25.0, 75.0]
-    axial mesh points: &standard_axial_mesh_points [1, 1, 1, 1, 4]
-    igniter fuel:
-        specifier: IC
-        blocks: &igniter_fuel_blocks [*block_grid_plate, *block_fuel, *block_fuel, *block_fuel, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        hotChannelFactors: TWRPclad
-        material modifications:
-            U235_wt_frac: &igniter_fuel_u235_wt_frac ['', 0.11, 0.11, 0.11, '']
-            ZR_wt_frac: &igniter_fuel_zr_wt_frac ['', 0.06, 0.06, 0.06, '']
-        xs types: &igniter_fuel_xs_types [A, A, A, A, A]
-    middle fuel:
-        specifier: MC
-        blocks: [*block_grid_plate, *block_fuel2, *block_fuel2, *block_fuel2, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: *igniter_fuel_xs_types
-    feed fuel:
-        specifier: OC
-        blocks: *igniter_fuel_blocks
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        material modifications:
-            U235_wt_frac: *igniter_fuel_u235_wt_frac
-            ZR_wt_frac: *igniter_fuel_zr_wt_frac
-        xs types: *igniter_fuel_xs_types
-    primary control:
-        specifier: PC
-        blocks: [*block_grid_plate, *block_duct, *block_duct, *block_control, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: *igniter_fuel_xs_types
-    radial shield:
-        specifier: SH
-        blocks: [*block_grid_plate, *block_axial_shield, *block_axial_shield, *block_axial_shield, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: *igniter_fuel_xs_types
+  heights: &standard_heights [25.0, 25.0, 25.0, 25.0, 75.0]
+  axial mesh points: &standard_axial_mesh_points [1, 1, 1, 1, 4]
+  igniter fuel:
+    specifier: IC
+    blocks:
+      &igniter_fuel_blocks [
+        *block_grid_plate,
+        *block_fuel,
+        *block_fuel,
+        *block_fuel,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    hotChannelFactors: TWRPclad
+    material modifications:
+      U235_wt_frac: &igniter_fuel_u235_wt_frac ["", 0.11, 0.11, 0.11, ""]
+      ZR_wt_frac: &igniter_fuel_zr_wt_frac ["", 0.06, 0.06, 0.06, ""]
+    xs types: &igniter_fuel_xs_types [A, A, A, A, A]
+  middle fuel:
+    specifier: MC
+    blocks:
+      [
+        *block_grid_plate,
+        *block_fuel2,
+        *block_fuel2,
+        *block_fuel2,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: *igniter_fuel_xs_types
+  feed fuel:
+    specifier: OC
+    blocks: *igniter_fuel_blocks
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    material modifications:
+      U235_wt_frac: *igniter_fuel_u235_wt_frac
+      ZR_wt_frac: *igniter_fuel_zr_wt_frac
+    xs types: *igniter_fuel_xs_types
+  primary control:
+    specifier: PC
+    blocks:
+      [
+        *block_grid_plate,
+        *block_duct,
+        *block_duct,
+        *block_control,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: *igniter_fuel_xs_types
+  radial shield:
+    specifier: SH
+    blocks:
+      [
+        *block_grid_plate,
+        *block_axial_shield,
+        *block_axial_shield,
+        *block_axial_shield,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: *igniter_fuel_xs_types
 
 systems:
-    core:
-        grid name: core
-        origin:
-            x: 0.0
-            y: 0.0
-            z: 0.0
+  core:
+    grid name: core
+    origin:
+      x: 0.0
+      y: 0.0
+      z: 0.0
 
 grids:
-    core:
-        geom: cartesian
-        symmetry: full
-        lattice pitch:
-            x: 10.0
-            y: 10.0
-        lattice map: |
-              SH SH SH SH SH SH SH SH SH SH SH SH SH
-              SH OC OC OC OC OC OC OC OC OC OC OC SH
-              SH OC MC MC MC MC MC MC MC MC MC OC SH
-              SH OC MC IC IC IC IC IC IC IC MC OC SH
-              SH OC MC IC IC IC IC IC IC IC MC OC SH
-              SH OC MC IC IC IC IC IC IC IC MC OC SH
-              SH OC MC IC IC IC IC IC IC IC MC OC SH
-              SH OC MC IC IC IC IC IC IC IC MC OC SH
-              SH OC MC IC IC IC IC IC IC IC MC OC SH
-              SH OC MC IC IC IC IC IC IC IC MC OC SH
-              SH OC MC MC MC MC MC MC MC MC MC OC SH
-              SH OC OC OC OC OC OC OC OC OC OC OC SH
-              SH SH SH SH SH SH SH SH SH SH SH SH SH
\ No newline at end of file
+  core:
+    geom: cartesian
+    symmetry: full
+    lattice pitch:
+      x: 10.0
+      y: 10.0
+    lattice map: |
+      SH SH SH SH SH SH SH SH SH SH SH SH SH
+      SH OC OC OC OC OC OC OC OC OC OC OC SH
+      SH OC MC MC MC MC MC MC MC MC MC OC SH
+      SH OC MC IC IC IC IC IC IC IC MC OC SH
+      SH OC MC IC IC IC IC IC IC IC MC OC SH
+      SH OC MC IC IC IC IC IC IC IC MC OC SH
+      SH OC MC IC IC IC IC IC IC IC MC OC SH
+      SH OC MC IC IC IC IC IC IC IC MC OC SH
+      SH OC MC IC IC IC IC IC IC IC MC OC SH
+      SH OC MC IC IC IC IC IC IC IC MC OC SH
+      SH OC MC MC MC MC MC MC MC MC MC OC SH
+      SH OC OC OC OC OC OC OC OC OC OC OC SH
+      SH SH SH SH SH SH SH SH SH SH SH SH SH
diff --git a/armi/tests/refSmallReactorBase.yaml b/armi/tests/refSmallReactorBase.yaml
index 3eea57d0..14ad2e06 100644
--- a/armi/tests/refSmallReactorBase.yaml
+++ b/armi/tests/refSmallReactorBase.yaml
@@ -1,435 +1,483 @@
 custom isotopics:
-    MOX:
-        input format: number densities
-        AM241: 2.3606e-05
-        PU238: 3.7387e-06
-        PU239: 0.00286038
-        PU240: 0.000712945
-        PU241: 9.82312e-05
-        PU242: 2.02221e-05
-        U235: 0.00405533
-        U238: 0.0134125
-    PuUZr:
-        input format: mass fractions
-        PU239: 0.1
-        U235: 0.15
-        U238: 0.65
-        ZR: 0.1
+  MOX:
+    input format: number densities
+    AM241: 2.3606e-05
+    PU238: 3.7387e-06
+    PU239: 0.00286038
+    PU240: 0.000712945
+    PU241: 9.82312e-05
+    PU242: 2.02221e-05
+    U235: 0.00405533
+    U238: 0.0134125
+  PuUZr:
+    input format: mass fractions
+    PU239: 0.1
+    U235: 0.15
+    U238: 0.65
+    ZR: 0.1
 blocks:
-    fuel: &block_fuel
-        fuel: &component_fuel_fuel
-            shape: Circle
-            material: UZr
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.0
-            mult: 169.0
-            od: 0.86602
-        clad: &component_fuel_clad
-            shape: Circle
-            material: HT9
-            Tinput: 25.0
-            Thot: 470.0
-            id: 1.0
-            mult: fuel.mult
-            od: 1.09
-        bond: &component_fuel_bond
-            shape: Circle
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            id: fuel.od
-            mult: fuel.mult
-            od: clad.id
-        wire: &component_fuel_wire
-            shape: Helix
-            material: HT9
-            Tinput: 25.0
-            Thot: 450.0
-            axialPitch: 30.15
-            helixDiameter: 1.19056
-            id: 0.0
-            mult: fuel.mult
-            od: 0.10056
-        coolant: &component_fuel_coolant
-            shape: DerivedShape
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-        duct: &component_fuel_duct
-            shape: Hexagon
-            material: HT9
-            Tinput: 25.0
-            Thot: 450.0
-            ip: 16.0
-            mult: 1.0
-            op: 16.6
-        intercoolant: &component_fuel_intercoolant
-            shape: Hexagon
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            ip: duct.op
-            mult: 1.0
-            op: 16.75
-    moveable control: &block_control
-        control:
-            shape: Circle
-            material: B4C
-            Tinput: 600.0
-            Thot: 600.0
-            id: 0.0
-            mult: 61.0
-            od: 1.286
-        innerDuct:
-            shape: Hexagon
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            ip: 14.268
-            mult: 1.0
-            op: 14.582
-        duct: &component_control_duct
-            shape: Hexagon
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            ip: 15.277
-            mult: 1.0
-            op: 16.28228
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            id: 1.358
-            mult: control.mult
-            od: 1.686
-        wire:
-            shape: Helix
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            axialPitch: 50.0
-            helixDiameter: 1.771
-            id: 0.0
-            mult: control.mult
-            od: 0.085
-        intercoolant: *component_fuel_intercoolant
-        gap:
-            shape: Circle
-            material: Void
-            Tinput: 450.0
-            Thot: 450.0
-            id: control.od
-            mult: control.mult
-            od: clad.id
-        coolant: *component_fuel_coolant
-    duct: &block_duct
-        duct: *component_control_duct
-        coolant: *component_fuel_coolant
-        intercoolant: *component_fuel_intercoolant
-    grid plate: &block_grid_plate
-        grid: &component_grid_plate_grid
-            shape: Hexagon
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            ip: 15.277
-            mult: 1.0
-            op: 16.577
-        coolant: *component_fuel_coolant
-        intercoolant:
-            shape: Hexagon
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            ip: grid.op
-            mult: 1.0
-            op: 16.75
-    grid plate broken:
-        grid: *component_grid_plate_grid
-        coolant: *component_fuel_coolant
-        intercoolant:
-            shape: Hexagon
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            ip: grid.op
-            mult: 1.0
-            op: 0.0
-    axial shield: &block_axial_shield
-        shield:
-            shape: Circle
-            material: HT9
-            Tinput: 600.0
-            Thot: 600.0
-            id: 0.0
-            mult: 169.0
-            od: 0.90362
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            id: 0.90562
-            mult: shield.mult
-            od: 1.05036
-        gap:
-            shape: Circle
-            material: Void
-            Tinput: 450.0
-            Thot: 450.0
-            id: shield.od
-            mult: shield.mult
-            od: clad.id
-        duct: *component_control_duct
-        intercoolant: *component_fuel_intercoolant
-        coolant: *component_fuel_coolant
-        wire:
-            shape: Helix
-            material: HT9
-            Tinput: 450.0
-            Thot: 450.0
-            axialPitch: 30.15
-            helixDiameter: 16.85056
-            id: 0.0
-            mult: shield.mult
-            od: 0.10056
-    moveable plenum: &block_plenum
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 25.0
-            Thot: 470.0
-            id: 1.0
-            mult: 169.0
-            od: 1.09
-        gap:
-            shape: Circle
-            material: Void
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.0
-            mult: clad.mult
-            od: clad.id
-        wire:
-            shape: Helix
-            material: HT9
-            Tinput: 25.0
-            Thot: 450.0
-            axialPitch: 30.15
-            helixDiameter: 1.19056
-            id: 0.0
-            mult: clad.mult
-            od: 0.10056
-        coolant: *component_fuel_coolant
-        duct: *component_fuel_duct
-        intercoolant: *component_fuel_intercoolant
-    fuel2: &block_fuel2
-        fuel:
-            shape: Circle
-            material: Custom
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.0
-            isotopics: MOX
-            mult: 169.0
-            od: 0.86602
-        bond: &component_fuel_bond2
-            shape: Circle
-            material: Sodium
-            Tinput: 450.0
-            Thot: 450.0
-            id: fuel.od
-            mult: fuel.mult
-            od: liner1.id
-        clad: *component_fuel_clad
-        liner1: &component_fuel2_liner1
-            shape: Circle
-            material: HT9
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.99
-            mergeWith: clad
-            mult: 169.0
-            od: 1.0
-        liner2: &component_fuel2_liner2
-            shape: Circle
-            material: HT9
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.98
-            mergeWith: clad
-            mult: 169.0
-            od: 0.99
-        wire: *component_fuel_wire
-        coolant: *component_fuel_coolant
-        duct: *component_fuel_duct
-        intercoolant: *component_fuel_intercoolant
-    lta1 fuel: &block_lta1_fuel
-        fuel: *component_fuel_fuel
-        clad: *component_fuel_clad
-        liner1: *component_fuel2_liner1
-        liner2: *component_fuel2_liner2
-        bond: *component_fuel_bond
-        wire: *component_fuel_wire
-        coolant: *component_fuel_coolant
-        duct: *component_fuel_duct
-        intercoolant: *component_fuel_intercoolant
-    lta2 fuel: &block_lta2_fuel
-        fuel:
-            shape: Circle
-            material: UZr
-            Tinput: 25.0
-            Thot: 600.0
-            id: 0.0
-            isotopics: PuUZr
-            mult: 169.0
-            od: 0.86602
-        clad: *component_fuel_clad
-        liner1: *component_fuel2_liner1
-        liner2: *component_fuel2_liner2
-        bond: *component_fuel_bond
-        wire: *component_fuel_wire
-        coolant: *component_fuel_coolant
-        duct: *component_fuel_duct
-        intercoolant: *component_fuel_intercoolant
-    annular fuel gap: &block_fuel3
-        gap1:
-            shape: Circle
-            material: Void
-            Tinput: 20.0
-            Thot: 430.0
-            id: 0.0
-            mult: fuel.mult
-            od: fuel.id
-        fuel:
-            shape: Circle
-            material: UZr
-            Tinput: 20.0
-            Thot: 600.0
-            id: 0.600
-            mult: 169.0
-            od: 0.878
-            flags: annular fuel depletable
-        gap2:
-            shape: Circle
-            material: Void
-            Tinput: 20.0
-            Thot: 430.0
-            id: fuel.od
-            mult: fuel.mult
-            od: inner liner.id
-        inner liner:
-            shape: Circle
-            material: HT9
-            Tinput: 20.0
-            Thot: 430.0
-            id: 0.878
-            mult: fuel.mult
-            od: 0.898
-        gap3:
-            shape: Circle
-            material: Void
-            Tinput: 20.0
-            Thot: 430.0
-            id: inner liner.od
-            mult: fuel.mult
-            od: outer liner.id
-        outer liner:
-            shape: Circle
-            material: Zr
-            Tinput: 20.0
-            Thot: 430.0
-            id: 0.898
-            mult: fuel.mult
-            od: 0.900
-        gap4:
-            shape: Circle
-            material: Void
-            Tinput: 20.0
-            Thot: 430.0
-            id: outer liner.od
-            mult: fuel.mult
-            od: clad.id
-        clad:
-            shape: Circle
-            material: HT9
-            Tinput: 20.0
-            Thot: 430.0
-            id: 0.900
-            mult: fuel.mult
-            od: 1.000
-        wire: *component_fuel_wire
-        coolant: *component_fuel_coolant
-        duct: *component_fuel_duct
-        intercoolant: *component_fuel_intercoolant
+  fuel: &block_fuel
+    fuel: &component_fuel_fuel
+      shape: Circle
+      material: UZr
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.0
+      mult: 169.0
+      od: 0.86602
+    clad: &component_fuel_clad
+      shape: Circle
+      material: HT9
+      Tinput: 25.0
+      Thot: 470.0
+      id: 1.0
+      mult: fuel.mult
+      od: 1.09
+    bond: &component_fuel_bond
+      shape: Circle
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      id: fuel.od
+      mult: fuel.mult
+      od: clad.id
+    wire: &component_fuel_wire
+      shape: Helix
+      material: HT9
+      Tinput: 25.0
+      Thot: 450.0
+      axialPitch: 30.15
+      helixDiameter: 1.19056
+      id: 0.0
+      mult: fuel.mult
+      od: 0.10056
+    coolant: &component_fuel_coolant
+      shape: DerivedShape
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+    duct: &component_fuel_duct
+      shape: Hexagon
+      material: HT9
+      Tinput: 25.0
+      Thot: 450.0
+      ip: 16.0
+      mult: 1.0
+      op: 16.6
+    intercoolant: &component_fuel_intercoolant
+      shape: Hexagon
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      ip: duct.op
+      mult: 1.0
+      op: 16.75
+  moveable control: &block_control
+    control:
+      shape: Circle
+      material: B4C
+      Tinput: 600.0
+      Thot: 600.0
+      id: 0.0
+      mult: 61.0
+      od: 1.286
+    innerDuct:
+      shape: Hexagon
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      ip: 14.268
+      mult: 1.0
+      op: 14.582
+    duct: &component_control_duct
+      shape: Hexagon
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      ip: 15.277
+      mult: 1.0
+      op: 16.28228
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      id: 1.358
+      mult: control.mult
+      od: 1.686
+    wire:
+      shape: Helix
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      axialPitch: 50.0
+      helixDiameter: 1.771
+      id: 0.0
+      mult: control.mult
+      od: 0.085
+    intercoolant: *component_fuel_intercoolant
+    gap:
+      shape: Circle
+      material: Void
+      Tinput: 450.0
+      Thot: 450.0
+      id: control.od
+      mult: control.mult
+      od: clad.id
+    coolant: *component_fuel_coolant
+  duct: &block_duct
+    duct: *component_control_duct
+    coolant: *component_fuel_coolant
+    intercoolant: *component_fuel_intercoolant
+  grid plate: &block_grid_plate
+    grid: &component_grid_plate_grid
+      shape: Hexagon
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      ip: 15.277
+      mult: 1.0
+      op: 16.577
+    coolant: *component_fuel_coolant
+    intercoolant:
+      shape: Hexagon
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      ip: grid.op
+      mult: 1.0
+      op: 16.75
+  grid plate broken:
+    grid: *component_grid_plate_grid
+    coolant: *component_fuel_coolant
+    intercoolant:
+      shape: Hexagon
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      ip: grid.op
+      mult: 1.0
+      op: 0.0
+  axial shield: &block_axial_shield
+    shield:
+      shape: Circle
+      material: HT9
+      Tinput: 600.0
+      Thot: 600.0
+      id: 0.0
+      mult: 169.0
+      od: 0.90362
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      id: 0.90562
+      mult: shield.mult
+      od: 1.05036
+    gap:
+      shape: Circle
+      material: Void
+      Tinput: 450.0
+      Thot: 450.0
+      id: shield.od
+      mult: shield.mult
+      od: clad.id
+    duct: *component_control_duct
+    intercoolant: *component_fuel_intercoolant
+    coolant: *component_fuel_coolant
+    wire:
+      shape: Helix
+      material: HT9
+      Tinput: 450.0
+      Thot: 450.0
+      axialPitch: 30.15
+      helixDiameter: 16.85056
+      id: 0.0
+      mult: shield.mult
+      od: 0.10056
+  moveable plenum: &block_plenum
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 25.0
+      Thot: 470.0
+      id: 1.0
+      mult: 169.0
+      od: 1.09
+    gap:
+      shape: Circle
+      material: Void
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.0
+      mult: clad.mult
+      od: clad.id
+    wire:
+      shape: Helix
+      material: HT9
+      Tinput: 25.0
+      Thot: 450.0
+      axialPitch: 30.15
+      helixDiameter: 1.19056
+      id: 0.0
+      mult: clad.mult
+      od: 0.10056
+    coolant: *component_fuel_coolant
+    duct: *component_fuel_duct
+    intercoolant: *component_fuel_intercoolant
+  fuel2: &block_fuel2
+    fuel:
+      shape: Circle
+      material: Custom
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.0
+      isotopics: MOX
+      mult: 169.0
+      od: 0.86602
+    bond: &component_fuel_bond2
+      shape: Circle
+      material: Sodium
+      Tinput: 450.0
+      Thot: 450.0
+      id: fuel.od
+      mult: fuel.mult
+      od: liner1.id
+    clad: *component_fuel_clad
+    liner1: &component_fuel2_liner1
+      shape: Circle
+      material: HT9
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.99
+      mergeWith: clad
+      mult: 169.0
+      od: 1.0
+    liner2: &component_fuel2_liner2
+      shape: Circle
+      material: HT9
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.98
+      mergeWith: clad
+      mult: 169.0
+      od: 0.99
+    wire: *component_fuel_wire
+    coolant: *component_fuel_coolant
+    duct: *component_fuel_duct
+    intercoolant: *component_fuel_intercoolant
+  lta1 fuel: &block_lta1_fuel
+    fuel: *component_fuel_fuel
+    clad: *component_fuel_clad
+    liner1: *component_fuel2_liner1
+    liner2: *component_fuel2_liner2
+    bond: *component_fuel_bond
+    wire: *component_fuel_wire
+    coolant: *component_fuel_coolant
+    duct: *component_fuel_duct
+    intercoolant: *component_fuel_intercoolant
+  lta2 fuel: &block_lta2_fuel
+    fuel:
+      shape: Circle
+      material: UZr
+      Tinput: 25.0
+      Thot: 600.0
+      id: 0.0
+      isotopics: PuUZr
+      mult: 169.0
+      od: 0.86602
+    clad: *component_fuel_clad
+    liner1: *component_fuel2_liner1
+    liner2: *component_fuel2_liner2
+    bond: *component_fuel_bond
+    wire: *component_fuel_wire
+    coolant: *component_fuel_coolant
+    duct: *component_fuel_duct
+    intercoolant: *component_fuel_intercoolant
+  annular fuel gap: &block_fuel3
+    gap1:
+      shape: Circle
+      material: Void
+      Tinput: 20.0
+      Thot: 430.0
+      id: 0.0
+      mult: fuel.mult
+      od: fuel.id
+    fuel:
+      shape: Circle
+      material: UZr
+      Tinput: 20.0
+      Thot: 600.0
+      id: 0.600
+      mult: 169.0
+      od: 0.878
+      flags: annular fuel depletable
+    gap2:
+      shape: Circle
+      material: Void
+      Tinput: 20.0
+      Thot: 430.0
+      id: fuel.od
+      mult: fuel.mult
+      od: inner liner.id
+    inner liner:
+      shape: Circle
+      material: HT9
+      Tinput: 20.0
+      Thot: 430.0
+      id: 0.878
+      mult: fuel.mult
+      od: 0.898
+    gap3:
+      shape: Circle
+      material: Void
+      Tinput: 20.0
+      Thot: 430.0
+      id: inner liner.od
+      mult: fuel.mult
+      od: outer liner.id
+    outer liner:
+      shape: Circle
+      material: Zr
+      Tinput: 20.0
+      Thot: 430.0
+      id: 0.898
+      mult: fuel.mult
+      od: 0.900
+    gap4:
+      shape: Circle
+      material: Void
+      Tinput: 20.0
+      Thot: 430.0
+      id: outer liner.od
+      mult: fuel.mult
+      od: clad.id
+    clad:
+      shape: Circle
+      material: HT9
+      Tinput: 20.0
+      Thot: 430.0
+      id: 0.900
+      mult: fuel.mult
+      od: 1.000
+    wire: *component_fuel_wire
+    coolant: *component_fuel_coolant
+    duct: *component_fuel_duct
+    intercoolant: *component_fuel_intercoolant
 assemblies:
-    heights: &standard_heights [25.0, 25.0, 25.0, 25.0, 75.0]
-    axial mesh points: &standard_axial_mesh_points [1, 1, 1, 1, 4]
-    igniter fuel:
-        specifier: IC
-        blocks: &igniter_fuel_blocks [*block_grid_plate, *block_fuel, *block_fuel, *block_fuel, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        material modifications:
-            U235_wt_frac: &igniter_fuel_u235_wt_frac ['', 0.11, 0.11, 0.11, '']
-            ZR_wt_frac: &igniter_fuel_zr_wt_frac ['', 0.06, 0.06, 0.06, '']
-        xs types: &igniter_fuel_xs_types [A, A, A, A, A]
-        nozzleType: Inner
-    middle fuel:
-        specifier: MC
-        blocks: [*block_grid_plate, *block_fuel2, *block_fuel2, *block_fuel2, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: &middle_fuel_xs_types [Z, Z, Z, Z, Z]
-    annular fuel:
-        specifier: AF
-        blocks: [*block_grid_plate, *block_fuel3, *block_fuel3, *block_fuel3, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: *igniter_fuel_xs_types
-    lta fuel:
-        specifier: LA
-        blocks: [*block_grid_plate, *block_lta1_fuel, *block_lta1_fuel, *block_lta1_fuel, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        material modifications:
-            U235_wt_frac: &lta_fuel_u235_wt_frac ['', 0.2, 0.2, 0.2, '']
-            ZR_wt_frac: &lta_fuel_zr_wt_frac ['', 0.07, 0.07, 0.06, '']
-        xs types: *igniter_fuel_xs_types
-        nozzleType: lta
-    lta fuel b:
-        specifier: LB
-        blocks: [*block_grid_plate, *block_lta2_fuel, *block_lta2_fuel, *block_lta2_fuel, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        material modifications:
-            U235_wt_frac: *lta_fuel_u235_wt_frac
-            ZR_wt_frac: *lta_fuel_zr_wt_frac
-        xs types: *igniter_fuel_xs_types
-        nozzleType: lta
-    feed fuel:
-        specifier: OC
-        blocks: *igniter_fuel_blocks
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        material modifications:
-            U235_wt_frac: *igniter_fuel_u235_wt_frac
-            ZR_wt_frac: *igniter_fuel_zr_wt_frac
-        xs types: *igniter_fuel_xs_types
-        nozzleType: Outer
-    primary control:
-        specifier: PC
-        blocks: [*block_grid_plate, *block_duct, *block_control, *block_plenum, *block_duct]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: *igniter_fuel_xs_types
-    radial shield:
-        specifier: SH
-        blocks: [*block_grid_plate, *block_axial_shield, *block_axial_shield, *block_axial_shield, *block_plenum]
-        height: *standard_heights
-        axial mesh points: *standard_axial_mesh_points
-        xs types: *igniter_fuel_xs_types
-
+  heights: &standard_heights [25.0, 25.0, 25.0, 25.0, 75.0]
+  axial mesh points: &standard_axial_mesh_points [1, 1, 1, 1, 4]
+  igniter fuel:
+    specifier: IC
+    blocks:
+      &igniter_fuel_blocks [
+        *block_grid_plate,
+        *block_fuel,
+        *block_fuel,
+        *block_fuel,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    material modifications:
+      U235_wt_frac: &igniter_fuel_u235_wt_frac ["", 0.11, 0.11, 0.11, ""]
+      ZR_wt_frac: &igniter_fuel_zr_wt_frac ["", 0.06, 0.06, 0.06, ""]
+    xs types: &igniter_fuel_xs_types [A, A, A, A, A]
+    nozzleType: Inner
+  middle fuel:
+    specifier: MC
+    blocks:
+      [
+        *block_grid_plate,
+        *block_fuel2,
+        *block_fuel2,
+        *block_fuel2,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: &middle_fuel_xs_types [Z, Z, Z, Z, Z]
+  annular fuel:
+    specifier: AF
+    blocks:
+      [
+        *block_grid_plate,
+        *block_fuel3,
+        *block_fuel3,
+        *block_fuel3,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: *igniter_fuel_xs_types
+  lta fuel:
+    specifier: LA
+    blocks:
+      [
+        *block_grid_plate,
+        *block_lta1_fuel,
+        *block_lta1_fuel,
+        *block_lta1_fuel,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    material modifications:
+      U235_wt_frac: &lta_fuel_u235_wt_frac ["", 0.2, 0.2, 0.2, ""]
+      ZR_wt_frac: &lta_fuel_zr_wt_frac ["", 0.07, 0.07, 0.06, ""]
+    xs types: *igniter_fuel_xs_types
+    nozzleType: lta
+  lta fuel b:
+    specifier: LB
+    blocks:
+      [
+        *block_grid_plate,
+        *block_lta2_fuel,
+        *block_lta2_fuel,
+        *block_lta2_fuel,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    material modifications:
+      U235_wt_frac: *lta_fuel_u235_wt_frac
+      ZR_wt_frac: *lta_fuel_zr_wt_frac
+    xs types: *igniter_fuel_xs_types
+    nozzleType: lta
+  feed fuel:
+    specifier: OC
+    blocks: *igniter_fuel_blocks
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    material modifications:
+      U235_wt_frac: *igniter_fuel_u235_wt_frac
+      ZR_wt_frac: *igniter_fuel_zr_wt_frac
+    xs types: *igniter_fuel_xs_types
+    nozzleType: Outer
+  primary control:
+    specifier: PC
+    blocks:
+      [
+        *block_grid_plate,
+        *block_duct,
+        *block_control,
+        *block_plenum,
+        *block_duct,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: *igniter_fuel_xs_types
+  radial shield:
+    specifier: SH
+    blocks:
+      [
+        *block_grid_plate,
+        *block_axial_shield,
+        *block_axial_shield,
+        *block_axial_shield,
+        *block_plenum,
+      ]
+    height: *standard_heights
+    axial mesh points: *standard_axial_mesh_points
+    xs types: *igniter_fuel_xs_types
diff --git a/armi/tests/refSmallSfpGrid.yaml b/armi/tests/refSmallSfpGrid.yaml
index bcefb6c7..9fa8c350 100644
--- a/armi/tests/refSmallSfpGrid.yaml
+++ b/armi/tests/refSmallSfpGrid.yaml
@@ -1,11 +1,11 @@
 sfp:
-    symmetry: full
-    geom: cartesian
-    lattice pitch:
-        x: 50.0
-        y: 50.0
-    grid contents:
-        [0,0]: MC
-        [1,0]: MC
-        [0,1]: MC
-        [1,1]: MC
+  symmetry: full
+  geom: cartesian
+  lattice pitch:
+    x: 50.0
+    y: 50.0
+  grid contents:
+    [0, 0]: MC
+    [1, 0]: MC
+    [0, 1]: MC
+    [1, 1]: MC
diff --git a/armi/tests/refTestCartesian.yaml b/armi/tests/refTestCartesian.yaml
index ef865625..999b467b 100644
--- a/armi/tests/refTestCartesian.yaml
+++ b/armi/tests/refTestCartesian.yaml
@@ -27,6 +27,6 @@ settings:
   power: 400000000.0
   summarizeAssemDesign: false
   targetK: 1.002
-  transientForSensitivity: ''
+  transientForSensitivity: ""
   versions:
     armi: uncontrolled
diff --git a/armi/tests/smallestTestReactor/refOneBlockReactor.yaml b/armi/tests/smallestTestReactor/refOneBlockReactor.yaml
index e5fa2ea3..762f6537 100644
--- a/armi/tests/smallestTestReactor/refOneBlockReactor.yaml
+++ b/armi/tests/smallestTestReactor/refOneBlockReactor.yaml
@@ -57,14 +57,13 @@ blocks:
             op: 16.8
 assemblies:
     heights: &standard_heights [25.0]
-    axial mesh points: &standard_axial_mesh_points [ 1]
+    axial mesh points: &standard_axial_mesh_points [1]
     igniter fuel:
         specifier: IC
-        blocks: &igniter_fuel_blocks [ *block_fuel]
+        blocks: &igniter_fuel_blocks [*block_fuel]
         height: *standard_heights
         axial mesh points: *standard_axial_mesh_points
         material modifications:
-            U235_wt_frac: &igniter_fuel_u235_wt_frac [ 0.11]
+            U235_wt_frac: &igniter_fuel_u235_wt_frac [0.11]
             ZR_wt_frac: &igniter_fuel_zr_wt_frac [0.06]
         xs types: &igniter_fuel_xs_types [A]
-    
diff --git a/armi/tests/tutorials/anl-afci-177-blueprints.yaml b/armi/tests/tutorials/anl-afci-177-blueprints.yaml
index 7ba1f077..23d77ebd 100644
--- a/armi/tests/tutorials/anl-afci-177-blueprints.yaml
+++ b/armi/tests/tutorials/anl-afci-177-blueprints.yaml
@@ -9,7 +9,7 @@ blocks:
             Tinput: 25.0
             Thot: 450.0
             id: 0.6962
-            od:  0.808
+            od: 0.808
             mult: 271
 # end-block-clad
         wire:
@@ -167,7 +167,7 @@ blocks:
             Tinput: 25.0
             Thot: 450.0
             id: 0.6962
-            od:  0.808
+            od: 0.808
             mult: 271
         wire:
             shape: Helix
@@ -308,38 +308,37 @@ assemblies:
         blocks: [*block_reflector]
         height: [307.74]
         axial mesh points: [1]
-        xs types:  [A]
+        xs types: [A]
 # end-assemblies-rr
     radial shield:
         specifier: SH
         blocks: [*block_shield]
         height: [307.74]
         axial mesh points: [1]
-        xs types:  [A]
+        xs types: [A]
 # end-assemblies-sh
     control:
         specifier: PC
         blocks: [*block_control]
         height: [307.74]
         axial mesh points: [1]
-        xs types:  [A]
+        xs types: [A]
     ultimate shutdown:
         specifier: US
         blocks: [*block_control]
         height: [307.74]
         axial mesh points: [1]
-        xs types:  [A]
+        xs types: [A]
 # end-assemblies-section
 systems:
     core:
-      grid name: core
-      origin:
-          x: 0.0
-          y: 0.0
-          z: 0.0
+        grid name: core
+        origin:
+            x: 0.0
+            y: 0.0
+            z: 0.0
 grids:
     core:
         !include anl-afci-177-coreMap.yaml
 
 # end-systems-section
-
diff --git a/armi/tests/tutorials/anl-afci-177.yaml b/armi/tests/tutorials/anl-afci-177.yaml
index 3fdc5efc..02f8c512 100644
--- a/armi/tests/tutorials/anl-afci-177.yaml
+++ b/armi/tests/tutorials/anl-afci-177.yaml
@@ -1,5 +1,5 @@
 # This file is part of the walthrough_inputs tutorial in ARMI, which
-# uses .. literalinclude to bring in sections of this file. Thus, 
+# uses .. literalinclude to bring in sections of this file. Thus,
 # the comments and order are important. These will get wiped out
 # if you load and re-write a settings file via the ARMI gui, unfortunately.
 # begin-settings
diff --git a/armi/tests/tutorials/c5g7-blueprints.yaml b/armi/tests/tutorials/c5g7-blueprints.yaml
index 1673ef58..a037c4b8 100644
--- a/armi/tests/tutorials/c5g7-blueprints.yaml
+++ b/armi/tests/tutorials/c5g7-blueprints.yaml
@@ -124,7 +124,7 @@ blocks:
             isotopics: moderator
             Tinput: 450.0
             Thot: 450.0
-        # Moderator within the guide tube    
+        # Moderator within the guide tube
         inner moderator guide tube: &guide_tube_moderator
             shape: Circle
             material: SaturatedWater
@@ -178,9 +178,9 @@ blocks:
             widthInner: 21.42
             widthOuter: 21.42
             mult: 1.0
-            latticeIDs: [FC] 
-            # latticeIDs is needed to ensure that the center of the bounding 
-            # Component shares the same center/origin as the rest of the 
+            latticeIDs: [FC]
+            # latticeIDs is needed to ensure that the center of the bounding
+            # Component shares the same center/origin as the rest of the
             # components in the block. See #332."
 # end-block-uo2
     mox: &block_mox
@@ -263,7 +263,7 @@ assemblies:
             - *block_mod
         height: *heights
         axial mesh points: *mesh
-        xs types: [A,A,A,A]
+        xs types: [A, A, A, A]
     mox:
         flags: fuel
         specifier: MOX
@@ -274,7 +274,7 @@ assemblies:
             - *block_mod
         height: *heights
         axial mesh points: *mesh
-        xs types: [A,A,A,A]
+        xs types: [A, A, A, A]
     mod:
         specifier: MOD
         blocks:
@@ -284,16 +284,16 @@ assemblies:
             - *block_mod
         height: *heights
         axial mesh points: *mesh
-        xs types: [A,A,A,A]
+        xs types: [A, A, A, A]
 # end-assemblies
 systems:
     core:
-      grid name: core
+        grid name: core
 
-      origin:
-          x: 0.0
-          y: 0.0
-          z: 0.0
+        origin:
+            x: 0.0
+            y: 0.0
+            z: 0.0
 # end-systems
 grids:
     core:
@@ -359,7 +359,7 @@ grids:
 # end-grid-MOX
 nuclide flags:
     H: {burn: false, xs: true}
-    O: 
+    O:
         burn: false
         xs: true
         expandTo: ["O16", "O17"] # O18 is not in many nuclear data sets.