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
~RZThetaReactorMeshConverter.converterSettings (dict) – This is a dictionary of settings that are used for the RZThetaReactorMeshConverter. Required converter settings:
uniformThetaMesh
,``thetaBins``
See also
RZThetaReactorMeshConverterByRingCompositionAxialBins
,RZThetaReactorMeshConverterByRingCompositionAxialCoordinates
- 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.
See also
_RZThetaReactorMeshConverterByRingComposition
,_RZThetaReactorMeshConverterByAxialBins
- 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.
See also
_RZThetaReactorMeshConverterByRingComposition
,_RZThetaReactorMeshConverterByAxialCoordinates
- 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: Optional[Union[armi.utils.flags.Flag, armi.utils.flags.auto, Sequence[Union[armi.utils.flags.Flag, armi.utils.flags.auto]]]] = 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.