Dont check stagnation / oscillation for stopped wells
PR https://github.com/OPM/opm-simulators/pull/6020 gives problem for wells that are STOPed. This PR suggest a fix and restore pre #6020 runtime for NORNE_ATW2013_1A_MSW
jenkins build this please
jenkins build this failure_report please
jenkins build this failure_report please
Could it be possible that the stagnation_rel_tol = 1e-2 is too high? I just used what was already in the code. I can test with a higher tolerance for stopped wells.
jenkins build this failure_report please
@steink Could you look at the PR again. I did some more digging and I think I found the real issue that caused the problems. At some point we moved from shutting non-convergent wells during iterations to stopping them. (i.e. still solve for them but with 0 target). In the current code we stop already stopped wells which leads to the stagnation. This PR should fix this and also recover the run time for NORNE_ATW2013_1A_MSW
jenkins build this failure_report please
So the situation where this change triggers: a well is stopped (either before or during local iterations), but it was not able to converge with zero rate. In this case you don't want to set the solvable to false, so some subsequent isOperableAndSolvable will not trigger. I'm probably missing something, but I'm not able to see why this prevents stagnation?
changed_to_stopped_this_step_ will no longer be true -> we will check well operability again -> wells oscillate between being stopped and revived during iterations (it also starts using explicit VFPs) -> problems with Newton convergence. (I have not checked why this causes problems with the Newton convergence. But if a well is stopped I don't see the point in trying to stop it again due to convergence issues. But I may be wrong here, so lets please continue the discussion.
Sure, I'm not yet able to follow the logic entirely, but maybe related:
- A few lines further up in this function we added (https://github.com/OPM/opm-simulators/pull/5659/) a check to delay stopping wells to prevent stopped - revived - stopped oscillations, which helped a lot for NORNE_ATW2013_1A_MSW. Your situation, however, seems to be slightly different: stopped (and not converged) - revived (maybe converged?) - stopped (and not converged)?
- Since you also mention explicit VFP: problem could also have root in bad explicit fractions due to initialization issue.
jenkins build this failure_report please
jenkins build this failure_report please
jenkins build this failure_report please
jenkins build this failure_report please