Moving issue 24 from gitlab originally submitted by @aprilnovak:
Convergence can be improved if the fission source in iteration i+1 is taken from iteration i. The CoupledDriver currently calls the following OpenMC functions, in this order:
openmc_simulation_init: initialization stuff to be performed once per multiphysics solve; openmc_reset(); initialize_source()
openmc_run: loop over batches
openmc_statepoint_write()
openmc_simulation_finalize(): finalization stuff to be performed once per multiphysics solve; write tally results.
From my understanding, this means that we're doing a lot of duplicate work for each Picard iteration that we could reduce by dividing openmc_simulation_init and openmc_simulation_finalize into smaller functions that perform tasks needed once per multiphysics solve (like initializing the source, if we want to re-use it between Picard iterations) and once per iteration (like resetting tallies).
Moving issue 24 from gitlab originally submitted by @aprilnovak:
Convergence can be improved if the fission source in iteration
i+1is taken from iterationi. TheCoupledDrivercurrently calls the following OpenMC functions, in this order:openmc_simulation_init: initialization stuff to be performed once per multiphysics solve;openmc_reset();initialize_source()openmc_run: loop over batchesopenmc_statepoint_write()openmc_simulation_finalize(): finalization stuff to be performed once per multiphysics solve; write tally results.From my understanding, this means that we're doing a lot of duplicate work for each Picard iteration that we could reduce by dividing
openmc_simulation_initandopenmc_simulation_finalizeinto smaller functions that perform tasks needed once per multiphysics solve (like initializing the source, if we want to re-use it between Picard iterations) and once per iteration (like resetting tallies).