diff --git a/examples/compute_initial_state.cpp b/examples/compute_initial_state.cpp index b59a9a40..387c1fef 100644 --- a/examples/compute_initial_state.cpp +++ b/examples/compute_initial_state.cpp @@ -86,10 +86,11 @@ try const std::string deck_filename = param.get("deck_filename"); Opm::ParserPtr parser(new Opm::Parser() ); Opm::DeckConstPtr deck = parser->parseFile(deck_filename); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); const double grav = param.getDefault("gravity", unit::gravity); GridManager gm(deck); const UnstructuredGrid& grid = *gm.c_grid(); - BlackoilPropertiesFromDeck props(deck, grid, param); + BlackoilPropertiesFromDeck props(deck, eclipseState, grid, param); warnIfUnusedParams(param); // Initialisation. diff --git a/examples/compute_tof.cpp b/examples/compute_tof.cpp index 8ad1fda0..087e10b9 100644 --- a/examples/compute_tof.cpp +++ b/examples/compute_tof.cpp @@ -121,7 +121,7 @@ try // Grid init grid.reset(new GridManager(deck)); // Rock and fluid init - props.reset(new IncompPropertiesFromDeck(deck, *grid->c_grid())); + props.reset(new IncompPropertiesFromDeck(deck, eclipseState, *grid->c_grid())); // Wells init. wells.reset(new Opm::WellsManager(eclipseState , 0 , *grid->c_grid(), props->permeability())); // Gravity. diff --git a/examples/sim_2p_comp_reorder.cpp b/examples/sim_2p_comp_reorder.cpp index cd38b4b6..59240a88 100644 --- a/examples/sim_2p_comp_reorder.cpp +++ b/examples/sim_2p_comp_reorder.cpp @@ -99,12 +99,12 @@ try if (use_deck) { std::string deck_filename = param.get("deck_filename"); deck = parser->parseFile(deck_filename); - eclipseState.reset(new EclipseState(deck)); + // Grid init grid.reset(new GridManager(deck)); // Rock and fluid init - props.reset(new BlackoilPropertiesFromDeck(deck, *grid->c_grid(), param)); + props.reset(new BlackoilPropertiesFromDeck(deck, eclipseState, *grid->c_grid(), param)); // check_well_controls = param.getDefault("check_well_controls", false); // max_well_control_iterations = param.getDefault("max_well_control_iterations", 10); // Rock compressibility. diff --git a/examples/sim_2p_incomp.cpp b/examples/sim_2p_incomp.cpp index 2550662d..d74e439f 100644 --- a/examples/sim_2p_incomp.cpp +++ b/examples/sim_2p_incomp.cpp @@ -113,11 +113,12 @@ try std::string deck_filename = param.get("deck_filename"); deck = parser->parseFile(deck_filename); + EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); eclipseState.reset( new EclipseState(deck)); // Grid init grid.reset(new GridManager(deck)); // Rock and fluid init - props.reset(new IncompPropertiesFromDeck(deck, *grid->c_grid())); + props.reset(new IncompPropertiesFromDeck(deck, eclipseState, *grid->c_grid())); // check_well_controls = param.getDefault("check_well_controls", false); // max_well_control_iterations = param.getDefault("max_well_control_iterations", 10); // Rock compressibility. diff --git a/examples/wells_example.cpp b/examples/wells_example.cpp index f2874800..daf86954 100644 --- a/examples/wells_example.cpp +++ b/examples/wells_example.cpp @@ -36,15 +36,15 @@ try // Read input file Opm::ParserPtr parser(new Opm::Parser()); Opm::DeckConstPtr deck = parser->parseFile(file_name); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); std::cout << "Done!" << std::endl; // Setup grid GridManager grid(deck); // Define rock and fluid properties - IncompPropertiesFromDeck incomp_properties(deck, *grid.c_grid()); + IncompPropertiesFromDeck incomp_properties(deck, eclipseState, *grid.c_grid()); RockCompressibility rock_comp(deck); - EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); // Finally handle the wells WellsManager wells(eclipseState , 0 , *grid.c_grid(), incomp_properties.permeability()); diff --git a/opm/core/props/BlackoilPropertiesFromDeck.cpp b/opm/core/props/BlackoilPropertiesFromDeck.cpp index 2a2a020a..9251ecdc 100644 --- a/opm/core/props/BlackoilPropertiesFromDeck.cpp +++ b/opm/core/props/BlackoilPropertiesFromDeck.cpp @@ -24,19 +24,21 @@ namespace Opm { BlackoilPropertiesFromDeck::BlackoilPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, const UnstructuredGrid& grid, bool init_rock) { - init(deck, grid.number_of_cells, grid.global_cell, grid.cartdims, + init(deck, eclState, grid.number_of_cells, grid.global_cell, grid.cartdims, grid.cell_centroids, grid.dimensions, init_rock); } BlackoilPropertiesFromDeck::BlackoilPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, const UnstructuredGrid& grid, const parameter::ParameterGroup& param, bool init_rock) { - init(deck, grid.number_of_cells, grid.global_cell, grid.cartdims, grid.cell_centroids, + init(deck, eclState, grid.number_of_cells, grid.global_cell, grid.cartdims, grid.cell_centroids, grid.dimensions, param, init_rock); } diff --git a/opm/core/props/BlackoilPropertiesFromDeck.hpp b/opm/core/props/BlackoilPropertiesFromDeck.hpp index 448c5cb5..069405c4 100644 --- a/opm/core/props/BlackoilPropertiesFromDeck.hpp +++ b/opm/core/props/BlackoilPropertiesFromDeck.hpp @@ -47,6 +47,7 @@ namespace Opm /// mapping from cell indices (typically from a processed grid) /// to logical cartesian indices consistent with the deck. BlackoilPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, const UnstructuredGrid& grid, bool init_rock=true ); /// Initialize from deck, grid and parameters. @@ -61,6 +62,7 @@ namespace Opm /// For both size parameters, a 0 or negative value indicates that no spline fitting is to /// be done, and the input fluid data used directly for linear interpolation. BlackoilPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, const UnstructuredGrid& grid, const parameter::ParameterGroup& param, bool init_rock=true); @@ -68,6 +70,7 @@ namespace Opm template BlackoilPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, @@ -77,6 +80,7 @@ namespace Opm template BlackoilPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, @@ -222,6 +226,7 @@ namespace Opm template void init(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, @@ -230,6 +235,7 @@ namespace Opm bool init_rock); template void init(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, diff --git a/opm/core/props/BlackoilPropertiesFromDeck_impl.hpp b/opm/core/props/BlackoilPropertiesFromDeck_impl.hpp index 586021c4..580ab13b 100644 --- a/opm/core/props/BlackoilPropertiesFromDeck_impl.hpp +++ b/opm/core/props/BlackoilPropertiesFromDeck_impl.hpp @@ -2,6 +2,7 @@ namespace Opm { template BlackoilPropertiesFromDeck::BlackoilPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, @@ -9,12 +10,13 @@ namespace Opm int dimension, bool init_rock) { - init(deck, number_of_cells, global_cell, cart_dims, begin_cell_centroids, dimension, + init(deck, eclState, number_of_cells, global_cell, cart_dims, begin_cell_centroids, dimension, init_rock); } template BlackoilPropertiesFromDeck::BlackoilPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, @@ -24,6 +26,7 @@ namespace Opm bool init_rock) { init(deck, + eclState, number_of_cells, global_cell, cart_dims, @@ -35,6 +38,7 @@ namespace Opm template inline void BlackoilPropertiesFromDeck::init(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, @@ -47,7 +51,7 @@ namespace Opm extractPvtTableIndex(cellPvtRegionIdx_, deck, number_of_cells, global_cell); if (init_rock){ - rock_.init(deck, number_of_cells, global_cell, cart_dims); + rock_.init(eclState, number_of_cells, global_cell, cart_dims); } pvt_.init(deck, /*numSamples=*/0); SaturationPropsFromDeck* ptr @@ -64,6 +68,7 @@ namespace Opm template inline void BlackoilPropertiesFromDeck::init(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, @@ -77,7 +82,7 @@ namespace Opm extractPvtTableIndex(cellPvtRegionIdx_, deck, number_of_cells, global_cell); if(init_rock){ - rock_.init(deck, number_of_cells, global_cell, cart_dims); + rock_.init(eclState, number_of_cells, global_cell, cart_dims); } const int pvt_samples = param.getDefault("pvt_tab_size", 200); diff --git a/opm/core/props/IncompPropertiesFromDeck.cpp b/opm/core/props/IncompPropertiesFromDeck.cpp index 7103c291..b304a065 100644 --- a/opm/core/props/IncompPropertiesFromDeck.cpp +++ b/opm/core/props/IncompPropertiesFromDeck.cpp @@ -27,9 +27,10 @@ namespace Opm { IncompPropertiesFromDeck::IncompPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, const UnstructuredGrid& grid) { - rock_.init(deck, grid.number_of_cells, grid.global_cell, grid.cartdims); + rock_.init(eclState, grid.number_of_cells, grid.global_cell, grid.cartdims); pvt_.init(deck); satprops_.init(deck, grid, 200); if (pvt_.numPhases() != satprops_.numPhases()) { diff --git a/opm/core/props/IncompPropertiesFromDeck.hpp b/opm/core/props/IncompPropertiesFromDeck.hpp index f9be40db..0ac4a71d 100644 --- a/opm/core/props/IncompPropertiesFromDeck.hpp +++ b/opm/core/props/IncompPropertiesFromDeck.hpp @@ -21,6 +21,7 @@ #define OPM_INCOMPPROPERTIESFROMDECK_HEADER_INCLUDED #include +#include #include #include #include @@ -47,10 +48,12 @@ namespace Opm public: /// Initialize from deck and grid. /// \param deck Deck input parser + /// \param eclState The EclipseState (processed deck) produced by the opm-parser code /// \param grid Grid to which property object applies, needed for the /// mapping from cell indices (typically from a processed grid) /// to logical cartesian indices consistent with the deck. IncompPropertiesFromDeck(Opm::DeckConstPtr deck, + Opm::EclipseStateConstPtr eclState, const UnstructuredGrid& grid); /// Destructor. diff --git a/opm/core/props/rock/RockFromDeck.cpp b/opm/core/props/rock/RockFromDeck.cpp index 55a83573..a2080bed 100644 --- a/opm/core/props/rock/RockFromDeck.cpp +++ b/opm/core/props/rock/RockFromDeck.cpp @@ -24,6 +24,7 @@ #include #include +#include #include @@ -37,7 +38,7 @@ namespace Opm void setScalarPermIfNeeded(std::array& kmap, int i, int j, int k); - PermeabilityKind fillTensor(Opm::DeckConstPtr deck, + PermeabilityKind fillTensor(Opm::EclipseStateConstPtr eclState, std::vector*>& tensor, std::array& kmap); @@ -53,23 +54,24 @@ namespace Opm { } - void RockFromDeck::init(Opm::DeckConstPtr deck, + void RockFromDeck::init(Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims) { - assignPorosity(deck, number_of_cells, global_cell); + assignPorosity(eclState, number_of_cells, global_cell); permfield_valid_.assign(number_of_cells, false); const double perm_threshold = 0.0; // Maybe turn into parameter? - assignPermeability(deck, number_of_cells, global_cell, cart_dims, + assignPermeability(eclState, number_of_cells, global_cell, cart_dims, perm_threshold); } - void RockFromDeck::assignPorosity(Opm::DeckConstPtr deck, + void RockFromDeck::assignPorosity(Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell) { porosity_.assign(number_of_cells, 1.0); - if (deck->hasKeyword("PORO")) { - const std::vector& poro = deck->getKeyword("PORO")->getSIDoubleData(); + if (eclState->hasDoubleGridProperty("PORO")) { + const std::vector& poro = + eclState->getDoubleGridProperty("PORO")->getData(); for (int c = 0; c < int(porosity_.size()); ++c) { const int deck_pos = (global_cell == NULL) ? c : global_cell[c]; assert(0 <= c && c < (int) porosity_.size()); @@ -79,7 +81,7 @@ namespace Opm } } - void RockFromDeck::assignPermeability(Opm::DeckConstPtr deck, + void RockFromDeck::assignPermeability(Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cartdims, @@ -100,7 +102,7 @@ namespace Opm tensor.push_back(&zero); std::array kmap; - PermeabilityKind pkind = fillTensor(deck, tensor, kmap); + PermeabilityKind pkind = fillTensor(eclState, tensor, kmap); if (pkind == Invalid) { OPM_THROW(std::runtime_error, "Invalid permeability field."); } @@ -143,10 +145,10 @@ namespace Opm /// components such as @f$k_{xy}@f$ unless the /// corresponding diagonal components are known as well. /// - /// @param deck [in] - /// An Eclipse data parser capable of answering which - /// permeability components are present in a given input - /// deck. + /// @param eclState [in] + /// An internalized Eclipse deck from opm-parser which is + /// capable of answering which permeability components are + /// present in a given input deck. /// /// @return /// An enum value with the following possible values: @@ -155,18 +157,18 @@ namespace Opm /// TensorPerm at least one cross-component given. /// None no components given. /// Invalid invalid set of components given. - PermeabilityKind classifyPermeability(Opm::DeckConstPtr deck) + PermeabilityKind classifyPermeability(Opm::EclipseStateConstPtr eclState) { - const bool xx = deck->hasKeyword("PERMX" ); - const bool xy = deck->hasKeyword("PERMXY"); + const bool xx = eclState->hasDoubleGridProperty("PERMX" ); + const bool xy = eclState->hasDoubleGridProperty("PERMXY"); const bool yx = xy; - const bool yy = deck->hasKeyword("PERMY" ); - const bool yz = deck->hasKeyword("PERMYZ"); + const bool yy = eclState->hasDoubleGridProperty("PERMY" ); + const bool yz = eclState->hasDoubleGridProperty("PERMYZ"); const bool zy = yz; - const bool zz = deck->hasKeyword("PERMZ" ); - const bool zx = deck->hasKeyword("PERMZX"); + const bool zz = eclState->hasDoubleGridProperty("PERMZ" ); + const bool zx = eclState->hasDoubleGridProperty("PERMZX"); const bool xz = zx; int num_cross_comp = xy + xz + yx + yz + zx + zy; @@ -254,19 +256,19 @@ namespace Opm /// However, we make no attempt at enforcing positive /// definite tensors. /// - /// @param [in] parser - /// An Eclipse data parser capable of answering which - /// permeability components are present in a given input - /// deck as well as retrieving the numerical value of each - /// permeability component in each grid cell. + /// @param [in] eclState + /// An internalized Eclipse deck object which capable of + /// answering which permeability components are present in + /// a given input deck as well as retrieving the numerical + /// value of each permeability component in each grid cell. /// /// @param [out] tensor /// @param [out] kmap - PermeabilityKind fillTensor(Opm::DeckConstPtr deck, + PermeabilityKind fillTensor(Opm::EclipseStateConstPtr eclState, std::vector*>& tensor, std::array& kmap) { - PermeabilityKind kind = classifyPermeability(deck); + PermeabilityKind kind = classifyPermeability(eclState); if (kind == Invalid) { OPM_THROW(std::runtime_error, "Invalid set of permeability fields given."); } @@ -279,39 +281,39 @@ namespace Opm // ----------------------------------------------------------- // 1st row: [ kxx, kxy ], kxz handled in kzx - if (deck->hasKeyword("PERMX" )) { + if (eclState->hasDoubleGridProperty("PERMX" )) { kmap[xx] = tensor.size(); - tensor.push_back(&deck->getKeyword("PERMX")->getSIDoubleData()); + tensor.push_back(&eclState->getDoubleGridProperty("PERMX")->getData()); setScalarPermIfNeeded(kmap, xx, yy, zz); } - if (deck->hasKeyword("PERMXY")) { + if (eclState->hasDoubleGridProperty("PERMXY")) { kmap[xy] = kmap[yx] = tensor.size(); // Enforce symmetry. - tensor.push_back(&deck->getKeyword("PERMXY")->getSIDoubleData()); + tensor.push_back(&eclState->getDoubleGridProperty("PERMXY")->getData()); } // ----------------------------------------------------------- // 2nd row: [ kyy, kyz ], kyx handled in kxy - if (deck->hasKeyword("PERMY" )) { + if (eclState->hasDoubleGridProperty("PERMY" )) { kmap[yy] = tensor.size(); - tensor.push_back(&deck->getKeyword("PERMY")->getSIDoubleData()); + tensor.push_back(&eclState->getDoubleGridProperty("PERMY")->getData()); setScalarPermIfNeeded(kmap, yy, zz, xx); } - if (deck->hasKeyword("PERMYZ")) { + if (eclState->hasDoubleGridProperty("PERMYZ")) { kmap[yz] = kmap[zy] = tensor.size(); // Enforce symmetry. - tensor.push_back(&deck->getKeyword("PERMYZ")->getSIDoubleData()); + tensor.push_back(&eclState->getDoubleGridProperty("PERMYZ")->getData()); } // ----------------------------------------------------------- // 3rd row: [ kzx, kzz ], kzy handled in kyz - if (deck->hasKeyword("PERMZX")) { + if (eclState->hasDoubleGridProperty("PERMZX")) { kmap[zx] = kmap[xz] = tensor.size(); // Enforce symmetry. - tensor.push_back(&deck->getKeyword("PERMZX")->getSIDoubleData()); + tensor.push_back(&eclState->getDoubleGridProperty("PERMZX")->getData()); } - if (deck->hasKeyword("PERMZ" )) { + if (eclState->hasDoubleGridProperty("PERMZ" )) { kmap[zz] = tensor.size(); - tensor.push_back(&deck->getKeyword("PERMZ")->getSIDoubleData()); + tensor.push_back(&eclState->getDoubleGridProperty("PERMZ")->getData()); setScalarPermIfNeeded(kmap, zz, xx, yy); } diff --git a/opm/core/props/rock/RockFromDeck.hpp b/opm/core/props/rock/RockFromDeck.hpp index 23aa75d3..c0ad9de3 100644 --- a/opm/core/props/rock/RockFromDeck.hpp +++ b/opm/core/props/rock/RockFromDeck.hpp @@ -20,7 +20,7 @@ #ifndef OPM_ROCKFROMDECK_HEADER_INCLUDED #define OPM_ROCKFROMDECK_HEADER_INCLUDED -#include +#include #include @@ -36,12 +36,12 @@ namespace Opm RockFromDeck(); /// Initialize from deck and cell mapping. - /// \param deck Deck produced by the opm-parser code + /// \param eclState The EclipseState (processed deck) produced by the opm-parser code /// \param number_of_cells The number of cells in the grid. /// \param global_cell The mapping fom local to global cell indices. /// global_cell[i] is the corresponding global index of i. /// \param cart_dims The size of the underlying cartesian grid. - void init(Opm::DeckConstPtr deck, + void init(Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims); @@ -72,10 +72,10 @@ namespace Opm } private: - void assignPorosity(Opm::DeckConstPtr deck, + void assignPorosity(Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell); - void assignPermeability(Opm::DeckConstPtr deck, + void assignPermeability(Opm::EclipseStateConstPtr eclState, int number_of_cells, const int* global_cell, const int* cart_dims, diff --git a/tests/capillary.DATA b/tests/capillary.DATA index 64429cf0..3fbf71ac 100644 --- a/tests/capillary.DATA +++ b/tests/capillary.DATA @@ -1,7 +1,18 @@ +-- Most of the following sections are not actually needed by the test, +-- but it is required by the Eclipse reference manual that they are +-- present. Also, the higher level opm-parser classes +-- (i.e. Opm::EclipseState et al.) assume that they are present. + +------------------------------------- +RUNSPEC + WATER OIL GAS +DIMENS +3 3 3 / + TABDIMS 1 1 40 20 1 20 / @@ -9,6 +20,27 @@ EQLDIMS -- NTEQUL 1 / +------------------------------------- +GRID + +-- Opm::EclipseState assumes that _some_ grid gets defined, so let's +-- specify a fake one... + +DXV +1 2 3 / + +DYV +4 5 6 / + +DZV +7 8 9 / + +DEPTHZ +16*123.456 / + +------------------------------------- +PROPS + PVDO 100 1.0 1.0 200 0.9 1.0 @@ -37,6 +69,13 @@ DENSITY 700 1000 1 / +------------------------------------- +SOLUTION + EQUIL 50 150 50 0.25 20 0.35 1* 1* 0 / + +------------------------------------- +SCHEDULE +-- empty section diff --git a/tests/deadfluids.DATA b/tests/deadfluids.DATA index bc88ccb5..04264774 100644 --- a/tests/deadfluids.DATA +++ b/tests/deadfluids.DATA @@ -1,7 +1,18 @@ +-- Most of the following sections are not actually needed by the test, +-- but it is required by the Eclipse reference manual that they are +-- present. Also, the higher level opm-parser classes +-- (i.e. Opm::EclipseState et al.) assume that they are present. + +------------------------------------- +RUNSPEC + WATER OIL GAS +DIMENS +3 3 3 / + TABDIMS 1 1 40 20 1 20 / @@ -9,6 +20,27 @@ EQLDIMS -- NTEQUL 1 / +------------------------------------- +GRID + +-- Opm::EclipseState assumes that _some_ grid gets defined, so let's +-- specify a fake one... + +DXV +1 2 3 / + +DYV +4 5 6 / + +DZV +7 8 9 / + +DEPTHZ +16*123.456 / + +------------------------------------- +PROPS + PVDO 100 1.0 1.0 200 0.5 1.0 @@ -37,6 +69,13 @@ DENSITY 700 1000 10 / +------------------------------------- +SOLUTION + EQUIL 5 150 5 0 2 0 1* 1* 0 / + +------------------------------------- +SCHEDULE +-- empty section diff --git a/tests/test_equil.cpp b/tests/test_equil.cpp index ffe3f736..7084b80f 100644 --- a/tests/test_equil.cpp +++ b/tests/test_equil.cpp @@ -336,7 +336,8 @@ BOOST_AUTO_TEST_CASE (DeckAllDead) grid(create_grid_cart3d(1, 1, 10), destroy_grid); Opm::ParserPtr parser(new Opm::Parser() ); Opm::DeckConstPtr deck = parser->parseFile("deadfluids.DATA"); - Opm::BlackoilPropertiesFromDeck props(deck, *grid, false); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); + Opm::BlackoilPropertiesFromDeck props(deck, eclipseState, *grid, false); Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, *grid, 10.0); const auto& pressures = comp.press(); BOOST_REQUIRE(pressures.size() == 3); @@ -362,7 +363,8 @@ BOOST_AUTO_TEST_CASE (CapillaryInversion) const UnstructuredGrid& grid = *(gm.c_grid()); Opm::ParserPtr parser(new Opm::Parser() ); Opm::DeckConstPtr deck = parser->parseFile("capillary.DATA"); - Opm::BlackoilPropertiesFromDeck props(deck, grid, false); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); + Opm::BlackoilPropertiesFromDeck props(deck, eclipseState, grid, false); // Test the capillary inversion for oil-water. const int cell = 0; @@ -414,7 +416,8 @@ BOOST_AUTO_TEST_CASE (DeckWithCapillary) const UnstructuredGrid& grid = *(gm.c_grid()); Opm::ParserPtr parser(new Opm::Parser() ); Opm::DeckConstPtr deck = parser->parseFile("capillary.DATA"); - Opm::BlackoilPropertiesFromDeck props(deck, grid, false); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); + Opm::BlackoilPropertiesFromDeck props(deck, eclipseState, grid, false); Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, grid, 10.0); const auto& pressures = comp.press(); @@ -453,7 +456,8 @@ BOOST_AUTO_TEST_CASE (DeckWithCapillaryOverlap) const UnstructuredGrid& grid = *(gm.c_grid()); Opm::ParserPtr parser(new Opm::Parser() ); Opm::DeckConstPtr deck = parser->parseFile("capillary_overlap.DATA"); - Opm::BlackoilPropertiesFromDeck props(deck, grid, false); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); + Opm::BlackoilPropertiesFromDeck props(deck, eclipseState, grid, false); Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, grid, 9.80665); const auto& pressures = comp.press(); @@ -514,7 +518,8 @@ BOOST_AUTO_TEST_CASE (DeckWithLiveOil) const UnstructuredGrid& grid = *(gm.c_grid()); Opm::ParserPtr parser(new Opm::Parser() ); Opm::DeckConstPtr deck = parser->parseFile("equil_liveoil.DATA"); - Opm::BlackoilPropertiesFromDeck props(deck, grid, false); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); + Opm::BlackoilPropertiesFromDeck props(deck, eclipseState, grid, false); Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, grid, 9.80665); const auto& pressures = comp.press(); @@ -592,7 +597,8 @@ BOOST_AUTO_TEST_CASE (DeckWithLiveGas) const UnstructuredGrid& grid = *(gm.c_grid()); Opm::ParserPtr parser(new Opm::Parser() ); Opm::DeckConstPtr deck = parser->parseFile("equil_livegas.DATA"); - Opm::BlackoilPropertiesFromDeck props(deck, grid, false); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); + Opm::BlackoilPropertiesFromDeck props(deck, eclipseState, grid, false); Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, grid, 9.80665); const auto& pressures = comp.press(); @@ -673,7 +679,8 @@ BOOST_AUTO_TEST_CASE (DeckWithRSVDAndRVVD) const UnstructuredGrid& grid = *(gm.c_grid()); Opm::ParserPtr parser(new Opm::Parser() ); Opm::DeckConstPtr deck = parser->parseFile("equil_rsvd_and_rvvd.DATA"); - Opm::BlackoilPropertiesFromDeck props(deck, grid, false); + Opm::EclipseStateConstPtr eclipseState(new Opm::EclipseState(deck)); + Opm::BlackoilPropertiesFromDeck props(deck, eclipseState, grid, false); Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, grid, 9.80665); const auto& pressures = comp.press();