armi.reactor.components package
Components package contains components and shapes.
These objects hold the dimensions, temperatures, composition, and shape of reactor primitives.
Class inheritance diagram for
armi.reactor.components.
- armi.reactor.components.factory(shape, bcomps, kwargs)[source]
Build a new component object.
- Parameters:
- class armi.reactor.components.NullComponent(name, material, Tinput, Thot, area=None, isotopics='', mergeWith='', components=None)[source]
Bases:
ComponentReturns zero for all dimensions.
- DIMENSION_NAMES = ()
- INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'isotopics', 'mergeWith', 'components')
- paramCollectionType
alias of
ComponentParameterCollection
- class armi.reactor.components.UnshapedComponent(name, material, Tinput, Thot, area=nan, modArea=None, isotopics=None, mergeWith=None, components=None)[source]
Bases:
ComponentA component with undefined dimensions.
Useful for situations where you just want to enter the area directly.
For instance, when you want to model neutronic behavior of an assembly based on only knowing the area fractions of each material in the assembly.
See also
DerivedShapeUseful to just fill leftover space in a block with a material
- pDefs = <armi.reactor.parameters.parameterDefinitions.ParameterDefinitionCollection object>
- getBoundingCircleOuterDiameter(Tc=None, cold=False)[source]
Approximate it as circular and return the radius.
This is the smallest it can possibly be. Since this is used to determine the outer component, it will never be allowed to be the outer one.
- Parameters:
Notes
Tc is not used in this method for this particular component.
- getCircleInnerDiameter(Tc=None, cold=False)[source]
Component is unshaped; assume it is circular and there is no ID (return 0.0).
- static fromComponent(otherComponent)[source]
Build a new UnshapedComponent that has area equal to that of another component.
This can be used to “freeze” a DerivedShape, among other things.
Notes
Components created in this manner will not thermally expand beyond the expanded area of the original component, but will retain their hot temperature.
- DIMENSION_NAMES = ('modArea',)
- INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'modArea', 'isotopics', 'mergeWith', 'components')
- paramCollectionType
alias of
UnshapedComponentParameterCollection
- class armi.reactor.components.UnshapedVolumetricComponent(name, material, Tinput, Thot, area=nan, op=None, isotopics=None, mergeWith=None, components=None, volume=nan)[source]
Bases:
UnshapedComponentA component with undefined dimensions.
Useful for situations where you just want to enter the volume directly.
- is3D = True
- DIMENSION_NAMES = ('op', 'volume')
- INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'op', 'isotopics', 'mergeWith', 'components', 'volume')
- paramCollectionType
alias of
UnshapedComponentParameterCollection
- class armi.reactor.components.ZeroMassComponent(name, material, Tinput, Thot, area=nan, op=None, isotopics=None, mergeWith=None, components=None, volume=nan)[source]
Bases:
UnshapedVolumetricComponentA component that never has mass – it always returns zero for getMass and getNumberDensity.
Useful for situations where you want to give a block integrated flux, but ensure mass is never added to it
See also
armi.reactor.batch.makeMgFluxBlock- DIMENSION_NAMES = ('op', 'volume')
- INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'op', 'isotopics', 'mergeWith', 'components', 'volume')
- paramCollectionType
alias of
UnshapedComponentParameterCollection
- class armi.reactor.components.PositiveOrNegativeVolumeComponent(name, material, Tinput, Thot, area=nan, op=None, isotopics=None, mergeWith=None, components=None, volume=nan)[source]
Bases:
UnshapedVolumetricComponentA component that may have negative mass for removing mass from batches.
See also
armi.reactor.batch.makeMassAdditionComponent- DIMENSION_NAMES = ('op', 'volume')
- INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'op', 'isotopics', 'mergeWith', 'components', 'volume')
- paramCollectionType
alias of
UnshapedComponentParameterCollection
- class armi.reactor.components.DerivedShape(name, material, Tinput, Thot, area=nan, modArea=None, isotopics=None, mergeWith=None, components=None)[source]
Bases:
UnshapedComponentThis a component that does have specific dimensions, but they’re complicated.
Notes
This component type is “derived” through the addition or subtraction of other shaped components (e.g. Coolant)
Because its area and volume are defined by other components, a DerivedShape’s area and volume may change as the other components thermally expand. However the DerivedShape cannot drive thermal expansion itself, even if it is a solid component with non-zero thermal expansion coefficient
- getBoundingCircleOuterDiameter(Tc=None, cold=False)[source]
The bounding circle for a derived component.
Notes
This is used to sort components relative to one another.
There can only be one derived component per block, this is generally the coolant inside a duct. Under most circumstances, the volume (or area) of coolant will be greater than any other (single) component (i.e. a single pin) within the assembly. So, sorting based on the Dh of the DerivedShape will result in somewhat expected results.
- computeVolume()[source]
Cannot compute volume until it is derived.
Implementation: The volume of a DerivedShape depends on the solid shapes surrounding them. I_ARMI_COMP_FLUID0Computing the volume of a
DerivedShapemeans looking at the solid materials around it, and finding what shaped space is left over in between them. This method calls the method_deriveVolumeAndArea, which makes use of the fact that the ARMI reactor data model is hierarchical. It starts by finding the parent of this object, and then finding the volume of all the other objects at this level. Whatever is left over, is the volume of this object. Obviously, you can only have oneDerivedShapechild of any parent for this logic to work.
- getMaxVolume()[source]
The maximum volume of the parent Block.
- Returns:
vol – volume in cm^3.
- Return type:
- DIMENSION_NAMES = ('modArea',)
- INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'modArea', 'isotopics', 'mergeWith', 'components')
- paramCollectionType
alias of
UnshapedComponentParameterCollection
- getVolume()[source]
Get volume of derived shape.
The DerivedShape must pay attention to all of the companion objects, because if they change, this changes. However it’s inefficient to always recompute the derived volume, so we have to rely on the parent to know if anything has changed.
Since each parent is only allowed one DerivedShape, we can reset the update flag here.
- Returns:
volume of component in cm^3.
- Return type:
Subpackages
Submodules
- armi.reactor.components.basicShapes module
CircleHexagonRectangleRectangle.is3DRectangle.THERMAL_EXPANSION_DIMSRectangle.pDefsRectangle.getBoundingCircleOuterDiameter()Rectangle.getCircleInnerDiameter()Rectangle.getComponentArea()Rectangle.isLatticeComponent()Rectangle.getPitchData()Rectangle.DIMENSION_NAMESRectangle.INIT_SIGNATURERectangle.paramCollectionTypeRectangle.material
SolidRectangleSquareTriangle
- armi.reactor.components.complexShapes module
- armi.reactor.components.component module
ComponentTypeComponentComponent.DIMENSION_NAMESComponent.INIT_SIGNATUREComponent.is3DComponent.THERMAL_EXPANSION_DIMSComponent.pDefsComponent.materialComponent.temperatureInCComponent.temperatureInKComponent.resolveLinkedDims()Component.setLink()Component.setProperties()Component.applyMaterialMassFracsToNumberDensities()Component.adjustDensityForHeightExpansion()Component.getHeightFactor()Component.getProperties()Component.liquidPorosityComponent.gasPorosityComponent.setLumpedFissionProducts()Component.getArea()Component.getVolume()Component.clearCache()Component.computeVolume()Component.containsVoidMaterial()Component.containsSolidMaterial()Component.getComponentArea()Component.getComponentVolume()Component.setVolume()Component.setArea()Component.setTemperature()Component.getNuclides()Component.getNumberDensity()Component.getNuclideNumberDensities()Component.setName()Component.setNumberDensity()Component.setNumberDensities()Component.updateNumberDensities()Component.changeNDensByFactor()Component.getEnrichment()Component.getMassEnrichment()Component.getMass()Component.setDimension()Component.getDimension()Component.getBoundingCircleOuterDiameter()Component.getCircleInnerDiameter()Component.dimensionIsLinked()Component.getDimensionNamesLinkedTo()Component.clearLinkedCache()Component.getLinkedComponents()Component.getThermalExpansionFactor()Component.printContents()Component.setDimensionReport()Component.updateDims()Component.mergeNuclidesInto()Component.iterComponents()Component.backUp()Component.restoreBackup()Component.adjustMassEnrichment()Component.getMgFlux()Component.getIntegratedMgFlux()Component.getPinMgFluxes()Component.getPinIndices()Component.density()Component.getLumpedFissionProductCollection()Component.getMicroSuffix()Component.paramCollectionTypeComponent.getPitchData()Component.getFuelMass()Component.finalizeLoadingFromDB()
ShapedComponent
- armi.reactor.components.componentParameters module
getComponentParameterDefinitions()getCircleParameterDefinitions()getHexagonParameterDefinitions()getHoledHexagonParameterDefinitions()getHexHoledCircleParameterDefinitions()getFilletedHexagonParameterDefinitions()getHoledRectangleParameterDefinitions()getHelixParameterDefinitions()getRectangleParameterDefinitions()getCubeParameterDefinitions()getTriangleParameterDefinitions()getUnshapedParameterDefinitions()getRadialSegmentParameterDefinitions()
- armi.reactor.components.volumetricShapes module
SphereCubeRadialSegmentRadialSegment.is3DRadialSegment.THERMAL_EXPANSION_DIMSRadialSegment.pDefsRadialSegment.getComponentArea()RadialSegment.getComponentVolume()RadialSegment.getBoundingCircleOuterDiameter()RadialSegment.getCircleInnerDiameter()RadialSegment.DIMENSION_NAMESRadialSegment.INIT_SIGNATURERadialSegment.paramCollectionTypeRadialSegment.material
DifferentialRadialSegmentDifferentialRadialSegment.is3DDifferentialRadialSegment.THERMAL_EXPANSION_DIMSDifferentialRadialSegment.updateDims()DifferentialRadialSegment.getComponentArea()DifferentialRadialSegment.getComponentVolume()DifferentialRadialSegment.DIMENSION_NAMESDifferentialRadialSegment.INIT_SIGNATUREDifferentialRadialSegment.paramCollectionTypeDifferentialRadialSegment.material