mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Add ErrorGuard argument when parsing
This commit is contained in:
@@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
#include <opm/parser/eclipse/Parser/Parser.hpp>
|
#include <opm/parser/eclipse/Parser/Parser.hpp>
|
||||||
#include <opm/parser/eclipse/Parser/ParseContext.hpp>
|
#include <opm/parser/eclipse/Parser/ParseContext.hpp>
|
||||||
|
#include <opm/parser/eclipse/Parser/ErrorGuard.hpp>
|
||||||
#include <opm/parser/eclipse/Deck/Deck.hpp>
|
#include <opm/parser/eclipse/Deck/Deck.hpp>
|
||||||
#include <opm/parser/eclipse/EclipseState/checkDeck.hpp>
|
#include <opm/parser/eclipse/EclipseState/checkDeck.hpp>
|
||||||
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
|
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
|
||||||
@@ -211,6 +212,7 @@ public:
|
|||||||
tmp.emplace_back(Opm::ParseContext::SUMMARY_UNKNOWN_WELL, Opm::InputError::WARN);
|
tmp.emplace_back(Opm::ParseContext::SUMMARY_UNKNOWN_WELL, Opm::InputError::WARN);
|
||||||
tmp.emplace_back(Opm::ParseContext::SUMMARY_UNKNOWN_GROUP, Opm::InputError::WARN);
|
tmp.emplace_back(Opm::ParseContext::SUMMARY_UNKNOWN_GROUP, Opm::InputError::WARN);
|
||||||
Opm::ParseContext parseContext(tmp);
|
Opm::ParseContext parseContext(tmp);
|
||||||
|
Opm::ErrorGuard errorGuard;
|
||||||
|
|
||||||
const std::string ignoredKeywords = EWOMS_GET_PARAM(TypeTag, std::string, IgnoreKeywords);
|
const std::string ignoredKeywords = EWOMS_GET_PARAM(TypeTag, std::string, IgnoreKeywords);
|
||||||
if (ignoredKeywords.size() > 0) {
|
if (ignoredKeywords.size() > 0) {
|
||||||
@@ -231,8 +233,8 @@ public:
|
|||||||
std::cout << "Reading the deck file '" << fileName << "'" << std::endl;
|
std::cout << "Reading the deck file '" << fileName << "'" << std::endl;
|
||||||
|
|
||||||
Opm::Parser parser;
|
Opm::Parser parser;
|
||||||
internalDeck_.reset(new Opm::Deck(parser.parseFile(fileName , parseContext)));
|
internalDeck_.reset(new Opm::Deck(parser.parseFile(fileName , parseContext, errorGuard)));
|
||||||
internalEclState_.reset(new Opm::EclipseState(*internalDeck_, parseContext));
|
internalEclState_.reset(new Opm::EclipseState(*internalDeck_, parseContext, errorGuard));
|
||||||
|
|
||||||
deck_ = &(*internalDeck_);
|
deck_ = &(*internalDeck_);
|
||||||
eclState_ = &(*internalEclState_);
|
eclState_ = &(*internalEclState_);
|
||||||
@@ -249,7 +251,7 @@ public:
|
|||||||
// create the schedule object. Note that if eclState is supposed to represent
|
// create the schedule object. Note that if eclState is supposed to represent
|
||||||
// the internalized version of the deck, this constitutes a layering
|
// the internalized version of the deck, this constitutes a layering
|
||||||
// violation.
|
// violation.
|
||||||
internalEclSchedule_.reset(new Opm::Schedule(*deck_, *eclState_, parseContext));
|
internalEclSchedule_.reset(new Opm::Schedule(*deck_, *eclState_, parseContext, errorGuard));
|
||||||
eclSchedule_ = &(*internalEclSchedule_);
|
eclSchedule_ = &(*internalEclSchedule_);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -262,13 +264,21 @@ public:
|
|||||||
internalEclSummaryConfig_.reset(new Opm::SummaryConfig(*deck_,
|
internalEclSummaryConfig_.reset(new Opm::SummaryConfig(*deck_,
|
||||||
*eclSchedule_,
|
*eclSchedule_,
|
||||||
eclState_->getTableManager(),
|
eclState_->getTableManager(),
|
||||||
parseContext));
|
parseContext,
|
||||||
|
errorGuard));
|
||||||
|
|
||||||
eclSummaryConfig_ = &(*internalEclSummaryConfig_);
|
eclSummaryConfig_ = &(*internalEclSummaryConfig_);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
eclSummaryConfig_ = externalEclSummaryConfig_;
|
eclSummaryConfig_ = externalEclSummaryConfig_;
|
||||||
|
|
||||||
|
if (errorGuard) {
|
||||||
|
errorGuard.dump();
|
||||||
|
errorGuard.clear();
|
||||||
|
|
||||||
|
throw std::runtime_error("Unrecoverable errors were encountered while loading input.");
|
||||||
|
}
|
||||||
|
|
||||||
// Possibly override IOConfig setting for how often RESTART files should get
|
// Possibly override IOConfig setting for how often RESTART files should get
|
||||||
// written to disk (every N report step)
|
// written to disk (every N report step)
|
||||||
int outputInterval = EWOMS_GET_PARAM(TypeTag, int, EclOutputInterval);
|
int outputInterval = EWOMS_GET_PARAM(TypeTag, int, EclOutputInterval);
|
||||||
|
|||||||
Reference in New Issue
Block a user