armi.reactor.components.volumetricShapes module

3-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: armi.reactor.components.component.ShapedComponent

A spherical component.

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

Get the area of this component in cm^2.

Parameters

cold (bool, optional) – Compute the area with as-input dimensions instead of thermally-expanded

getComponentVolume()[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 armi.reactor.parameters.parameterCollections.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: armi.reactor.components.component.ShapedComponent

More correctly, a rectangular cuboid

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

Get the area of this component in cm^2.

Parameters

cold (bool, optional) – Compute the area with as-input dimensions instead of thermally-expanded

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 armi.reactor.parameters.parameterCollections.CubeParameterCollection

class armi.reactor.components.volumetricShapes.Torus(name, material, Tinput, Thot, inner_minor_radius=None, outer_minor_radius=None, major_radius=None, mult=1, inner_theta=0.0, outer_theta=6.283185307179586, inner_phi=0, outer_phi=6.283185307179586, height=None, reference_volume=None, inner_radius=None, outer_radius=None, isotopics=None, mergeWith=None, components=None)[source]

Bases: armi.reactor.components.component.ShapedComponent

Theta defines the extent the radial segment is rotated around the Z-axis

phi defines the extent around the major radius (i.e. a half torus is from 0 to pi)

p0 - inner minor radius p1 - outer minor radius p2 - major radius p3 - multiplier p4 - inner theta (optional) 0 (default) p5 - outer theta (optional) 2pi (default) p6 - inner phi (optional) 0 (default) p7 - outer phi (optional) 2pi (default) p8 - height (optional) <set as outer minor radius > (default) p9 - reference volume (optional)



- ^ -
/ | minor radius

|———————–> major radius, R | / | - - - |

Y ^ - | - | - | - | theta | |

ZX———————–> major radius, X



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

Computes the volume averaged area of the torus component.

Parameters
  • - float (RefArea) – This is the volume to use when normalizing area

  • - float – This is the area to use when normalizing area

  • - floats (RefHeight) – This is the height to use to estimate volume if a reference volume is not given

Notes

Since area fractions are being used as a proxy for volume fractions, this method returns the reference area normalized to the volume ratio of the torus within reference volume

getComponentVolume()[source]

Computes the volume of the torus in cm^3.

Notes

The exact solution is the solution to integrating the volume:

dV ~ (dr)*((R+cos(Ph)*r)*dTh)*(r*dPh)

Solution from WolframAlpha:

integrate (m*(R + cos(phi)*r)*r) dr dphi dtheta, theta=t1…t2, r=r1…r2, phi=p1…p2

DIMENSION_NAMES = ('inner_minor_radius', 'outer_minor_radius', 'major_radius', 'mult', 'inner_theta', 'outer_theta', 'inner_phi', 'outer_phi', 'height', 'reference_volume', 'inner_radius', 'outer_radius')
INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'inner_minor_radius', 'outer_minor_radius', 'major_radius', 'mult', 'inner_theta', 'outer_theta', 'inner_phi', 'outer_phi', 'height', 'reference_volume', 'inner_radius', 'outer_radius', 'isotopics', 'mergeWith', 'components')
paramCollectionType

alias of armi.reactor.parameters.parameterCollections.TorusParameterCollection

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: armi.reactor.components.component.ShapedComponent

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

Get the area of this component in cm^2.

Parameters

cold (bool, optional) – Compute the area with as-input dimensions instead of thermally-expanded

getComponentVolume()[source]
getBoundingCircleOuterDiameter(Tc=None, cold=False)[source]

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

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 armi.reactor.parameters.parameterCollections.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: armi.reactor.components.volumetricShapes.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]

Get the area of this component in cm^2.

Parameters

cold (bool, optional) – Compute the area with as-input dimensions instead of thermally-expanded

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 armi.reactor.parameters.parameterCollections.RadialSegmentParameterCollection