Update to shared_ptr-less parser interface.

This commit is contained in:
Jørgen Kvalsvik
2016-10-14 09:23:26 +02:00
parent 93ffb318cd
commit 1c6a4b34da
54 changed files with 410 additions and 425 deletions

View File

@@ -46,13 +46,10 @@
struct SetupSimple {
SetupSimple()
SetupSimple() :
deck( Opm::Parser{}.parseFile("fluid.data") ),
eclState( deck, Opm::ParseContext() )
{
Opm::ParseContext parseContext;
Opm::ParserPtr parser(new Opm::Parser());
deck = parser->parseFile("fluid.data", parseContext);
eclState.reset(new Opm::EclipseState(*deck , parseContext));
param.disableOutput();
param.insertParameter("init_rock" , "false" );
param.insertParameter("threephase_model", "simple");
@@ -61,8 +58,8 @@ struct SetupSimple {
}
Opm::parameter::ParameterGroup param;
Opm::DeckConstPtr deck;
Opm::EclipseStateConstPtr eclState;
Opm::Deck deck;
Opm::EclipseState eclState;
};
@@ -71,7 +68,7 @@ struct TestFixture : public Setup
{
TestFixture()
: Setup()
, grid (*eclState->getInputGrid())
, grid (eclState.getInputGrid())
, boprops_ad(deck, eclState, *grid.c_grid(), param.getDefault("init_rock", false))
{
}
@@ -89,7 +86,7 @@ struct TestFixtureAd : public Setup
{
TestFixtureAd()
: Setup()
, grid (*eclState->getInputGrid())
, grid (eclState.getInputGrid())
, props(deck, eclState, *grid.c_grid(),
param.getDefault("init_rock", false))
{

View File

@@ -72,13 +72,13 @@ struct SetupMSW {
SetupMSW()
{
Opm::ParseContext parse_context;
Opm::ParserPtr parser(new Opm::Parser());
Opm::DeckConstPtr deck = parser->parseFile("msw.data", parse_context);
Opm::EclipseStateConstPtr ecl_state(new Opm::EclipseState(*deck , parse_context));
Opm::Parser parser;
auto deck = parser.parseFile("msw.data", parse_context);
Opm::EclipseState ecl_state(deck , parse_context);
// Create grid.
const std::vector<double>& porv =
ecl_state->get3DProperties().getDoubleGridProperty("PORV").getData();
ecl_state.get3DProperties().getDoubleGridProperty("PORV").getData();
std::unique_ptr<GridInit> grid_init(new GridInit(ecl_state, porv));
const Grid& grid = grid_init->grid();
@@ -117,7 +117,7 @@ struct SetupMSW {
std::unordered_set<std::string>());
const Wells* wells = wells_manager.c_wells();
const auto wells_ecl = ecl_state->getSchedule()->getWells(current_timestep);
const auto wells_ecl = ecl_state.getSchedule().getWells(current_timestep);
ms_wells.reset(new Opm::MultisegmentWells(wells, wells_ecl, current_timestep));
};

View File

@@ -46,13 +46,10 @@
struct SetupSimple {
SetupSimple()
SetupSimple() :
deck( Opm::Parser{}.parseFile( "fluid.data" ) ),
eclState( deck, Opm::ParseContext() )
{
Opm::ParserPtr parser(new Opm::Parser());
Opm::ParseContext parseContext;
deck = parser->parseFile("fluid.data" , parseContext);
eclState.reset(new Opm::EclipseState(*deck , parseContext));
param.disableOutput();
param.insertParameter("init_rock" , "false" );
param.insertParameter("threephase_model", "simple");
@@ -61,8 +58,8 @@ struct SetupSimple {
}
Opm::parameter::ParameterGroup param;
Opm::DeckConstPtr deck;
Opm::EclipseStateConstPtr eclState;
Opm::Deck deck;
Opm::EclipseState eclState;
};
@@ -71,7 +68,7 @@ struct TestFixture : public Setup
{
TestFixture()
: Setup()
, grid (*eclState->getInputGrid())
, grid (eclState.getInputGrid())
, ad_props(deck, eclState, *grid.c_grid(), param.getDefault("init_rock", false))
{
}

View File

@@ -91,10 +91,9 @@ SOF2 \n\
BOOST_AUTO_TEST_CASE(Construction)
{
Opm::ParseContext parseContext;
Opm::ParserPtr parser(new Opm::Parser());
Opm::DeckPtr deck = parser->parseString(deckData + solventData, parseContext);
Opm::EclipseStateConstPtr eclState;
eclState.reset(new Opm::EclipseState(*deck , parseContext));
Opm::Parser parser;
auto deck = parser.parseString(deckData + solventData, parseContext);
Opm::EclipseState eclState(deck , parseContext);
std::vector<int> global_ind = {0 , 1 , 2};
Opm::SolventPropsAdFromDeck solventprops(deck, eclState, 3, global_ind.data());
}
@@ -102,10 +101,9 @@ BOOST_AUTO_TEST_CASE(Construction)
BOOST_AUTO_TEST_CASE(SolventData)
{
Opm::ParseContext parseContext;
Opm::ParserPtr parser(new Opm::Parser());
Opm::DeckPtr deck = parser->parseString(deckData + solventData, parseContext);
Opm::EclipseStateConstPtr eclState;
eclState.reset(new Opm::EclipseState(*deck , parseContext));
Opm::Parser parser;
auto deck = parser.parseString(deckData + solventData, parseContext);
Opm::EclipseState eclState(deck , parseContext);
std::vector<int> global_ind = {0 , 1 , 2};
Opm::SolventPropsAdFromDeck solventprops(deck, eclState, 3, global_ind.data());
@@ -128,10 +126,9 @@ PMISC\n\
BOOST_AUTO_TEST_CASE(PMISC)
{
Opm::ParseContext parseContext;
Opm::ParserPtr parser(new Opm::Parser());
Opm::DeckPtr deck = parser->parseString(deckData + solventData + pmiscData, parseContext);
Opm::EclipseStateConstPtr eclState;
eclState.reset(new Opm::EclipseState(*deck , parseContext));
Opm::Parser parser;
auto deck = parser.parseString(deckData + solventData + pmiscData, parseContext);
Opm::EclipseState eclState(deck , parseContext);
const Opm::SolventPropsAdFromDeck::Cells cells(3, 0);
typedef Opm::SolventPropsAdFromDeck::V V;
std::vector<int> global_ind = {0 , 1 , 2};
@@ -161,10 +158,9 @@ TLPMIXPA\n\
BOOST_AUTO_TEST_CASE(TLPMIXPA)
{
Opm::ParseContext parseContext;
Opm::ParserPtr parser(new Opm::Parser());
Opm::DeckPtr deck = parser->parseString(deckData + solventData + tlpmixpaData, parseContext);
Opm::EclipseStateConstPtr eclState;
eclState.reset(new Opm::EclipseState(*deck , parseContext));
Opm::Parser parser;
auto deck = parser.parseString(deckData + solventData + tlpmixpaData, parseContext);
Opm::EclipseState eclState(deck , parseContext);
const Opm::SolventPropsAdFromDeck::Cells cells(3, 0);
typedef Opm::SolventPropsAdFromDeck::V V;
const int* global_ind = new int[3] {0 , 1 , 2};
@@ -185,11 +181,10 @@ BOOST_AUTO_TEST_CASE(TLPMIXPA)
BOOST_AUTO_TEST_CASE(TLPMIXPA_NOT_SPECIFIED)
{
Opm::ParseContext parseContext;
Opm::ParserPtr parser(new Opm::Parser());
Opm::Parser parser;
// no pmisc data and default tlpmixdata i.e it should throw
Opm::DeckPtr deck = parser->parseString(deckData + solventData, parseContext);
Opm::EclipseStateConstPtr eclState;
eclState.reset(new Opm::EclipseState(*deck , parseContext));
auto deck = parser.parseString(deckData + solventData, parseContext);
Opm::EclipseState eclState(deck , parseContext);
const Opm::SolventPropsAdFromDeck::Cells cells(3, 0);
const int* global_ind = new int[3] {0 , 1 , 2};
Opm::SolventPropsAdFromDeck solventprops(deck, eclState, 3, global_ind);
@@ -215,10 +210,9 @@ TLPMIXPA\n\
BOOST_AUTO_TEST_CASE(TLPMIXPA_DEFAULT)
{
Opm::ParseContext parseContext;
Opm::ParserPtr parser(new Opm::Parser());
Opm::DeckPtr deck = parser->parseString(deckData + solventData + pmiscData + tlpmixpaDataDefault, parseContext);
Opm::EclipseStateConstPtr eclState;
eclState.reset(new Opm::EclipseState(*deck , parseContext));
Opm::Parser parser;
auto deck = parser.parseString(deckData + solventData + pmiscData + tlpmixpaDataDefault, parseContext);
Opm::EclipseState eclState(deck , parseContext);
const Opm::SolventPropsAdFromDeck::Cells cells(3, 0);
typedef Opm::SolventPropsAdFromDeck::V V;
const int* global_ind = new int[3] {0 , 1 , 2};
@@ -239,11 +233,10 @@ BOOST_AUTO_TEST_CASE(TLPMIXPA_DEFAULT)
BOOST_AUTO_TEST_CASE(TLPMIXPA_DEFAULT_NOPMISC)
{
Opm::ParseContext parseContext;
Opm::ParserPtr parser(new Opm::Parser());
Opm::Parser parser;
// no pmisc data and default tlpmixdata i.e it should throw
Opm::DeckPtr deck = parser->parseString(deckData + solventData + tlpmixpaDataDefault, parseContext);
Opm::EclipseStateConstPtr eclState;
eclState.reset(new Opm::EclipseState(*deck , parseContext));
auto deck = parser.parseString(deckData + solventData + tlpmixpaDataDefault, parseContext);
Opm::EclipseState eclState(deck , parseContext);
const Opm::SolventPropsAdFromDeck::Cells cells(3, 0);
const int* global_ind = new int[3] {0 , 1 , 2};
BOOST_CHECK_THROW(Opm::SolventPropsAdFromDeck solventprops(deck, eclState, 3, global_ind), std::invalid_argument);

View File

@@ -157,15 +157,15 @@ void checkTransmissibilityValues(const G& grid,
BOOST_AUTO_TEST_CASE(TransmissibilityMultipliersLegacyGridInterface)
{
Opm::parameter::ParameterGroup param;
Opm::ParserPtr parser(new Opm::Parser() );
Opm::Parser parser;
Opm::ParseContext parseContext;
/////
// create a DerivedGeology object without any multipliers involved
Opm::DeckConstPtr origDeck = parser->parseString(origDeckString, parseContext);
Opm::EclipseStateConstPtr origEclipseState(new Opm::EclipseState(*origDeck , parseContext));
auto origDeck = parser.parseString(origDeckString, parseContext);
Opm::EclipseState origEclipseState(origDeck , parseContext);
auto origGridManager = std::make_shared<Opm::GridManager>(*origEclipseState->getInputGrid());
auto origGridManager = std::make_shared<Opm::GridManager>(origEclipseState.getInputGrid());
auto origProps = std::make_shared<Opm::BlackoilPropsAdFromDeck>(origDeck, origEclipseState, *(origGridManager->c_grid()));
Opm::DerivedGeology origGeology(*(origGridManager->c_grid()), *origProps, origEclipseState, false);
@@ -173,10 +173,10 @@ BOOST_AUTO_TEST_CASE(TransmissibilityMultipliersLegacyGridInterface)
/////
// create a DerivedGeology object _with_ transmissibility multipliers involved
Opm::DeckConstPtr multDeck = parser->parseString(multDeckString, parseContext);
Opm::EclipseStateConstPtr multEclipseState(new Opm::EclipseState(*multDeck, parseContext));
auto multDeck = parser.parseString(multDeckString, parseContext);
Opm::EclipseState multEclipseState(multDeck, parseContext);
auto multGridManager = std::make_shared<Opm::GridManager>(*multEclipseState->getInputGrid());
auto multGridManager = std::make_shared<Opm::GridManager>(multEclipseState.getInputGrid());
auto multProps = std::make_shared<Opm::BlackoilPropsAdFromDeck>(multDeck, multEclipseState, *(multGridManager->c_grid()));
Opm::DerivedGeology multGeology(*(multGridManager->c_grid()), *multProps, multEclipseState, false);
@@ -185,10 +185,10 @@ BOOST_AUTO_TEST_CASE(TransmissibilityMultipliersLegacyGridInterface)
/////
// create a DerivedGeology object _with_ transmissibility multipliers involved for
// the negative faces
Opm::DeckConstPtr multMinusDeck = parser->parseString(multMinusDeckString, parseContext);
Opm::EclipseStateConstPtr multMinusEclipseState(new Opm::EclipseState(*multMinusDeck , parseContext));
auto multMinusDeck = parser.parseString(multMinusDeckString, parseContext);
Opm::EclipseState multMinusEclipseState(multMinusDeck , parseContext);
auto multMinusGridManager = std::make_shared<Opm::GridManager>(*multMinusEclipseState->getInputGrid());
auto multMinusGridManager = std::make_shared<Opm::GridManager>(multMinusEclipseState.getInputGrid());
auto multMinusProps = std::make_shared<Opm::BlackoilPropsAdFromDeck>(multMinusDeck, multMinusEclipseState, *(multMinusGridManager->c_grid()));
Opm::DerivedGeology multMinusGeology(*(multMinusGridManager->c_grid()), *multMinusProps, multMinusEclipseState, false);
@@ -196,10 +196,10 @@ BOOST_AUTO_TEST_CASE(TransmissibilityMultipliersLegacyGridInterface)
/////
// create a DerivedGeology object with the NTG keyword involved
Opm::DeckConstPtr ntgDeck = parser->parseString(ntgDeckString, parseContext);
Opm::EclipseStateConstPtr ntgEclipseState(new Opm::EclipseState(*ntgDeck, parseContext));
auto ntgDeck = parser.parseString(ntgDeckString, parseContext);
Opm::EclipseState ntgEclipseState(ntgDeck, parseContext);
auto ntgGridManager = std::make_shared<Opm::GridManager>(*ntgEclipseState->getInputGrid());
auto ntgGridManager = std::make_shared<Opm::GridManager>(ntgEclipseState.getInputGrid());
auto ntgProps = std::make_shared<Opm::BlackoilPropsAdFromDeck>(ntgDeck, ntgEclipseState, *(ntgGridManager->c_grid()));
Opm::DerivedGeology ntgGeology(*(ntgGridManager->c_grid()), *ntgProps, ntgEclipseState, false);
@@ -272,16 +272,16 @@ BOOST_AUTO_TEST_CASE(TransmissibilityMultipliersCpGrid)
Dune::MPIHelper::instance(argc, argv);
Opm::parameter::ParameterGroup param;
Opm::ParserPtr parser(new Opm::Parser() );
Opm::Parser parser;
Opm::ParseContext parseContext;
/////
// create a DerivedGeology object without any multipliers involved
Opm::DeckConstPtr origDeck = parser->parseString(origDeckString , parseContext);
Opm::EclipseStateConstPtr origEclipseState(new Opm::EclipseState(*origDeck , parseContext));
auto origDeck = parser.parseString(origDeckString , parseContext);
Opm::EclipseState origEclipseState(origDeck , parseContext);
auto origGrid = std::make_shared<Dune::CpGrid>();
origGrid->processEclipseFormat(*origEclipseState->getInputGrid(), 0.0, false);
origGrid->processEclipseFormat(origEclipseState.getInputGrid(), 0.0, false);
auto origProps = std::make_shared<Opm::BlackoilPropsAdFromDeck>(origDeck,
origEclipseState,
@@ -292,11 +292,11 @@ BOOST_AUTO_TEST_CASE(TransmissibilityMultipliersCpGrid)
/////
// create a DerivedGeology object _with_ transmissibility multipliers involved
Opm::DeckConstPtr multDeck = parser->parseString(multDeckString,parseContext);
Opm::EclipseStateConstPtr multEclipseState(new Opm::EclipseState(*multDeck, parseContext));
auto multDeck = parser.parseString(multDeckString,parseContext);
Opm::EclipseState multEclipseState(multDeck, parseContext);
auto multGrid = std::make_shared<Dune::CpGrid>();
multGrid->processEclipseFormat(*multEclipseState->getInputGrid(), 0.0, false);
multGrid->processEclipseFormat(multEclipseState.getInputGrid(), 0.0, false);
auto multProps = std::make_shared<Opm::BlackoilPropsAdFromDeck>(multDeck, multEclipseState, *multGrid);
@@ -306,11 +306,11 @@ BOOST_AUTO_TEST_CASE(TransmissibilityMultipliersCpGrid)
/////
// create a DerivedGeology object _with_ transmissibility multipliers involved for
// the negative faces
Opm::DeckConstPtr multMinusDeck = parser->parseString(multMinusDeckString , parseContext);
Opm::EclipseStateConstPtr multMinusEclipseState(new Opm::EclipseState(*multMinusDeck, parseContext));
const auto& multMinusDeck = parser.parseString(multMinusDeckString , parseContext);
Opm::EclipseState multMinusEclipseState(multMinusDeck, parseContext);
auto multMinusGrid = std::make_shared<Dune::CpGrid>();
multMinusGrid->processEclipseFormat(*multMinusEclipseState->getInputGrid(), 0.0, false);
multMinusGrid->processEclipseFormat(multMinusEclipseState.getInputGrid(), 0.0, false);
auto multMinusProps = std::make_shared<Opm::BlackoilPropsAdFromDeck>(multMinusDeck, multMinusEclipseState, *multMinusGrid);
@@ -320,11 +320,11 @@ BOOST_AUTO_TEST_CASE(TransmissibilityMultipliersCpGrid)
/////
// create a DerivedGeology object with the NTG keyword involved
Opm::DeckConstPtr ntgDeck = parser->parseString(ntgDeckString, parseContext);
Opm::EclipseStateConstPtr ntgEclipseState(new Opm::EclipseState(*ntgDeck, parseContext));
auto ntgDeck = parser.parseString(ntgDeckString, parseContext);
Opm::EclipseState ntgEclipseState(ntgDeck, parseContext);
auto ntgGrid = std::make_shared<Dune::CpGrid>();
ntgGrid->processEclipseFormat(*ntgEclipseState->getInputGrid(), 0.0, false);
ntgGrid->processEclipseFormat(ntgEclipseState.getInputGrid(), 0.0, false);
auto ntgProps = std::make_shared<Opm::BlackoilPropsAdFromDeck>(ntgDeck, ntgEclipseState, *ntgGrid);

View File

@@ -1043,18 +1043,16 @@ VFPPROD \n\
2 1 1 1 1.0 / \n\
";
Opm::DeckConstPtr deck;
std::shared_ptr<Opm::UnitSystem> units(Opm::UnitSystem::newFIELD());
Opm::ParserPtr parser(new Opm::Parser());
auto units = Opm::UnitSystem::newFIELD();
Opm::Parser parser;
Opm::ParseContext parse_mode;
deck = parser->parseString(table_str, parse_mode);
auto deck = parser.parseString(table_str, parse_mode);
BOOST_REQUIRE(deck->hasKeyword("VFPPROD"));
BOOST_CHECK_EQUAL(deck->count("VFPPROD"), 1);
BOOST_REQUIRE(deck.hasKeyword("VFPPROD"));
BOOST_CHECK_EQUAL(deck.count("VFPPROD"), 1);
Opm::VFPProdTable table;
table.init(deck->getKeyword("VFPPROD", 0), *units);
table.init(deck.getKeyword("VFPPROD", 0), units);
Opm::VFPProdProperties properties(&table);
@@ -1104,21 +1102,20 @@ VFPPROD \n\
*/
BOOST_AUTO_TEST_CASE(ParseInterpolateRealisticVFPPROD)
{
Opm::DeckConstPtr deck;
std::shared_ptr<Opm::UnitSystem> units(Opm::UnitSystem::newMETRIC());
auto units = Opm::UnitSystem::newMETRIC();
Opm::ParserPtr parser(new Opm::Parser());
Opm::Parser parser;
Opm::ParseContext parse_mode;
boost::filesystem::path file("VFPPROD2");
deck = parser->parseFile(file.string(), parse_mode);
auto deck = parser.parseFile(file.string(), parse_mode);
Opm::checkDeck(deck, parser);
BOOST_REQUIRE(deck->hasKeyword("VFPPROD"));
BOOST_CHECK_EQUAL(deck->count("VFPPROD"), 1);
BOOST_REQUIRE(deck.hasKeyword("VFPPROD"));
BOOST_CHECK_EQUAL(deck.count("VFPPROD"), 1);
Opm::VFPProdTable table;
table.init(deck->getKeyword("VFPPROD", 0), *units);
table.init(deck.getKeyword("VFPPROD", 0), units);
Opm::VFPProdProperties properties(&table);