armi.reactor.components package

Components package contains components and shapes.

These objects hold the dimensions, temperatures, composition, and shape of reactor primitives.

Component class diagram

Class inheritance diagram for armi.reactor.components.

armi.reactor.components.factory(shape, bcomps, kwargs)[source]

Build a new component object.

Parameters:
  • shape (str) – lowercase string corresponding to the component type name

  • bcomps (list(Component)) – list of “sibling” components. This list is used to find component links, which are of the form <name>.<dimension.

  • kwargs (dict) – dictionary of inputs for the Component subclass’s __init__ method.

class armi.reactor.components.NullComponent(name, material, Tinput, Thot, area=None, isotopics='', mergeWith='', components=None)[source]

Bases: Component

Returns zero for all dimensions.

getBoundingCircleOuterDiameter(Tc=None, cold=False)[source]
getDimension(key, Tc=None, cold=False)[source]
DIMENSION_NAMES = ()
INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'isotopics', 'mergeWith', 'components')
paramCollectionType

alias of ComponentParameterCollection

material: Material
class armi.reactor.components.UnshapedComponent(name, material, Tinput, Thot, area=nan, modArea=None, isotopics=None, mergeWith=None, components=None)[source]

Bases: Component

A 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

DerivedShape

Useful to just fill leftover space in a block with a material

pDefs = <armi.reactor.parameters.parameterDefinitions.ParameterDefinitionCollection object>
getComponentArea(cold=False)[source]

Get the area of this component in cm^2.

Parameters:

cold (bool, optional) – If True, compute the area with as-input dimensions, instead of thermally-expanded.

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:
  • Tc (float) – Ignored for this component

  • cold (bool, optional) – If True, compute the area with as-input dimensions, instead of thermally-expanded.

Notes

Tc is not used in this method for this particular component.

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

material: Material
class armi.reactor.components.UnshapedVolumetricComponent(name, material, Tinput, Thot, area=nan, op=None, isotopics=None, mergeWith=None, components=None, volume=nan)[source]

Bases: UnshapedComponent

A component with undefined dimensions.

Useful for situations where you just want to enter the volume directly.

is3D = True
getComponentArea(cold=False)[source]
getComponentVolume()[source]

Get the volume of the component in cm^3.

setVolume(val)[source]
DIMENSION_NAMES = ('op', 'volume')
INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'op', 'isotopics', 'mergeWith', 'components', 'volume')
paramCollectionType

alias of UnshapedComponentParameterCollection

material: Material
class armi.reactor.components.ZeroMassComponent(name, material, Tinput, Thot, area=nan, op=None, isotopics=None, mergeWith=None, components=None, volume=nan)[source]

Bases: UnshapedVolumetricComponent

A 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

getNumberDensity(*args, **kwargs)[source]

Always return 0 because this component has not mass.

setNumberDensity(*args, **kwargs)[source]

Never add mass.

DIMENSION_NAMES = ('op', 'volume')
INIT_SIGNATURE = ('name', 'material', 'Tinput', 'Thot', 'area', 'op', 'isotopics', 'mergeWith', 'components', 'volume')
paramCollectionType

alias of UnshapedComponentParameterCollection

material: Material
class armi.reactor.components.PositiveOrNegativeVolumeComponent(name, material, Tinput, Thot, area=nan, op=None, isotopics=None, mergeWith=None, components=None, volume=nan)[source]

Bases: UnshapedVolumetricComponent

A 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

material: Material
class armi.reactor.components.DerivedShape(name, material, Tinput, Thot, area=nan, modArea=None, isotopics=None, mergeWith=None, components=None)[source]

Bases: UnshapedComponent

This 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.

getMaxVolume()[source]

The maximum volume of the parent Block.

Returns:

vol – volume in cm^3.

Return type:

float

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

alias of UnshapedComponentParameterCollection

material: Material
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:

float

getComponentArea(cold=False)[source]

Get the area of this component in cm^2.

Parameters:

cold (bool, optional) – If True, compute the area with as-input dimensions, instead of thermally-expanded.

Submodules