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
- 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
- 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.
- 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.