13. Symmetry Handling

This section will describe how partial core symmetry is handled in ARMI.

13.1. Introduction

A partial core may be specified in the blueprints file using the symmetry attribute, as shown below.

grids:
  core:
    geom: hex
    symmetry: third periodic
    lattice map: |
      F
       F
      F F
       F
      C F

Specifying a core this way is useful for saving computation time, so long as the core state being modeled is truly symmetric.

Because of this, assemblies and blocks have a symmetryFactor attribute that is used to track how much of the object is present in the currently modeled core. For example, the central assembly (labeled “C”) in the core lattice definition above would have a symmetry factor of 3, representing that only 1/3rd of the assembly is in the core model. The blocks within that assembly would have the same symmetry factor.

Reactors do not have symmetry factors, Cores have symmetry factors but no core parameters are adjusted due to symmetry currently, and Components always have a symmetry factor of 1. That is, only parameters for Assembly and Block objects are adjusted for symmetry.

13.2. Symmetry-Aware Operations

Because some assemblies may be partially in a partial core (e.g. the central assembly in a 1/3rd hex core) certain core and assembly operations must adjust parameters to maintain accurate bookkeeping.

The third core hex converter methods convert and restorePreviousGeometry are both core-level operations that account for symmetry when calculating the values of parameters on assemblies and blocks in the converted core.

On an assembly level, the assembly method moveTo adjusts parameters as necessary when moving an assembly between locations with differing symmetry factors.

13.3. Parameters Adjusted With Symmetry

Only some parameters need to be adjusted with symmetry. A parameter must be on either an Assembly or Block object and have the flag VOLUME_INTEGRATED to be adjusted in the operations listed in the previous section.