Skip to content

Appliation Spaces

Jake Mikouchi edited this page Jul 13, 2026 · 1 revision

Single Cycle Fresh Fuel LWR

These optimizations include the distribution of fresh fuel assemblies across a LWR core that is operated for a single cycle. The core contains only fresh fuel with no cycle-to-cycle dependence making the optimization comparatively easier than other optimization types, but the number of possible moves is still very large making the problem challenging. During these optimizations, MIDAS selects from a set of fresh fuel assemblies defined by the user to with the goal of meeting user defined objectives. Over the optimization process, the loading patterns are perturbed by the respective algorithm in search of high performing solutions. Users may impose design limitations on the solutions such as maximum number of assembly instances or they may restrict the valid locations for the different fuel type. Common LWR design constraints are natively available through the parcs343 module which can be used to evaluate the effectiveness of a loading pattern. These can include cycle length, boron concentration, peaking factors, and fuel costs.

MIDAS can natively handle common core symmetries to reduce the design space and constrain the solutions to loading patterns resembling standard practices. MIDAS is able to keep track of the number of assembly instances with core symmetries through multiplicity maps which are stored internally allowing MIDAS to keep track of full core values while continuing to optimize on higher symmetries. The figure below shows the full, quarter, and octant core symmetries for a 157 assembly PWR that MIDAS is able to optimize over. It also shows the multiplicity maps that MIDAS uses for each symmetry type.

157_pwr

Core shapes that are natively supported by MIDAS for fresh fuel optimizations are:

  • 193 assembly PWR
  • 157 assembly PWR
  • 764 assembly BWR

All core shapes are compatible with full, quarter, and octant symmetries, and additional core shapes can easily be added to this catalog.

Equilibrium Cycle LWR

The equilibrium cycle optimization is an extension of the fresh fuel optimization where both fresh and burned fuel types are present in the loading pattern. When evaluating the effectiveness of a solution the core is created in PARCS and run for several operational cycles until the operating conditions do not change from the N-1 to the Nth cycle. When generating solutions, MIDAS generates a fresh fuel loading pattern and a shuffling scheme. To generate the shuffling scheme, MIDAS first distributes fresh fuel across the core in a fashion similar to during fresh fuel optimizations, it then adds the locations of the fresh fuel into a bin to represent the fuel inventory available for the once burned fuel. MIDAS then distributes the assemblies from this bin into the core and these new locations are added to another bin for the subsequent batch of burned assemblies. This process repeats until the core is full and the user specified number of batches has been distributed. This method ensures that physically correct designs are created where each assembly can always be traced back to a fresh fuel assembly. Each gene (assembly) in the chromosome that represents the loading pattern contains two pieces of information. The first being what batch this assembly belongs to and the second being the location that the assembly existed in during the previous operational cycle. If the assembly is fresh then the second data point is replaced by the assembly type. The multiplicity map is again used for fresh fuel limitations and also to meet user imposed batch size limitations During an optimization process, when a perturbation occurs MIDAS will swap out assemblies using the previously created bins to ensure that continuity is maintained in the new design.

The figure below illustrates how MIDAS internally represents the genes to encode the equilibrium cycle loading pattern and perform the optimization.

eq_cycle_encoding

All core shapes that are compatible for fresh fuel optimizations are also compatible with equilibrium core optimizations, however octant symmetry PWRs are not natively supported as it is impossible to conduct this optimization without introducing biases (octant symmetry BWRs can be conducted without bias).

Lattice Physics

Lattice physics optimizations are similar to the previous two optimizations swapping out assemblies for fuel pins which are now distributed across a single assembly lattice. During the optimization, MIDAS selects from a set of user defined fuel pins and distributes them across the lattice. MIDAS then perturbs the lattice designs in search of an improved performance solution. Just like the other optimizations, users can define limitations on the number of fuel pin instances and on the locations a fuel pin can exist. Common fuel lattice design objectives are natively available through the polaris642 module which can be used to evaluate the effectiveness of a lattice. These can include the peaking factor, maximum reactivity, and burnup at which the reactivity becomes sub critical. MIDAS supports both PWR and BWR optimizations with different symmetry options depending on the system. For PWRs full, quarter, and octant symmetries are available. For BWRs full and diagonal symmetries are available. The diagonal asymmetry makes the assembly symmetric across the main diagonal splitting the lattice into an upper and lower triangle which is common for BWR lattice design.

The figure below illustrates how full and diagonal symmetries for a 10x10 BWR lattice.

eq_cycle_encoding

IPWR Database

The IPWR database is a database of all possible solutions for a fresh fuel integrated pressurized water reactor. The design of the IPWR is based on the NuScale US600 core. The model contains 6 unique fuel assembly designs and 37 total assemblies. The IPWR was modeled using the Polaris to PARCS workflow both of which require licenses to use, however because neither code is run when using the database anybody can use it for their optimizations. The performance parameters of each core configuration with octant symmetry is stored in the database totaling 1,679,616 unique designs. While the design space is relatively large, it is small enough that the global optimum can be identified for a given set of design objectives. This allows for the database to act as a test problem to validate the performance of the available optimization algorithms.

The tables below overview the assembly designs and the modeling parameters.

ipwr_assemb

ipwr_params

Categorical (devel)

Categorical optimization problems are are a class of optimization where the genes used to populate a chromosome are composed of discrete non-ordered variables. MIDAS has built in functionality to handle categorical optimizations which can be fully defined using the yaml input file. MIDAS contains a traveling salesman problem module to demonstrate its categorical optimization capabilities. The Tabu search sample input optimizes over this problem. More categorical optimization problems can easily be added to MIDAS through additional modules.

Loading pattern and lattice physics optimizations are both forms of categorical optimizations. These get special treatment over other problems due to the solution symmetries.

Numerical (devel)

Numerical optimizations are problems that optimize over a range of numbers to find the values which maximize performance. MIDAS has built in functionality to handle both fully continuous and discrete numeric values during the optimization. MIDAS can even conduct an optimization between mixed continuous and discrete variables. There are several modules available in MIDAS demonstrating these capabilities including: list sums, the Styblinski-Tang function, and the Levy Function. When conducting optimizations, MIDAS encodes the variables by normalizing all of the genes to exist within a range of 0 and 1 which allows for MIDAS to easily make perturbations without worrying about valid gene values. The true gene values are realized only when reporting solutions to the user and when interfacing with the problem modules.

Clone this wiki locally