Rename PhasePressureSaturationComputer -> InitialStateComputer.

Also add (unused so far) rs_ field to class.
This commit is contained in:
Atgeirr Flø Rasmussen 2014-02-27 09:08:39 +01:00 committed by Andreas Lauser
parent a0d3bf6dd7
commit 5ee2c0cbc9
2 changed files with 36 additions and 23 deletions

View File

@ -243,19 +243,20 @@ namespace Opm
}
template <class InputDeck>
class PhasePressureSaturationComputer;
class InitialStateComputer;
template <>
class PhasePressureSaturationComputer<Opm::EclipseGridParser> {
class InitialStateComputer<Opm::EclipseGridParser> {
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<double>(G.number_of_cells)),
sat_(props.numPhases(),
std::vector<double>(G.number_of_cells))
std::vector<double>(G.number_of_cells)),
rs_(G.number_of_cells)
{
// Get the equilibration records.
const std::vector<EquilRecord> rec = getEquil(deck);
@ -287,11 +288,11 @@ namespace Opm
calcPressSat(eqlmap, rec, props, G, grav);
}
typedef std::vector<double> PVal;
typedef std::vector<PVal> PPress;
typedef std::vector<double> Vec;
typedef std::vector<Vec> 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<BlackoilPropertiesInterface> RhoCalc;
@ -299,8 +300,9 @@ namespace Opm
std::vector< std::shared_ptr<Miscibility::RsFunction> > rs_func_;
PPress pp_;
PPress sat_;
PVec pp_;
PVec sat_;
Vec rs_;
template <class RMap>
void
@ -325,12 +327,13 @@ namespace Opm
rs_func_[r], std::make_shared<NoMix>(),
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;
}
}
}

View File

@ -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<Opm::EclipseGridParser> comp(props, deck, *grid, 10.0);
Opm::Equil::DeckDependent::InitialStateComputer<Opm::EclipseGridParser> 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<Opm::EclipseGridParser> comp(props, deck, grid, 10.0);
Opm::Equil::DeckDependent::InitialStateComputer<Opm::EclipseGridParser> 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<Opm::EclipseGridParser> comp(props, deck, grid, 10.0);
Opm::Equil::DeckDependent::InitialStateComputer<Opm::EclipseGridParser> 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<Opm::EclipseGridParser> comp(props, deck, grid, 10.0);
Opm::Equil::DeckDependent::InitialStateComputer<Opm::EclipseGridParser> 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);