2.1. The Settings Input File¶
The settings input file defines a series of key/value pairs the define various information about the system you are modeling as well as which modules to run and various modeling/approximation settings. For example, it includes:
The case title
The reactor power
The number of cycles to run
Which physics solvers to activate
Whether or not to perform a critical control search
Whether or not to do tight coupling iterations
What neutronics approximations specific to the chosen physics solver to apply
Environment settings (paths to external codes)
How many CPUs to use on a computer cluster
This file is a YAML file that you can edit manually with a text editor or with the ARMI GUI.
Here is an excerpt from a settings file:
settings:
availabilityFactor: 1
beta: 0.003454
BOL: true
branchVerbosity: debug
buGroups:
- 100
burnSteps: 2
clusterExclusive: false
comment: Simple test input.
crossSectionControl:
DA:
geometry: 0D
A full listing of settings available in the framework may be found in the Table of all global settings.
Many settings are provided by the ARMI Framework, and others are defined by various plugins.
2.1.1. The ARMI GUI¶
The ARMI GUI may be used to manipulate many common settings (though the GUI can’t change all of the settings). The GUI also enables the graphical manipulation of a reactor core map, and convenient automation of commands required to submit to a cluster. The GUI is a front-end to these files. You can choose to use the GUI or not, ARMI doesn’t know or care — it just reads these files and runs them.
Note that one settings input file is required for each ARMI case, though many ARMI cases can refer to the same Blueprints, Core Map, and Fuel Management inputs.
Tip
The ARMI GUI is not yet included in the open-source ARMI framework
2.1.1.1. The assembly clicker¶
The assembly clicker (in the grids
editor) allows users to define the 2-D layout of the assemblies defined in the
The Blueprints Input File. This can be done in hexagon or cartesian. The results of this arrangement get written to
grids in blueprints. Click on the assembly palette on the right and click on the locations where you want to put the
assembly. By default, the input assumes a 1/3 core model, but you can create a full core model through the menu.
If you want one assembly type to fill all positions in a ring, right click it once it is placed and choose Make ring
like this hex
. Once you submit the job or save the settings file (File -> Save), you will be prompted for a new name
of the geometry file before the settings file is saved. The geometry setting in the main tab will also be updated.
2.1.1.2. The ARMI Environment Tab¶
The environment tab contains important settings about which version of ARMI you will run
and with which version of Python, etc. Most important is the ARMI location
setting. This
points to the codebase that will run. If you want to run the released version of ARMI,
ensure that it is set in this setting. If you want to run a developer version, then be sure
to update this setting.
Other settings on this tab may need to be updated depending on your computational environment. Talk to your system admins to determine which settings are best.
2.1.2. Some special settings¶
A few settings warrant additional discussion.
2.1.2.1. Detail assemblies¶
Many plugins perform more detailed analysis on certain regions of the reactor. Since the analyses often take longer, ARMI has a feature, called detail assemblies to help. Different plugins may treat detail assemblies differently, so it’s important to read the plugin documentation as well. For example, a depletion plugin may perform pin-level depletion and rotation analysis only on the detail assemblies. Or perhaps CFD thermal/hydraulics will be run on detail assemblies, while subchannel T/H is run on the others.
Detail assemblies are specified by the user in a variety of ways, through the GUI or the settings system.
Warning
The Detail Assemblies mechanism has begun to be too broad of a brush for serious multiphysics calculations with each plugin treating them differently. It is likely that this feature will be extended to be more flexible and less surprising in the future.
- Detail Assembly Locations BOL
The
detailAssemLocationsBOL
setting is a list of assembly location strings (e.g.004-003
for ring 4, position 3). Assemblies that are in these locations at the beginning-of-life will be activated as detail assemblies.- Detail assembly numbers
The
detailAssemNums
setting is a list ofassemNum
s that can be inferred from a previous case and specified, regardless of when the assemblies enter the core. This is useful for activating detailed treatment of assemblies that enter the core at a later cycle.- Detail all assemblies
The
detailAllAssems
setting makes all assemblies in the problem detail assemblies
2.1.2.2. Kinetics settings¶
In reactor physics analyses it is standard practice to represent reactivity
in either absolute units (i.e., dk/kk’ or pcm) or in dollars or cents. To
support this functionality, the framework supplies the beta
and
decayConstants
settings to apply the delayed neutron fraction and
precursor decay constants to the Core parameters during initialization.
These settings come with a few caveats:
The
beta
setting supports two different meanings depending on the type that is provided. If a single value is given, then this setting is interpreted as the effective delayed neutron fraction for the system. If a list of values is provided, then this setting is interpreted as the group-wise (precursor family) delayed neutron fractions (useful for reactor kinetics simulations).The
decayConstants
setting is used to define the precursor decay constants for each group. When set, it must be provided with a correspondingbeta
setting that has the same number of groups. For example, if six-group delayed neutron fractions are provided, the decay constants must also be provided in the same six-group structure.If
beta
is interpreted as the effective delayed neutron fraction for the system, then thedecayConstants
setting will not be utilized.If both the group-wise
beta
anddecayConstants
are provided and their number of groups are consistent, then the effective delayed neutron fraction for the system is calculated as the summation of the group-wise delayed neutron fractions.
2.1.2.3. Cycle History¶
For all cases, nCycles
and power
must be specified by the user.
In the case that only a single state is to be examined (i.e. no burnup), the user need only additionally specify nCycles = 1
.
In the case of burnup, the reactor cycle history may be specified using either the simple or detailed option. The simple cycle history consists of the following case settings:
power
nCycles
(default = 1)
burnSteps
(default = 4)
availabilityFactor(s)
(default = 1.0)
cycleLength(s)
(default = 365.2425)
In addition, one may optionally use the powerFractions
setting to change the reactor
power between each cycle.
With these settings, a user can define a history in which each cycle may vary
in power, length, and uptime.
The history is restricted, however, to each cycle having a constant power, to
each cycle having the same number of burnup nodes, and to those burnup nodes being
evenly spaced within each cycle.
An example simple cycle history might look like:
power: 1000000
nCycles: 3
burnSteps: 2
cycleLengths: [100, R2]
powerFractions: [1.0, 0.5, 1.0]
availabilityFactors: [0.9, 0.3, 0.93]
Note the use of the special shorthand list notation, where repeated values in a list can be specified using an “R” followed by the number of times the value is to be repeated.
The above scheme would represent 3 cycles of operation:
100% power for 90 days, split into two segments of 45 days each, followed by 10 days shutdown (i.e. 90% capacity)
50% power for 30 days, split into two segments of 15 days each, followed by 70 days shutdown (i.e. 15% capacity)
100% power for 93 days, split into two segments of 46.5 days each, followed by 7 days shutdown (i.e. 93% capacity)
In each cycle, criticality calculations will be performed at 3 nodes evenly-spaced through the uptime portion of the cycle (i.e. availabilityFactor``*``powerFraction
), without option for changing node spacing or frequency.
This input format can be useful for quick scoping and certain types of real analyses, but clearly has its limitations.
To overcome these limitations, the detailed cycle history, consisting of the cycles
setting may be specified instead.
For each cycle, an entry to the cycles
list is made with the following optional fields:
name
power fractions
cumulative days
,step days
, orburn steps
+cycle length
availability factor
An example detailed cycle history employing all of these fields could look like:
power: 1000000
nCycles: 4
cycles:
- name: A
step days: [1, 1, 98]
power fractions: [0.1, 0.2, 1]
availability factor: 0.1
- name: B
cumulative days: [2, 72, 78, 86]
power fractions: [0.2, 1.0, 0.95, 0.93]
- name: C
step days: [5, R5]
power fractions: [1, R5]
- cycle length: 100
burn steps: 2
availability factor: 0.9
Note that repeated values in a list may be again be entered using the shorthand notation for step days
, power fractions
, and availability factors
(though not cumulative days
because entries must be monotonically increasing).
Such a scheme would define the following cycles:
A 2 day power ramp followed by full power operations for 98 days, with three nodes clustered during the ramp and another at the end of the cycle, followed by 900 days of shutdown
A 2 day power ramp followed by a prolonged period at full power and then a slight power reduction for the last 14 days in the cycle
Constant full-power operation for 30 days split into six even increments
Constant full-power operation for 90 days, split into two equal-length 45 day segments, followed by 10 days of downtime
As can be seen, the detailed cycle history option provides much greated flexibility for simulating realistic operations, particularly power ramps or scenarios that call for unevenly spaced burnup nodes, such as xenon buildup in the early period of thermal reactor operations.
Note
Although the detailed cycle history option allows for powers to change within each cycle, it should be noted that the power over each step is still considered to be constant.
Note
The detailed cycle history may not be used for equilibrium calculations at this time.
Note
The name
field of the detailed cycle history is not yet used for anything, but this information will still be accessible on the operator during runtime.
Note
Cycles without names will be given the name None