idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.7k stars 1.04k forks source link

Optimization Module's Exodus output to work with Eigenvalue executioners #27281

Open Ramzy1990 opened 5 months ago

Ramzy1990 commented 5 months ago

Motivation

The Optimization module's exodus output has the ability to show the optimization procedure (e.g., displacements) as it is updated during the optimization process. However, this currently works for specific executioners (e.g., Steady). An executioner with the Eigenvalue type will not have this capability available.

Design

1- Modify the Eigenvalue class and the OptimizeSolve class to get the current iteration value of PETSc's optimization iteration in case of an eigenvalue executioner. A dedicated exodus class (ExodusOptimizationEigenvalue) is to be constructed to have the capability called from the output system. 2- Add a test example to show the capability is working.

The provided example is for a 2D pin-cell singlephysics simulation and can be tested using Moltres's opensource neutronics solver. This was also tested using Griffin and MOOSE's heat conduction module for a multiphysics example.

Related to and supports #25416 as well.

Impact

The exodus can now not only have the initial and the final states, but also the interstates of the optimization process when the problem is an eigenvalue problem.

lindsayad commented 5 months ago

@lynnmunday @maxnezdyur