armi.reactor.converters.tests.test_axialExpansionChanger_MultiPin module

class armi.reactor.converters.tests.test_axialExpansionChanger_MultiPin.StoreMassAndTemp(cType: str, mass: float, HMmass: float, HMmassBOL: float, HMmolesBOL: float, temp: float)[source]

Bases: object

cType: str
mass: float
HMmass: float
HMmassBOL: float
HMmolesBOL: float
temp: float
class armi.reactor.converters.tests.test_axialExpansionChanger_MultiPin.TestMultiPinConservationBase(methodName='runTest')[source]

Bases: AxialExpansionTestBase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

class armi.reactor.converters.tests.test_axialExpansionChanger_MultiPin.TestRedistributeMass(methodName='runTest')[source]

Bases: TestMultiPinConservationBase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

b0: HexBlock
b1: HexBlock
c0: Component
origC0Temp: float
c1: Component
origC1Temp: float
test_getAllNucs()[source]
test_shiftLinkedCompsForDelta()[source]

Ensure that given a deltaZTop, component elevations are adjusted appropriately.

test_redistributeMass_nonTargetExpansion_noThermal()[source]

With no temperature changes anywere, grow c0 by 10% and show that 10% of the c0 mass is moved to c1.

Notes

  • C0 grows resulting in c0 giving 10% of its mass to c1. c1 height does not change so its mass gains 10%.

  • Additional assertions on temperature exist to ensure that the component temperatures are managed correctly during the transfer of mass. For this test, since this is not thermal expansion, we show that the component temperatures do not change.

test_addMassToComponent_nonTargetCompression_noThermal()[source]

With no temperature changes anywere, shrink c0 by 10% and show that 10% of the c1 mass is moved to c0.

Notes

  • C0 shrinks resulting in c1 giving 10% of its mass to c0. c1 height does not change so it’s mass loses 10%.

  • Additional assertions on temperature exist to ensure that the component temperatures are managed correctly during the transfer of mass. For this test, since this is not thermal expansion, we show that the component temperatures do not change.

test_addMassToComponent_nonTargetCompression_yesThermal()[source]

Decrease c0 by 100 deg C and and show that c1 mass is moved to c0.

Notes

  • C0 shrinks resulting in c1 giving X% of its mass to c0. c1 height does not change so its mass loses X%.

  • Additional assertions on temperature exist to ensure that the component temperatures are managed correctly during the transfer of mass. For this test, we show that the temperature of c0 increases and the temperature of c1 does not change. The increase in temperature for c0 is due to the contribution from the hotter c1 component.

test_addMassToComponent_nonTargetExpansion_yesThermal()[source]

Increase c0 by 100 deg C and and show that c0 mass is moved to c1.

Notes

  • C0 expands resulting in c0 giving X% of its mass to c1. c0 height does not change so its mass loses X%.

  • Additional assertions on temperature exist to ensure that the component temperatures are managed correctly during the transfer of mass. For this test, we show that the temperature of c1 increases and the temperature of c0 does not change. The increase in temperature is due to the contribution from the hotter c0 component.

class armi.reactor.converters.tests.test_axialExpansionChanger_MultiPin.TestMultiPinConservation(methodName='runTest')[source]

Bases: TestMultiPinConservationBase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

getTotalCompMassByFlag(a: HexAssembly) dict[Flag | auto | Sequence[Flag | auto] | None, float][source]

Get the total mass of all components in the assembly, except Bond components.

Notes

The axial expansion changer does not consider the expansion or contraction of fluids and therefore their conservation is not guarunteed. The conservation of fluid mass is expected only if each component type on a block has 1) uniform expansion rates and 2) axially isothermal fluid temperatures. For multipin assemblies, the former is generally not met for Bond components; however since there is only one coolant and intercoolant component in general, the conservation of mass for these components expected if axially isothermal fluid temperatures are present.

test_expandThermalBothFuel()[source]

Perform thermal expansion on both fuel and test fuel components.

Notes

  • Each block is scaled by an increasing temperature to simulate a variable axial temperature distribution.

  • The test fuel and fuel components are scaled by different temperatures to simulate each pin design existing at different temperatures.

  • The 150 deg C and 50 deg C based temperature changes are arbitrarily chosen.

test_roundTripThermalBothFuel()[source]

Perform thermal expansion on both fuel and test fuel components and ensure that mass and total assembly height is recovered.

Notes

  • Each block is scaled by an increasing temperature to simulate a variable axial temperature distribution.

  • The test fuel and fuel components are scaled by different temperatures to simulate each pin design existing at different temperatures.

  • The 75 deg C and 50 deg C based temperature changes are arbitrarily chosen.

test_expandThermal()[source]

Perform thermal expansion on the test fuel component.

Notes

  • Each block is scaled by an increasing temperature to simulate a variable axial temperature distribution.

  • The 100 deg C based temperature changes is arbitrarily chosen.

  • An extra assertion in done in this test to ensure that isotopes uniquely found in each test are not dropped when moving mass between blocks. See the tables below for additional information on what is expected.

    Component

    Isotopes Present

    0

    XE131

    1

    I131

    2

    NP237

    3

    CM242

    then after the axial expansion routine, we show that the following exists,

    Component

    Isotopes Present

    0

    XE131

    1

    I131, XE131

    2

    NP237, I131

    3

    CM242, NP237

test_contractThermal()[source]

Perform thermal contraction on the test fuel component.

Notes

  • Each block is scaled by a decreasing temperature to simulate a variable axial temperature distribution.

  • The -100 deg C based temperature changes is arbitrarily chosen.

test_expandPrescribed()[source]

Perform prescribed expansion on the test fuel component.

Notes

  • The factor of 1.2 for component expansion is arbitrarily chosen. Note, if too large of a value is chosen, the upper block heights will go negative and the axial expansion changer will hit a RuntimeError.

test_contractPrescribed()[source]

Perform prescribed contraction on the test fuel component.

Notes

  • The factor of 0.9 for component contraction is arbitrarily chosen.

test_expandAndContractPrescribed()[source]

Perform prescribed expansion and contraction on the test fuel component.

Notes

  • Each block is scaled by a different value to simulate a variable axial expansion profile (e.g., burnup driven axial expansion commonly found in sodium fast reactors).

  • The factor of +/- 0.01 for component expansion/contraction is arbitrarily chosen. Note, if too large of a value is chosen, the upper block heights will go negative and the axial expansion changer will hit a RuntimeError.

checkConservation()[source]

Conservation of axial expansion is measured by ensuring the total assembly mass per component flag and total assembly height is the same post exapansion.

class armi.reactor.converters.tests.test_axialExpansionChanger_MultiPin.TestExceptionForMultiPin(methodName='runTest')[source]

Bases: TestMultiPinConservationBase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

test_failExpansionNegativeComponentHeight()[source]

Show that the negative component height check can be caught.