armi.reactor.components.volumetricShapes module¶
3-dimensional shapes
Here ARMI implements its support for: Spheres, Cubes, Toruses, 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:
armi.reactor.components.component.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
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>¶
- 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
A torus.
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)
Notes
The dimensions are:
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)
Image:
Z | | | | - ^ - | / | 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>¶
- 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.
- 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