From 5ee2c0cbc90ee59de64ba48854ac3b0da845c2be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Thu, 27 Feb 2014 09:08:39 +0100 Subject: [PATCH] Rename PhasePressureSaturationComputer -> InitialStateComputer. Also add (unused so far) rs_ field to class. --- opm/core/simulator/initStateEquil.hpp | 51 +++++++++++++++++---------- tests/test_equil.cpp | 8 ++--- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/opm/core/simulator/initStateEquil.hpp b/opm/core/simulator/initStateEquil.hpp index d2ebae79f..ee8bf7ac6 100644 --- a/opm/core/simulator/initStateEquil.hpp +++ b/opm/core/simulator/initStateEquil.hpp @@ -243,19 +243,20 @@ namespace Opm } template - class PhasePressureSaturationComputer; + class InitialStateComputer; template <> - class PhasePressureSaturationComputer { + class InitialStateComputer { public: - PhasePressureSaturationComputer(const BlackoilPropertiesInterface& props, - const EclipseGridParser& deck , - const UnstructuredGrid& G , - const double grav = unit::gravity) + InitialStateComputer(const BlackoilPropertiesInterface& props, + const EclipseGridParser& deck , + const UnstructuredGrid& G , + const double grav = unit::gravity) : pp_(props.numPhases(), std::vector(G.number_of_cells)), sat_(props.numPhases(), - std::vector(G.number_of_cells)) + std::vector(G.number_of_cells)), + rs_(G.number_of_cells) { // Get the equilibration records. const std::vector rec = getEquil(deck); @@ -287,11 +288,11 @@ namespace Opm calcPressSat(eqlmap, rec, props, G, grav); } - typedef std::vector PVal; - typedef std::vector PPress; + typedef std::vector Vec; + typedef std::vector PVec; // One per phase. - const PPress& press() const { return pp_; } - const PPress& saturation() const { return sat_; } + const PVec& press() const { return pp_; } + const PVec& saturation() const { return sat_; } private: typedef DensityCalculator RhoCalc; @@ -299,8 +300,9 @@ namespace Opm std::vector< std::shared_ptr > rs_func_; - PPress pp_; - PPress sat_; + PVec pp_; + PVec sat_; + Vec rs_; template void @@ -325,12 +327,13 @@ namespace Opm rs_func_[r], std::make_shared(), props.phaseUsage()); - const PPress press = phasePressures(G, eqreg, cells, grav); - const PPress sat = phaseSaturations(eqreg, cells, props, press); + const PVec press = phasePressures(G, eqreg, cells, grav); + const PVec sat = phaseSaturations(eqreg, cells, props, press); + const Vec rs(cells.size());// = gasOilRatio(); for (int p = 0, np = props.numPhases(); p < np; ++p) { - PVal& d = pp_[p]; - PVal::const_iterator s = press[p].begin(); + Vec& d = pp_[p]; + Vec::const_iterator s = press[p].begin(); for (typename RMap::CellRange::const_iterator c = cells.begin(), e = cells.end(); @@ -340,8 +343,8 @@ namespace Opm } } for (int p = 0, np = props.numPhases(); p < np; ++p) { - PVal& d = sat_[p]; - PVal::const_iterator s = sat[p].begin(); + Vec& d = sat_[p]; + Vec::const_iterator s = sat[p].begin(); for (typename RMap::CellRange::const_iterator c = cells.begin(), e = cells.end(); @@ -350,6 +353,16 @@ namespace Opm d[*c] = *s; } } + Vec::const_iterator s = rs.begin(); + Vec& d = rs_; + for (typename RMap::CellRange::const_iterator + c = cells.begin(), + e = cells.end(); + c != e; ++c, ++s) + { + d[*c] = *s; + } + } } diff --git a/tests/test_equil.cpp b/tests/test_equil.cpp index 3e1866772..38bdff80d 100644 --- a/tests/test_equil.cpp +++ b/tests/test_equil.cpp @@ -328,7 +328,7 @@ BOOST_AUTO_TEST_CASE (DeckAllDead) grid(create_grid_cart3d(1, 1, 10), destroy_grid); Opm::EclipseGridParser deck("deadfluids.DATA"); Opm::BlackoilPropertiesFromDeck props(deck, *grid, false); - Opm::Equil::DeckDependent::PhasePressureSaturationComputer comp(props, deck, *grid, 10.0); + Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, *grid, 10.0); const auto& pressures = comp.press(); BOOST_REQUIRE(pressures.size() == 3); BOOST_REQUIRE(int(pressures[0].size()) == grid->number_of_cells); @@ -405,7 +405,7 @@ BOOST_AUTO_TEST_CASE (DeckWithCapillary) Opm::EclipseGridParser deck("capillary.DATA"); Opm::BlackoilPropertiesFromDeck props(deck, grid, false); - Opm::Equil::DeckDependent::PhasePressureSaturationComputer comp(props, deck, grid, 10.0); + Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, grid, 10.0); const auto& pressures = comp.press(); BOOST_REQUIRE(pressures.size() == 3); BOOST_REQUIRE(int(pressures[0].size()) == grid.number_of_cells); @@ -443,7 +443,7 @@ BOOST_AUTO_TEST_CASE (DeckWithCapillaryOverlap) Opm::EclipseGridParser deck("capillary_overlap.DATA"); Opm::BlackoilPropertiesFromDeck props(deck, grid, false); - Opm::Equil::DeckDependent::PhasePressureSaturationComputer comp(props, deck, grid, 10.0); + Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, grid, 10.0); const auto& pressures = comp.press(); BOOST_REQUIRE(pressures.size() == 3); BOOST_REQUIRE(int(pressures[0].size()) == grid.number_of_cells); @@ -488,7 +488,7 @@ BOOST_AUTO_TEST_CASE (DeckWithLiveOil) Opm::EclipseGridParser deck("equil_liveoil.DATA"); Opm::BlackoilPropertiesFromDeck props(deck, grid, false); - Opm::Equil::DeckDependent::PhasePressureSaturationComputer comp(props, deck, grid, 10.0); + Opm::Equil::DeckDependent::InitialStateComputer comp(props, deck, grid, 10.0); const auto& pressures = comp.press(); BOOST_REQUIRE(pressures.size() == 3); BOOST_REQUIRE(int(pressures[0].size()) == grid.number_of_cells);