adding WELL_THP_UPDATE event. - #5298
Conversation
3898831 to
f7dfc71
Compare
|
jenkins build this please |
There was a problem hiding this comment.
Pull request overview
Adds a new schedule event (WELL_THP_UPDATE) and simulator update tracking (SimulatorUpdate::thp_respec_wells) to detect when a well’s THP limit and/or VFP table is (re)specified via schedule keywords—even when the specified values are unchanged (a case not reliably covered by PRODUCTION_UPDATE).
Changes:
- Introduces
ScheduleEvents::WELL_THP_UPDATEwith documentation explaining when it should be emitted. - Records THP/VFP (re)specification in handlers for
WCONPROD,WCONHIST,WELTARG(THP/VFP), andWTMULT(THP), and tracks affected wells viaHandlerContext::thp_respec_well()intoSimulatorUpdate::thp_respec_wells. - Adds a parser/schedule regression test verifying
WELL_THP_UPDATEbehavior across several keyword scenarios.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/parser/ScheduleTests.cpp | Adds coverage asserting WELL_THP_UPDATE is raised for THP/VFP re-specification scenarios, including unchanged values. |
| opm/input/eclipse/Schedule/Well/WellPropertiesKeywordHandlers.cpp | Emits WELL_THP_UPDATE for WTMULT THP (currently only in producer branch). |
| opm/input/eclipse/Schedule/Well/WellKeywordHandlers.cpp | Emits WELL_THP_UPDATE for WCONPROD, WCONHIST, and WELTARG THP/VFP cases. |
| opm/input/eclipse/Schedule/HandlerContext.hpp | Declares HandlerContext::thp_respec_well() for tracking THP/VFP (re)specification. |
| opm/input/eclipse/Schedule/HandlerContext.cpp | Implements thp_respec_well() to populate SimulatorUpdate::thp_respec_wells. |
| opm/input/eclipse/Schedule/Events.hpp | Adds the WELL_THP_UPDATE enum value and updates event documentation. |
| opm/input/eclipse/Schedule/Action/SimulatorUpdate.hpp | Adds/serializes/merges/resets/compares the new thp_respec_wells set. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
35ccb76 to
33ea605
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Suppressed comments (4)
opm/input/eclipse/Schedule/HandlerContext.cpp:56
- Use the same pointer-check style as the surrounding methods (e.g. affected_well/record_tran_change) to keep HandlerContext consistent.
void HandlerContext::thp_respec_well(const std::string& well_name)
{
if (sim_update != nullptr) {
sim_update->thp_respec_wells.insert(well_name);
}
}
opm/input/eclipse/Schedule/Events.hpp:117
- Grammar: "THP limit and/or VFP table" is a plural subject, so this should be "have been (re)specified".
/// The well THP limit and/or VFP table has been (re)specified
opm/input/eclipse/Schedule/Action/SimulatorUpdate.hpp:75
- Grammar: "THP limit and/or VFP table" is plural, so this should be "have been (re)specified".
/// Wells whose THP limit and/or VFP table has been (re)specified by
opm/input/eclipse/Schedule/HandlerContext.hpp:110
- Grammar: the subject is plural ("THP limit and/or VFP table"), so this should use "have been".
//! \brief Mark that the THP limit and/or VFP table of a well has been
|
jenkins build this please |
|
jenkins build this opm-simulators=7333 please |
|
jenkins build this opm-simulators=7333 failure_report please |
1 similar comment
|
jenkins build this opm-simulators=7333 failure_report please |
|
https://ci.opm-project.org/job/opm-common-PR-builder/10164/ 02_6_uda_model5_stdw looks fine, while 01_gsatprod6 needs to look into. Build Artifacts |
At the end, the PR introduces more time step chopping at the first report step, but it is not because we are doing thing wrong in this PR, it is because the master branch uses a stale const bool dont_check = (currentControl == Well::ProducerCMode::GRUP && ws.trivial_group_target);I suggest we probably should either enable tuning for the 01_gsatprod6.pdf or accept the extra chopping introduced by the PR. |
9736314 to
e81d1f3
Compare
|
jenkins build this opm-simulators=7333 failure_report please |
66ce6c9 to
76a1e56
Compare
|
jenkins build this opm-simulators=7333 failure_report please |
76a1e56 to
19f052e
Compare
19f052e to
0ae140b
Compare
|
jenkins build this opm-simulators=7333 failure_report please |
Raised when the well THP limit and/or VFP table is (re)specified: by WCONPROD or WCONHIST, by WELTARG with THP or VFP control, or by WTMULT with THP control. Unlike PRODUCTION_UPDATE it is raised also when the entered values are unchanged, since re-specifying either input cancels a THP limit imposed dynamically by the simulator (e.g. by network balancing).
The new thp_respecified_wells set carries the WELL_THP_UPDATE information through ACTIONX processing, where report-step events do not reach the simulator.
WCONINJE and WCONINJH, and WELTARG THP/VFP and WTMULT THP on injectors, re-specify the injector THP limit and/or VFP table just like the producer variants. Consumers gate on the well type where it matters.
0ae140b to
fbf7575
Compare
|
jenkins build this opm-simulators=7333 please |
|
jenkins build this opm-simulators=7333 failure_report please |
|
I am marking the PR and downstream PR OPM/opm-simulators#7333 as ready for review. The downstream PR OPM/opm-simulators#7333 is the main PR, so I put the description of the issue there. |
|
jenkins build this opm-simulators=7333 failure_report please |
|
The main regression failure 01_gsatprod6.pdf I have analyzed with the following comment,
the other failure 02_6_uda_model5_stdw.pdf is possible due to the same cause, but I did not analyze it since the relative error are on the 1.e-05 level. |


Adds a WELL_THP_UPDATE schedule event and a SimulatorUpdate::thp_respecified_wells set, raised whenever WCONPROD, WCONHIST, WELTARG THP/VFP or WTMULT THP (re)specifies a well THP limit or VFP table — also when the entered values are unchanged, which PRODUCTION_UPDATE does not cover.