armi.reactor.converters.meshConverters module¶
Mesh specifiers update the mesh structure of a reactor by increasing or decreasing the number of mesh coordinates.
-
class
armi.reactor.converters.meshConverters.
MeshConverter
(converterSettings: dict)[source]¶ Bases:
object
Base class for the reactor mesh conversions.
- Parameters
converterSettings (dict) – A set of str, value settings used in mesh conversion. Required settings are implementation specific.
-
class
armi.reactor.converters.meshConverters.
RZThetaReactorMeshConverter
(converterSettings)[source]¶ Bases:
armi.reactor.converters.meshConverters.MeshConverter
Handles mesh conversions for r-z-theta reactor geometries.
- Variables
converterSettings (dict) – This is a dictionary of settings that are used for the RZThetaReactorMeshConverter. Required converter settings:
uniformThetaMesh
,``thetaBins``
See also
RZThetaReactorMeshConverterByRingCompositionAxialBins
,RZThetaReactorMeshConverterByRingCompositionAxialCoordinates
-
writeMeshData
()[source]¶ Write a summary table of the radial, axial, and theta bins that will be used for geometry conversion.
Notes
This should be on the
ThetaRZGrid
object.
-
class
armi.reactor.converters.meshConverters.
_RZThetaReactorMeshConverterByAxialCoordinates
(converterSettings)[source]¶ Bases:
armi.reactor.converters.meshConverters.RZThetaReactorMeshConverter
Generate an axial mesh based on user provided axial mesh coordinates.
-
class
armi.reactor.converters.meshConverters.
_RZThetaReactorMeshConverterByAxialBins
(converterSettings)[source]¶ Bases:
armi.reactor.converters.meshConverters.RZThetaReactorMeshConverter
Generate an axial mesh based on user provided axial bins.
Notes
The new mesh structure is formed by merging multiply “bins” together (i.e. numPerBin = 2 and the original mesh is [1, 2, 3, 4, 5, 6, 7, 8], the new mesh structure will be [2, 4, 6, 8]).
-
class
armi.reactor.converters.meshConverters.
_RZThetaReactorMeshConverterByRingComposition
(cs)[source]¶ Bases:
armi.reactor.converters.meshConverters.RZThetaReactorMeshConverter
Generate a new mesh based on the radial compositions in the core.
-
setRingsToConvert
(core)[source]¶ Set up the reactor’s new radial rings based on the ring compositions (assembly types).
-
_getCompositionTypesPerRing
(core)[source]¶ Set composition of each ring in the reactor by the assembly type.
-
-
class
armi.reactor.converters.meshConverters.
RZThetaReactorMeshConverterByRingCompositionAxialBins
(cs)[source]¶ Bases:
armi.reactor.converters.meshConverters._RZThetaReactorMeshConverterByRingComposition
,armi.reactor.converters.meshConverters._RZThetaReactorMeshConverterByAxialBins
Generate a new mesh based on the radial compositions and axial bins in the core.
-
class
armi.reactor.converters.meshConverters.
RZThetaReactorMeshConverterByRingCompositionAxialCoordinates
(cs)[source]¶ Bases:
armi.reactor.converters.meshConverters._RZThetaReactorMeshConverterByRingComposition
,armi.reactor.converters.meshConverters._RZThetaReactorMeshConverterByAxialCoordinates
Generate a new mesh based on the radial compositions and axial coordinates in the core.
-
armi.reactor.converters.meshConverters.
checkLastValueInList
(inputList, listName, expectedValue, eps=0.001, adjustLastValue=False)[source]¶ Check that the last value in the list is equal to the expected value within +/- eps
-
armi.reactor.converters.meshConverters.
checkListBounds
(inputList, listName, minVal, maxVal, eps=0.001)[source]¶ Ensure that each value in a list does not exceed the allowable bounds
-
armi.reactor.converters.meshConverters.
generateBins
(totalNumDataPoints, numPerBin, minNum)[source]¶ Fill in a list based on the total number of data points and the number of data points per bin
-
class
armi.reactor.converters.meshConverters.
AxialExpansionModifier
(percent, fuelLockedToClad=False, cs=None)[source]¶ Bases:
armi.reactor.converters.meshConverters.MeshConverter
Axially expand or contract a reactor.
Useful for fuel performance, thermal expansion, reactivity coefficients, etc.
Build an axial expansion converter.
- Parameters
percent (float) – the desired axial expansion in percent. If negative, use special treatment of down-expanding
fuelLockedToClad (bool) – Specify whether or not to conserve mass on structure due to the fuel being locked to the clad. Note: this should generally be set to False even if the fuel is locked to the clad because the duct will not be axially expanding.
-
convert
(r=None, converterSettings=None)[source]¶ Perform an axial expansion of the core.
Notes
This loops through the fuel blocks, making their height larger by a fraction of maxPercent. It reduces the homogenized actinide number densities to conserve atoms.
This is a first approximation, adjusting the whole core uniformly and adjusting fuel with structure and everything.
When fuel is locked to clad, this only expands the actinides! So the structural materials and sodium stay as they are in terms of density. By growing the mesh, we are introducing NEW ATOMS of these guys, thus violating conservation of atoms. However, the new ones are effectively piled up on top of the reactor where they are neutronically uninteresting. This approximates fuel movement without clad/duct movement.
-
armi.reactor.converters.meshConverters.
getAxialExpansionNuclideAdjustList
(r, componentFlags: Union[armi.utils.flags.Flag, armi.utils.flags.auto, Sequence[Union[armi.utils.flags.Flag, armi.utils.flags.auto]], None] = None)[source]¶ Determine which nuclides should have their mass conserved during axial expansion
- Parameters
r (Reactor) – The Reactor object to search for nuclide instances
componentFlags (TypeSpec, optional) – A type specification to use for filtering components that should conserve mass. If None, Flags.FUEL is used.