changed: remove support for internal deck handling in simulators

This commit is contained in:
Arne Morten Kvarving 2022-06-14 10:09:35 +02:00
parent c793aff5d1
commit 371c8058bc
23 changed files with 30 additions and 49 deletions

View File

@ -39,7 +39,6 @@
#include <opm/input/eclipse/Parser/ErrorGuard.hpp> #include <opm/input/eclipse/Parser/ErrorGuard.hpp>
#include <opm/input/eclipse/Parser/ParseContext.hpp> #include <opm/input/eclipse/Parser/ParseContext.hpp>
#include <opm/input/eclipse/Python/Python.hpp> #include <opm/input/eclipse/Python/Python.hpp>
#include <opm/simulators/utils/readDeck.hpp>
#include <dune/common/version.hh> #include <dune/common/version.hh>
#include <dune/common/parallel/mpihelper.hh> #include <dune/common/parallel/mpihelper.hh>
@ -54,10 +53,9 @@
namespace Opm { namespace Opm {
double EclGenericVanguard::setupTime_ = 0.0; double EclGenericVanguard::setupTime_ = 0.0;
std::shared_ptr<Deck> EclGenericVanguard::deck_;
std::unique_ptr<ParseContext> EclGenericVanguard::externalParseContext_; std::unique_ptr<ParseContext> EclGenericVanguard::externalParseContext_;
std::unique_ptr<ErrorGuard> EclGenericVanguard::externalErrorGuard_; std::unique_ptr<ErrorGuard> EclGenericVanguard::externalErrorGuard_;
std::shared_ptr<Deck> EclGenericVanguard::externalDeck_;
bool EclGenericVanguard::externalDeckSet_ = false;
std::shared_ptr<EclipseState> EclGenericVanguard::externalEclState_; std::shared_ptr<EclipseState> EclGenericVanguard::externalEclState_;
std::shared_ptr<Schedule> EclGenericVanguard::externalEclSchedule_; std::shared_ptr<Schedule> EclGenericVanguard::externalEclSchedule_;
std::shared_ptr<SummaryConfig> EclGenericVanguard::externalEclSummaryConfig_; std::shared_ptr<SummaryConfig> EclGenericVanguard::externalEclSummaryConfig_;
@ -105,16 +103,14 @@ void EclGenericVanguard::setExternalSummaryConfig(
externalEclSummaryConfig_ = std::move(summaryConfig); externalEclSummaryConfig_ = std::move(summaryConfig);
} }
void EclGenericVanguard::setExternalDeck(std::shared_ptr<Deck> deck) void EclGenericVanguard::setDeck(std::shared_ptr<Deck> deck)
{ {
externalDeck_ = std::move(deck); deck_ = std::move(deck);
externalDeckSet_ = true;
} }
void EclGenericVanguard::setExternalDeck(std::unique_ptr<Deck> deck) void EclGenericVanguard::setDeck(std::unique_ptr<Deck> deck)
{ {
externalDeck_ = std::move(deck); deck_ = std::move(deck);
externalDeckSet_ = true;
} }
void EclGenericVanguard::setExternalEclState(std::shared_ptr<EclipseState> eclState) void EclGenericVanguard::setExternalEclState(std::shared_ptr<EclipseState> eclState)
@ -266,10 +262,8 @@ void EclGenericVanguard::init()
// Check that we are in one of the known configurations for external variables // Check that we are in one of the known configurations for external variables
// and move them to internal // and move them to internal
if (externalDeck_) if (true)
{ {
deck_ = std::move(externalDeck_);
if (externalParseContext_ && externalErrorGuard_ ) if (externalParseContext_ && externalErrorGuard_ )
{ {
parseContext_ = std::move(externalParseContext_); parseContext_ = std::move(externalParseContext_);
@ -296,11 +290,6 @@ void EclGenericVanguard::init()
parseContext_ = createParseContext(ignoredKeywords_, eclStrictParsing_); parseContext_ = createParseContext(ignoredKeywords_, eclStrictParsing_);
} }
readDeck(EclGenericVanguard::comm(), fileName_, deck_, eclState_, eclSchedule_, udqState_, actionState_, wtestState_,
eclSummaryConfig_, std::move(errorGuard), python,
std::move(parseContext_), /* initFromRestart = */ false,
/* checkDeck = */ enableExperiments_, outputInterval_);
if (EclGenericVanguard::externalUDQState_) if (EclGenericVanguard::externalUDQState_)
this->udqState_ = std::move(EclGenericVanguard::externalUDQState_); this->udqState_ = std::move(EclGenericVanguard::externalUDQState_);
else else

View File

@ -120,15 +120,9 @@ public:
/*! /*!
* \brief Set the Opm::Deck object which ought to be used when the simulator vanguard * \brief Set the Opm::Deck object which ought to be used when the simulator vanguard
* is instantiated. * is instantiated.
*
* This is basically an optimization: In cases where the ECL input deck must be
* examined to decide which simulator ought to be used, this avoids having to parse
* the input twice. When this method is used, the caller is responsible for lifetime
* management of these two objects, i.e., they are not allowed to be deleted as long
* as the simulator vanguard object is alive.
*/ */
static void setExternalDeck(std::shared_ptr<Deck> deck); static void setDeck(std::shared_ptr<Deck> deck);
static void setExternalDeck(std::unique_ptr<Deck> deck); static void setDeck(std::unique_ptr<Deck> deck);
/*! /*!
* \brief Set the Opm::EclipseState object which ought to be used when the simulator * \brief Set the Opm::EclipseState object which ought to be used when the simulator
@ -321,12 +315,10 @@ protected:
static std::unique_ptr<ErrorGuard> externalErrorGuard_; static std::unique_ptr<ErrorGuard> externalErrorGuard_;
// These variables may be owned by both Python and the simulator // These variables may be owned by both Python and the simulator
static std::shared_ptr<Deck> externalDeck_;
static std::shared_ptr<EclipseState> externalEclState_; static std::shared_ptr<EclipseState> externalEclState_;
static std::shared_ptr<Schedule> externalEclSchedule_; static std::shared_ptr<Schedule> externalEclSchedule_;
static std::shared_ptr<SummaryConfig> externalEclSummaryConfig_; static std::shared_ptr<SummaryConfig> externalEclSummaryConfig_;
static bool externalDeckSet_;
static std::unique_ptr<UDQState> externalUDQState_; static std::unique_ptr<UDQState> externalUDQState_;
static std::unique_ptr<Action::State> externalActionState_; static std::unique_ptr<Action::State> externalActionState_;
static std::unique_ptr<WellTestState> externalWTestState_; static std::unique_ptr<WellTestState> externalWTestState_;
@ -366,7 +358,7 @@ protected:
std::unique_ptr<ErrorGuard> errorGuard_; std::unique_ptr<ErrorGuard> errorGuard_;
std::shared_ptr<Python> python; std::shared_ptr<Python> python;
// These variables may be owned by both Python and the simulator // These variables may be owned by both Python and the simulator
std::shared_ptr<Deck> deck_; static std::shared_ptr<Deck> deck_;
std::shared_ptr<EclipseState> eclState_; std::shared_ptr<EclipseState> eclState_;
std::shared_ptr<Schedule> eclSchedule_; std::shared_ptr<Schedule> eclSchedule_;
std::shared_ptr<SummaryConfig> eclSummaryConfig_; std::shared_ptr<SummaryConfig> eclSummaryConfig_;

View File

@ -36,7 +36,7 @@ void flowEbosBlackoilSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalUDQState(std::move(udqState)); Vanguard::setExternalUDQState(std::move(udqState));

View File

@ -46,7 +46,7 @@ void flowEbosBrineSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -56,7 +56,7 @@ void flowEbosBrinePrecsaltVapwatSetDeck(double setupTime, std::shared_ptr<Deck>
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -51,7 +51,7 @@ void flowEbosBrineSaltPrecipitationSetDeck(double setupTime, std::shared_ptr<Dec
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -46,7 +46,7 @@ void flowEbosEnergySetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -46,7 +46,7 @@ void flowEbosExtboSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -46,7 +46,7 @@ void flowEbosFoamSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -67,7 +67,7 @@ void flowEbosGasOilSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -71,7 +71,7 @@ void flowEbosGasOilEnergySetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -70,7 +70,7 @@ void flowEbosGasWaterSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -70,7 +70,7 @@ void flowEbosGasWaterBrineSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -81,7 +81,7 @@ void flowEbosGasWaterSaltprecVapwatSetDeck(double setupTime, std::shared_ptr<Dec
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -70,7 +70,7 @@ void flowEbosMICPSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -67,7 +67,7 @@ void flowEbosOilWaterSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -70,7 +70,7 @@ void flowEbosOilWaterBrineSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -70,7 +70,7 @@ void flowEbosOilWaterPolymerSetDeck(double setupTime, std::shared_ptr<Deck> deck
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -66,7 +66,7 @@ void flowEbosWaterOnlySetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -73,7 +73,7 @@ void flowEbosWaterOnlyEnergySetDeck(double setupTime, std::shared_ptr<Deck> deck
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -46,7 +46,7 @@ void flowEbosPolymerSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -46,7 +46,7 @@ void flowEbosSolventSetDeck(double setupTime, std::shared_ptr<Deck> deck,
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setSetupTime(setupTime); Vanguard::setSetupTime(setupTime);
Vanguard::setExternalDeck(std::move(deck)); Vanguard::setDeck(std::move(deck));
Vanguard::setExternalEclState(std::move(eclState)); Vanguard::setExternalEclState(std::move(eclState));
Vanguard::setExternalSchedule(std::move(schedule)); Vanguard::setExternalSchedule(std::move(schedule));
Vanguard::setExternalSummaryConfig(std::move(summaryConfig)); Vanguard::setExternalSummaryConfig(std::move(summaryConfig));

View File

@ -104,7 +104,7 @@ void flowEbosSetDeck(std::shared_ptr<Deck> deck,
{ {
using Vanguard = GetPropType<TypeTag, Properties::Vanguard>; using Vanguard = GetPropType<TypeTag, Properties::Vanguard>;
Vanguard::setExternalDeck(deck); Vanguard::setDeck(deck);
Vanguard::setExternalEclState(eclState); Vanguard::setExternalEclState(eclState);
Vanguard::setExternalSchedule(schedule); Vanguard::setExternalSchedule(schedule);
Vanguard::setExternalSummaryConfig(summaryConfig); Vanguard::setExternalSummaryConfig(summaryConfig);