armi.reactor.components.volumetricShapes module

Three-dimensional shapes.

class armi.reactor.components.volumetricShapes.Sphere(name, material, Tinput, Thot, od=None, id=None, mult=None, modArea=None, isotopics=None, mergeWith=None, components=None)[source]

Bases: ShapedComponent

A spherical component.

is3D = True
THERMAL_EXPANSION_DIMS = {}
pDefs = <armi.reactor.parameters.parameterDefinitions.ParameterDefinitionCollection object>
getBoundingCircleOuterDiameter(Tc=None, cold=False)[source]

Abstract bounding circle method that should be overwritten by each shape subclass.

getComponentArea(cold=False)[source]

Compute an average area over the height.

getComponentVolume(cold=False)[source]

Computes the volume of the sphere in cm^3.

DIMENSION_NAMES = ('od', 'id', 'mult', 'modArea')
INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'od', 'id', 'mult', 'modArea', 'isotopics', 'mergeWith', 'components')
paramCollectionType

alias of SphereParameterCollection

material: Material
class armi.reactor.components.volumetricShapes.Cube(name, material, Tinput, Thot, lengthOuter=None, lengthInner=None, widthOuter=None, widthInner=None, heightOuter=None, heightInner=None, mult=None, modArea=None, isotopics=None, mergeWith=None, components=None)[source]

Bases: ShapedComponent

More correctly, a rectangular cuboid.

Optionally, there may be a centric cuboid volume cut out of center of this shape.

is3D = True
THERMAL_EXPANSION_DIMS = {}
pDefs = <armi.reactor.parameters.parameterDefinitions.ParameterDefinitionCollection object>
getComponentArea(cold=False)[source]
getComponentVolume()[source]

Computes the volume of the cube in cm^3.

DIMENSION_NAMES = ('lengthOuter', 'lengthInner', 'widthOuter', 'widthInner', 'heightOuter', 'heightInner', 'mult', 'modArea')
INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'lengthOuter', 'lengthInner', 'widthOuter', 'widthInner', 'heightOuter', 'heightInner', 'mult', 'modArea', 'isotopics', 'mergeWith', 'components')
paramCollectionType

alias of CubeParameterCollection

material: Material
class armi.reactor.components.volumetricShapes.RadialSegment(name, material, Tinput, Thot, inner_radius=None, outer_radius=None, height=None, mult=None, inner_theta=0, outer_theta=6.283185307179586, isotopics=None, mergeWith=None, components=None)[source]

Bases: ShapedComponent

A RadialSegement represents a volume element with thicknesses in the azimuthal, radial and axial directions.

This a 3D projection of a 2D shape that is an angular slice of a ring or circle.

The 2D shape is like the one below, with an inner and outer position for the theta and the radius:

Image:

Y
^                      -
|                 -
|            -XXXX\
|       -  \XXXXXXX\
|  theta   |XXXXXXX|
|-----------------------> radius, X
|
|
is3D = True
THERMAL_EXPANSION_DIMS = {}
pDefs = <armi.reactor.parameters.parameterDefinitions.ParameterDefinitionCollection object>
getComponentArea(refVolume=None, refHeight=None, cold=False)[source]
getComponentVolume()[source]
getBoundingCircleOuterDiameter(Tc=None, cold=False)[source]
DIMENSION_NAMES = ('inner_radius', 'outer_radius', 'height', 'mult', 'inner_theta', 'outer_theta')
INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'inner_radius', 'outer_radius', 'height', 'mult', 'inner_theta', 'outer_theta', 'isotopics', 'mergeWith', 'components')
paramCollectionType

alias of RadialSegmentParameterCollection

material: Material
class armi.reactor.components.volumetricShapes.DifferentialRadialSegment(name, material, Tinput, Thot, inner_radius=None, radius_differential=None, inner_axial=None, height=None, inner_theta=0, azimuthal_differential=6.283185307179586, mult=1, isotopics=None, mergeWith=None, components=None)[source]

Bases: RadialSegment

This component class represents a volume element with thicknesses in the azimuthal, radial and axial directions. Furthermore it has dependent dimensions: (outer theta, outer radius, outer axial) that can be updated depending on the ‘differential’ in the corresponding directions.

This component class is super useful for defining ThRZ reactors and perturbing its dimensions using the optimization modules

See also

geometry, armi.physics.optimize.OptimizationInterface.modifyCase, ThRZActiveHeight, ThRZActiveRadius, mesh, armi.reactor.reactors.Reactor.importGeom

is3D = True
THERMAL_EXPANSION_DIMS = {}
updateDims(key='', val=None)[source]

Update the dimensions of differential radial segment component.

Notes

Can be used to update any dimension on the component, but outer_radius, outer_axial, and outer_theta are always updated.

getComponentArea(refVolume=None, refHeight=None, cold=False)[source]
getComponentVolume()[source]
DIMENSION_NAMES = ('inner_radius', 'radius_differential', 'inner_axial', 'height', 'inner_theta', 'azimuthal_differential', 'mult')
INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'inner_radius', 'radius_differential', 'inner_axial', 'height', 'inner_theta', 'azimuthal_differential', 'mult', 'isotopics', 'mergeWith', 'components')
paramCollectionType

alias of RadialSegmentParameterCollection

material: Material