diff --git a/flow/flow.cpp b/flow/flow.cpp index efa6f5bdb..7fb07b67b 100644 --- a/flow/flow.cpp +++ b/flow/flow.cpp @@ -114,6 +114,9 @@ namespace detail // ----------------- Main program ----------------- int main(int argc, char** argv) { + Dune::Timer externalSetupTimer; + externalSetupTimer.start(); + detail::handleVersionCmdLine(argc, argv); // MPI setup. #if HAVE_DUNE_FEM @@ -221,13 +224,13 @@ int main(int argc, char** argv) // oil-gas if (phases.active( Opm::Phase::GAS )) { - Opm::flowEbosGasOilSetDeck(*deck, *eclipseState, *schedule, *summaryConfig); + Opm::flowEbosGasOilSetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig); return Opm::flowEbosGasOilMain(argc, argv); } // oil-water else if ( phases.active( Opm::Phase::WATER ) ) { - Opm::flowEbosOilWaterSetDeck(*deck, *eclipseState, *schedule, *summaryConfig); + Opm::flowEbosOilWaterSetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig); return Opm::flowEbosOilWaterMain(argc, argv); } else { @@ -255,26 +258,26 @@ int main(int argc, char** argv) } if ( phases.size() == 3 ) { // oil water polymer case - Opm::flowEbosOilWaterPolymerSetDeck(*deck, *eclipseState, *schedule, *summaryConfig); + Opm::flowEbosOilWaterPolymerSetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig); return Opm::flowEbosOilWaterPolymerMain(argc, argv); } else { - Opm::flowEbosPolymerSetDeck(*deck, *eclipseState, *schedule, *summaryConfig); + Opm::flowEbosPolymerSetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig); return Opm::flowEbosPolymerMain(argc, argv); } } // Solvent case else if ( phases.active( Opm::Phase::SOLVENT ) ) { - Opm::flowEbosSolventSetDeck(*deck, *eclipseState, *schedule, *summaryConfig); + Opm::flowEbosSolventSetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig); return Opm::flowEbosSolventMain(argc, argv); } // Energy case else if (eclipseState->getSimulationConfig().isThermal()) { - Opm::flowEbosEnergySetDeck(*deck, *eclipseState, *schedule, *summaryConfig); + Opm::flowEbosEnergySetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig); return Opm::flowEbosEnergyMain(argc, argv); } // Blackoil case else if( phases.size() == 3 ) { - Opm::flowEbosBlackoilSetDeck(*deck, *eclipseState, *schedule, *summaryConfig); + Opm::flowEbosBlackoilSetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig); return Opm::flowEbosBlackoilMain(argc, argv); } else diff --git a/flow/flow_ebos_blackoil.cpp b/flow/flow_ebos_blackoil.cpp index d4ff3f996..5ab51aba3 100644 --- a/flow/flow_ebos_blackoil.cpp +++ b/flow/flow_ebos_blackoil.cpp @@ -34,11 +34,12 @@ namespace Opm { -void flowEbosBlackoilSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) +void flowEbosBlackoilSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) { typedef TTAG(EclFlowProblem) TypeTag; typedef GET_PROP_TYPE(TypeTag, Vanguard) Vanguard; + Vanguard::setExternalSetupTime(setupTime); Vanguard::setExternalDeck(&deck, &eclState); Vanguard::setExternalSchedule(&schedule); Vanguard::setExternalSummaryConfig(&summaryConfig); diff --git a/flow/flow_ebos_blackoil.hpp b/flow/flow_ebos_blackoil.hpp index 78199fe45..236a168fb 100644 --- a/flow/flow_ebos_blackoil.hpp +++ b/flow/flow_ebos_blackoil.hpp @@ -23,7 +23,7 @@ #include namespace Opm { -void flowEbosBlackoilSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); +void flowEbosBlackoilSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); int flowEbosBlackoilMain(int argc, char** argv); } diff --git a/flow/flow_ebos_energy.cpp b/flow/flow_ebos_energy.cpp index ec535186b..f724e79fd 100644 --- a/flow/flow_ebos_energy.cpp +++ b/flow/flow_ebos_energy.cpp @@ -36,11 +36,12 @@ SET_BOOL_PROP(EclFlowEnergyProblem, EnableEnergy, true); }} namespace Opm { -void flowEbosEnergySetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) +void flowEbosEnergySetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) { typedef TTAG(EclFlowEnergyProblem) TypeTag; typedef GET_PROP_TYPE(TypeTag, Vanguard) Vanguard; + Vanguard::setExternalSetupTime(setupTime); Vanguard::setExternalDeck(&deck, &eclState); Vanguard::setExternalSchedule(&schedule); Vanguard::setExternalSummaryConfig(&summaryConfig); diff --git a/flow/flow_ebos_energy.hpp b/flow/flow_ebos_energy.hpp index 50f95e08b..7ef535e84 100644 --- a/flow/flow_ebos_energy.hpp +++ b/flow/flow_ebos_energy.hpp @@ -23,7 +23,7 @@ #include namespace Opm { -void flowEbosEnergySetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); +void flowEbosEnergySetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); int flowEbosEnergyMain(int argc, char** argv); } diff --git a/flow/flow_ebos_gasoil.cpp b/flow/flow_ebos_gasoil.cpp index 512e0a82a..f07251d11 100644 --- a/flow/flow_ebos_gasoil.cpp +++ b/flow/flow_ebos_gasoil.cpp @@ -58,11 +58,12 @@ public: }} namespace Opm { -void flowEbosGasOilSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) +void flowEbosGasOilSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) { typedef TTAG(EclFlowGasOilProblem) TypeTag; typedef GET_PROP_TYPE(TypeTag, Vanguard) Vanguard; + Vanguard::setExternalSetupTime(setupTime); Vanguard::setExternalDeck(&deck, &eclState); Vanguard::setExternalSchedule(&schedule); Vanguard::setExternalSummaryConfig(&summaryConfig); diff --git a/flow/flow_ebos_gasoil.hpp b/flow/flow_ebos_gasoil.hpp index 773173e2c..fe83bf3bb 100644 --- a/flow/flow_ebos_gasoil.hpp +++ b/flow/flow_ebos_gasoil.hpp @@ -23,7 +23,7 @@ #include namespace Opm { -void flowEbosGasOilSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); +void flowEbosGasOilSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); int flowEbosGasOilMain(int argc, char** argv); } diff --git a/flow/flow_ebos_oilwater.cpp b/flow/flow_ebos_oilwater.cpp index 025e8e393..729dcc9cb 100644 --- a/flow/flow_ebos_oilwater.cpp +++ b/flow/flow_ebos_oilwater.cpp @@ -58,11 +58,12 @@ public: }} namespace Opm { -void flowEbosOilWaterSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) +void flowEbosOilWaterSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) { typedef TTAG(EclFlowOilWaterProblem) TypeTag; typedef GET_PROP_TYPE(TypeTag, Vanguard) Vanguard; + Vanguard::setExternalSetupTime(setupTime); Vanguard::setExternalDeck(&deck, &eclState); Vanguard::setExternalSchedule(&schedule); Vanguard::setExternalSummaryConfig(&summaryConfig); diff --git a/flow/flow_ebos_oilwater.hpp b/flow/flow_ebos_oilwater.hpp index 61f887c90..09168358f 100644 --- a/flow/flow_ebos_oilwater.hpp +++ b/flow/flow_ebos_oilwater.hpp @@ -23,7 +23,7 @@ #include namespace Opm { -void flowEbosOilWaterSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); +void flowEbosOilWaterSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); int flowEbosOilWaterMain(int argc, char** argv); } diff --git a/flow/flow_ebos_oilwater_polymer.cpp b/flow/flow_ebos_oilwater_polymer.cpp index ae8d1c1c0..d50c73133 100644 --- a/flow/flow_ebos_oilwater_polymer.cpp +++ b/flow/flow_ebos_oilwater_polymer.cpp @@ -59,11 +59,12 @@ public: }} namespace Opm { -void flowEbosOilWaterPolymerSetDeck(Deck& deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) +void flowEbosOilWaterPolymerSetDeck(double setupTime, Deck& deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) { typedef TTAG(EclFlowOilWaterPolymerProblem) TypeTag; typedef GET_PROP_TYPE(TypeTag, Vanguard) Vanguard; + Vanguard::setExternalSetupTime(setupTime); Vanguard::setExternalDeck(&deck, &eclState); Vanguard::setExternalSchedule(&schedule); Vanguard::setExternalSummaryConfig(&summaryConfig); diff --git a/flow/flow_ebos_oilwater_polymer.hpp b/flow/flow_ebos_oilwater_polymer.hpp index 9867798a2..67556e2ce 100644 --- a/flow/flow_ebos_oilwater_polymer.hpp +++ b/flow/flow_ebos_oilwater_polymer.hpp @@ -23,7 +23,7 @@ #include namespace Opm { -void flowEbosOilWaterPolymerSetDeck(Deck& deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); +void flowEbosOilWaterPolymerSetDeck(double setupTime, Deck& deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); int flowEbosOilWaterPolymerMain(int argc, char** argv); } diff --git a/flow/flow_ebos_polymer.cpp b/flow/flow_ebos_polymer.cpp index 2a2acc685..abc86e6ee 100644 --- a/flow/flow_ebos_polymer.cpp +++ b/flow/flow_ebos_polymer.cpp @@ -36,11 +36,12 @@ SET_BOOL_PROP(EclFlowPolymerProblem, EnablePolymer, true); }} namespace Opm { -void flowEbosPolymerSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) +void flowEbosPolymerSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) { typedef TTAG(EclFlowPolymerProblem) TypeTag; typedef GET_PROP_TYPE(TypeTag, Vanguard) Vanguard; + Vanguard::setExternalSetupTime(setupTime); Vanguard::setExternalDeck(&deck, &eclState); Vanguard::setExternalSchedule(&schedule); Vanguard::setExternalSummaryConfig(&summaryConfig); diff --git a/flow/flow_ebos_polymer.hpp b/flow/flow_ebos_polymer.hpp index ee1696904..7e6954112 100644 --- a/flow/flow_ebos_polymer.hpp +++ b/flow/flow_ebos_polymer.hpp @@ -23,7 +23,7 @@ #include namespace Opm { -void flowEbosPolymerSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); +void flowEbosPolymerSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); int flowEbosPolymerMain(int argc, char** argv); } diff --git a/flow/flow_ebos_solvent.cpp b/flow/flow_ebos_solvent.cpp index 29e6f966c..8b7251adc 100644 --- a/flow/flow_ebos_solvent.cpp +++ b/flow/flow_ebos_solvent.cpp @@ -36,11 +36,12 @@ SET_BOOL_PROP(EclFlowSolventProblem, EnableSolvent, true); }} namespace Opm { -void flowEbosSolventSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) +void flowEbosSolventSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig) { typedef TTAG(EclFlowSolventProblem) TypeTag; typedef GET_PROP_TYPE(TypeTag, Vanguard) Vanguard; + Vanguard::setExternalSetupTime(setupTime); Vanguard::setExternalDeck(&deck, &eclState); Vanguard::setExternalSchedule(&schedule); Vanguard::setExternalSummaryConfig(&summaryConfig); diff --git a/flow/flow_ebos_solvent.hpp b/flow/flow_ebos_solvent.hpp index ae188232d..6dc6ec54d 100644 --- a/flow/flow_ebos_solvent.hpp +++ b/flow/flow_ebos_solvent.hpp @@ -24,7 +24,7 @@ namespace Opm { -void flowEbosSolventSetDeck(Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); +void flowEbosSolventSetDeck(double setupTime, Deck &deck, EclipseState& eclState, Schedule& schedule, SummaryConfig& summaryConfig); int flowEbosSolventMain(int argc, char** argv); }