enrico icon indicating copy to clipboard operation
enrico copied to clipboard

Outputting at specified steps?

Open RonRahaman opened this issue 5 years ago • 2 comments

Currently, ENRICO calls Driver::write_step at every Picard iteration. I would be interested in specifying only certain Picard iterations and/or timestep intervals for calling write_step. For example, I'd be especially interested in calling write_step at only the final Picard iteration of each timestep.

For OpenmcDriver, this seems pretty easy to implement, since OpenmcDriver::write_step simply calls the openmc_statepoint_write API function from OpenMC. In that case, we could conditionally call write_step in CoupledDriver::execute

For NekDriver, it will be more difficult. To write the step, we don't directly call an API function from Nek5000. We simply rely on Nek to write the statepoint during the nek_solve API function, which is called in NekDriver::solve_step. Hence, conditionally calling write_step won't change the behavior. I'm looking at ways to workaround this, and I think I have some leads.

For SHIFT, I can't see what would need to happen.

RonRahaman avatar Aug 18 '20 14:08 RonRahaman

One could start with at least having the user input and allowing this to happen in principle, even if NekDriver doesn't listen to it.

paulromano avatar Aug 19 '20 21:08 paulromano

The Shift tally output is currently wrapped up in the solve. It will take a little bit of reorganization on the Shift side to separate those into distinct methods. Like @paulromano said, we could expose this as an input option and note that it isn't yet supported by all solver selections.

sphamil avatar Aug 20 '20 12:08 sphamil