  A variety of optimization algorithms have been developed to solve engineering
design problems in which the solution space is too large to manually determine
the optimal solution. The Modular Optimization Framework (MOF) was developed to
facilitate the development and application of these optimization algorithms.
MOF is written in Python 3, and it used object-oriented programming to create a
modular design that allows users to easily incorporate new optimization
algorithms, methods, or engineering design problems into the framework.
Additionally, a common input file allows users to easily specify design
problems, update the optimization parameters, and perform comparisons between
various optimization methods and algorithms. In the current MOF version,
genetic algorithm (GA) and simulated annealing (SA) approaches are implemented.
Applications in different nuclear engineering optimization problems are
included as examples. The effectiveness of the GA and SA optimization
algorithms within MOF are demonstrated through an unconstrained nuclear fuel
assembly pin lattice optimization, a first cycle fuel loading constrained
optimization of a three-loop pressurized water reactor (PWR), and a third cycle
constrained optimization of a four-loop PWR. In all cases, the algorithms
efficiently searched the solution spaces and found optimized solutions to the
given problems that satisfied the imposed constraints. These results
demonstrate the capabilities of the existing optimization tools within MOF, and
they also provide a set of benchmark cases that can be used to evaluate the
progress of future optimization methodologies with MOF.
