fix(prt): fix particle event kper/kstp assignment #2644
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PRT previously attempted to report events occurring exactly on a boundary between time steps as occurring during the preceding step, in order to properly 'credit' the flow conditions responsible for the particle's trajectory up to that time. This logic was implemented incorrectly and could cause stress period and time step to be assigned incorrectly for some events. Instead of altering stress period and time step post hoc, PRT will now report each event as occurring in the stress period and time step in which the reporting condition responsible for triggering it is recognized. By consequence, particle release events occurring exactly at a time step boundary may now be assigned to either side of the boundary, depending how the release is configured: if configured via explicit release time, it will fall on the preceding side, while if configured via stress period settings, it will be reported on the following side.
The changes mainly consist of tightening up the semantics and implementation of
TimeSelectModule, which will now use slices(t0, t1], i.e exclusive lower bound and inclusive upper bound, and theadvanceroutine was incorrect in several ways. Conditionals in the various tracking methods are also updated to implement the new approach, which can be summarized as "report events as soon as possible, without duplication".test_prt_release_timing.pyis updated here with 3 new cases.test_prt_watertable.pyis also updated to reflect new, corrected results.Checklist of items for pull request
ruffon new and modified python scripts in .doc, autotests, doc, distribution, pymake, and utils subdirectories.fprettify