mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
network pressure needs to be updated even without wells open
mostly to make the comparison plot against reference results easier for the network nodal pressures.
This commit is contained in:
parent
0f4da07aaf
commit
b3a6009b1b
@ -869,13 +869,17 @@ namespace Opm {
|
|||||||
Dune::Timer perfTimer;
|
Dune::Timer perfTimer;
|
||||||
perfTimer.start();
|
perfTimer.start();
|
||||||
|
|
||||||
if ( ! wellsActive() ) {
|
{
|
||||||
return;
|
const int episodeIdx = ebosSimulator_.episodeIndex();
|
||||||
|
const auto& network = schedule()[episodeIdx].network();
|
||||||
|
if ( !wellsActive() && !network.active() ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updatePerforationIntensiveQuantities();
|
updatePerforationIntensiveQuantities();
|
||||||
|
|
||||||
if (iterationIdx == 0) {
|
if (iterationIdx == 0 && wellsActive()) {
|
||||||
// try-catch is needed here as updateWellControls
|
// try-catch is needed here as updateWellControls
|
||||||
// contains global communication and has either to
|
// contains global communication and has either to
|
||||||
// be reached by all processes or all need to abort
|
// be reached by all processes or all need to abort
|
||||||
@ -892,6 +896,10 @@ namespace Opm {
|
|||||||
|
|
||||||
const bool well_group_control_changed = updateWellControlsAndNetwork(dt, local_deferredLogger);
|
const bool well_group_control_changed = updateWellControlsAndNetwork(dt, local_deferredLogger);
|
||||||
|
|
||||||
|
if ( ! wellsActive() ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
assembleWellEqWithoutIteration(dt, local_deferredLogger);
|
assembleWellEqWithoutIteration(dt, local_deferredLogger);
|
||||||
|
|
||||||
// if group or well control changes we don't consider the
|
// if group or well control changes we don't consider the
|
||||||
@ -1512,12 +1520,12 @@ namespace Opm {
|
|||||||
updateWellControls(DeferredLogger& deferred_logger,
|
updateWellControls(DeferredLogger& deferred_logger,
|
||||||
const std::size_t network_update_it)
|
const std::size_t network_update_it)
|
||||||
{
|
{
|
||||||
// Even if there are no wells active locally, we cannot
|
|
||||||
// return as the DeferredLogger uses global communication.
|
|
||||||
// For no well active globally we simply return.
|
|
||||||
if( !wellsActive() ) return { false, false };
|
|
||||||
|
|
||||||
const int episodeIdx = ebosSimulator_.episodeIndex();
|
const int episodeIdx = ebosSimulator_.episodeIndex();
|
||||||
|
const auto& network = schedule()[episodeIdx].network();
|
||||||
|
if (!wellsActive() && !network.active()) {
|
||||||
|
return {false, false};
|
||||||
|
}
|
||||||
|
|
||||||
const int iterationIdx = ebosSimulator_.model().newtonMethod().numIterations();
|
const int iterationIdx = ebosSimulator_.model().newtonMethod().numIterations();
|
||||||
const auto& comm = ebosSimulator_.vanguard().grid().comm();
|
const auto& comm = ebosSimulator_.vanguard().grid().comm();
|
||||||
updateAndCommunicateGroupData(episodeIdx, iterationIdx);
|
updateAndCommunicateGroupData(episodeIdx, iterationIdx);
|
||||||
|
Loading…
Reference in New Issue
Block a user