armi.reactor.components.volumetricShapes module
3-dimensional shapes.
Here ARMI implements its support for: Cubes, Spheres, RadialSegments, and more. |
- 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.
- DIMENSION_NAMES = ('od', 'id', 'mult', 'modArea')
- INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'od', 'id', 'mult', 'modArea', 'isotopics', 'mergeWith', 'components')
- paramCollectionType
alias of
SphereParameterCollection
- 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>
- 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
- 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>
- 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
- 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.
- 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