.. _motivation:
.. image:: pics/rollo-logo.png
:width: 450
:alt: Alternative text
===================
Motivation
===================
The motivation for **ROLLO** is to provide a user-friendly tool that helps reactor
designers use evolutionary algorithms for reactor design optimization.
Evolutionary algorithm setup is highly customizable with an assortment of
genetic algorithm designs and operators.
A reactor designer unfamiliar with evolutionary algorithms will have to go through the
cumbersome process of customizing a genetic algorithm for their needs and determine
which operators and hyperparameters work best for their problem.
Furthermore, computing fitness values with nuclear software is computationally
expensive, necessitating using supercomputers.
Reactor designers have to set up parallelization to use the genetic algorithm
optimization with nuclear software.
**ROLLO** provides a general genetic algorithm framework, sets up parallelization for the
user, and promotes usability with an input file that only exposes mandatory parameters.
**ROLLO** strives to be effective, flexible, open-source, parallel, reproducible, and usable:
- Effective: **ROLLO** is well documented, tested, and version-controlled on `Github `_.
- Flexible: **ROLLO** is nuclear software agnostic. Users can vary any imaginable parameter with any nuclear software. **ROLLO** uses a templating method to edit the input file of the coupled software.
- Parallel: Users have two options for running **ROLLO** in parallel.
- Reproducible: Data from every **ROLLO** run saves into a unique `pickled file `_.