diff --git a/opm/simulators/flow/GenericCpGridVanguard.cpp b/opm/simulators/flow/GenericCpGridVanguard.cpp index b06942e02f5..d5843f1dd8d 100644 --- a/opm/simulators/flow/GenericCpGridVanguard.cpp +++ b/opm/simulators/flow/GenericCpGridVanguard.cpp @@ -222,9 +222,13 @@ doLoadBalance_(const Dune::EdgeWeightMethod edgeWeightsMethod, : std::vector{}; const auto& possibleFutureConnections = schedule.getPossibleFutureConnections(); + // Mechanics couples cells across zero-transmissibility faces, + // so the overlap layer must not be pruned by transmissibility + // in mechanical runs (same reasoning as for thermal runs). const bool useTransToFilterOverlap = !(eclState1.getSimulationConfig().isThermal() || - eclState1.getSimulationConfig().isTemp()); + eclState1.getSimulationConfig().isTemp() || + eclState1.runspec().mech()); // Distribute the grid and switch to the distributed view. if (mpiSize > 1) { this->distributeGrid(edgeWeightsMethod, ownersFirst, diff --git a/opm/simulators/utils/readDeck.cpp b/opm/simulators/utils/readDeck.cpp index a8c22b96cf1..c1cd7d2e70e 100644 --- a/opm/simulators/utils/readDeck.cpp +++ b/opm/simulators/utils/readDeck.cpp @@ -383,17 +383,24 @@ namespace { eclipseState = createEclipseState(comm, deck); } + // A fracture model reads its seeds out of the deck during the run, not + // only at setup, so a FRAC run has to retain the Schedule keywords + // whatever the general setting says. Decided here rather than by the + // caller because it needs the parsed RUNSPEC. + const auto keepScheduleKeywords = + keepKeywords || eclipseState->runspec().frac(); + if (eclipseState->getInitConfig().restartRequested()) { loadObjectsFromRestart(deck, parser, *parseContext, initFromRestart, outputInterval, - lowActionParsingStrictness, keepKeywords, + lowActionParsingStrictness, keepScheduleKeywords, *eclipseState, std::move(python), schedule, udqState, actionState, wtestState, errorGuard); } else { createNonRestartDynamicObjects(deck, *eclipseState, *parseContext, - lowActionParsingStrictness, keepKeywords, + lowActionParsingStrictness, keepScheduleKeywords, std::move(python), schedule, udqState, actionState, wtestState, errorGuard, slaveMode);