This PR adds in an additional step in run_ddp where the outputs are saved after each iteration of a multistage run. It does so through the use of a new key in multistage settings called WriteIntermittentOutputs, and uses the function write_outputs().
This PR changes the files dual_dynamic_programming.jl (run_ddp()) and case_runner.jl (run_genx_multistage). It merges into the branch configure_multistage_settings because it needs the default key for WriteIntermittentOutputs in configure_multistage_settings.
What type of PR is this? (check all applicable)
[X] Feature
Related Tickets & Documents
Issue #658
Checklist
[X] Code changes are sufficiently documented; i.e. new functions contain docstrings and .md files under /docs/src have been updated if necessary.
[x] The latest changes on the target branch have been incorporated, so that any conflicts are taken care of before merging. This can be accomplished either by merging in the target branch (e.g. 'git merge develop') or by rebasing on top of the target branch (e.g. 'git rebase develop'). Please do not hesitate to reach out to the GenX development team if you need help with this.
[X] Code has been tested to ensure all functionality works as intended.
[x] CHANGELOG.md has been updated (if this is a 'notable' change).
[X] I consent to the release of this PR's code under the GNU General Public license.
How this can be tested
This can be tested by adding a key in multistage_settings.yml in example 6 to WriteIntermittentOutputs: 1, then running example 6 as usual and observing that all outputs are occurring as expected after each iteration of the run. Testing was done to ensure that everything is working correctly.
Post-approval checklist for GenX core developers
After the PR is approved
[x] Check that the latest changes on the target branch are incorporated, either via merge or rebase
[x] Remember to squash and merge if incorporating into develop
Description
This PR adds in an additional step in run_ddp where the outputs are saved after each iteration of a multistage run. It does so through the use of a new key in multistage settings called WriteIntermittentOutputs, and uses the function write_outputs().
This PR changes the files dual_dynamic_programming.jl (run_ddp()) and case_runner.jl (run_genx_multistage). It merges into the branch configure_multistage_settings because it needs the default key for WriteIntermittentOutputs in configure_multistage_settings.
What type of PR is this? (check all applicable)
Related Tickets & Documents
Issue #658
Checklist
How this can be tested
This can be tested by adding a key in multistage_settings.yml in example 6 to WriteIntermittentOutputs: 1, then running example 6 as usual and observing that all outputs are occurring as expected after each iteration of the run. Testing was done to ensure that everything is working correctly.
Post-approval checklist for GenX core developers
After the PR is approved