Merge pull request #634 from osae/satFunc-eclState

Provide eclipse state to saturation property init.
This commit is contained in:
Bård Skaflestad 2014-08-25 13:55:44 +02:00
commit d3d38d2d6f
4 changed files with 14 additions and 9 deletions

View File

@ -57,7 +57,7 @@ namespace Opm
SaturationPropsFromDeck<SatFuncSimpleNonuniform>* ptr SaturationPropsFromDeck<SatFuncSimpleNonuniform>* ptr
= new SaturationPropsFromDeck<SatFuncSimpleNonuniform>(); = new SaturationPropsFromDeck<SatFuncSimpleNonuniform>();
satprops_.reset(ptr); satprops_.reset(ptr);
ptr->init(deck, number_of_cells, global_cell, begin_cell_centroids, dimension, ptr->init(deck, eclState, number_of_cells, global_cell, begin_cell_centroids, dimension,
/*numSamples=*/0); /*numSamples=*/0);
if (pvt_.numPhases() != satprops_->numPhases()) { if (pvt_.numPhases() != satprops_->numPhases()) {
@ -99,19 +99,19 @@ namespace Opm
SaturationPropsFromDeck<SatFuncStone2Uniform>* ptr SaturationPropsFromDeck<SatFuncStone2Uniform>* ptr
= new SaturationPropsFromDeck<SatFuncStone2Uniform>(); = new SaturationPropsFromDeck<SatFuncStone2Uniform>();
satprops_.reset(ptr); satprops_.reset(ptr);
ptr->init(deck, number_of_cells, global_cell, begin_cell_centroids, ptr->init(deck, eclState, number_of_cells, global_cell, begin_cell_centroids,
dimension, sat_samples); dimension, sat_samples);
} else if (threephase_model == "simple") { } else if (threephase_model == "simple") {
SaturationPropsFromDeck<SatFuncSimpleUniform>* ptr SaturationPropsFromDeck<SatFuncSimpleUniform>* ptr
= new SaturationPropsFromDeck<SatFuncSimpleUniform>(); = new SaturationPropsFromDeck<SatFuncSimpleUniform>();
satprops_.reset(ptr); satprops_.reset(ptr);
ptr->init(deck, number_of_cells, global_cell, begin_cell_centroids, ptr->init(deck, eclState, number_of_cells, global_cell, begin_cell_centroids,
dimension, sat_samples); dimension, sat_samples);
} else if (threephase_model == "gwseg") { } else if (threephase_model == "gwseg") {
SaturationPropsFromDeck<SatFuncGwsegUniform>* ptr SaturationPropsFromDeck<SatFuncGwsegUniform>* ptr
= new SaturationPropsFromDeck<SatFuncGwsegUniform>(); = new SaturationPropsFromDeck<SatFuncGwsegUniform>();
satprops_.reset(ptr); satprops_.reset(ptr);
ptr->init(deck, number_of_cells, global_cell, begin_cell_centroids, ptr->init(deck, eclState, number_of_cells, global_cell, begin_cell_centroids,
dimension, sat_samples); dimension, sat_samples);
} else { } else {
OPM_THROW(std::runtime_error, "Unknown threephase_model: " << threephase_model); OPM_THROW(std::runtime_error, "Unknown threephase_model: " << threephase_model);
@ -121,19 +121,19 @@ namespace Opm
SaturationPropsFromDeck<SatFuncStone2Nonuniform>* ptr SaturationPropsFromDeck<SatFuncStone2Nonuniform>* ptr
= new SaturationPropsFromDeck<SatFuncStone2Nonuniform>(); = new SaturationPropsFromDeck<SatFuncStone2Nonuniform>();
satprops_.reset(ptr); satprops_.reset(ptr);
ptr->init(deck, number_of_cells, global_cell, begin_cell_centroids, ptr->init(deck, eclState, number_of_cells, global_cell, begin_cell_centroids,
dimension, sat_samples); dimension, sat_samples);
} else if (threephase_model == "simple") { } else if (threephase_model == "simple") {
SaturationPropsFromDeck<SatFuncSimpleNonuniform>* ptr SaturationPropsFromDeck<SatFuncSimpleNonuniform>* ptr
= new SaturationPropsFromDeck<SatFuncSimpleNonuniform>(); = new SaturationPropsFromDeck<SatFuncSimpleNonuniform>();
satprops_.reset(ptr); satprops_.reset(ptr);
ptr->init(deck, number_of_cells, global_cell, begin_cell_centroids, ptr->init(deck, eclState, number_of_cells, global_cell, begin_cell_centroids,
dimension, sat_samples); dimension, sat_samples);
} else if (threephase_model == "gwseg") { } else if (threephase_model == "gwseg") {
SaturationPropsFromDeck<SatFuncGwsegNonuniform>* ptr SaturationPropsFromDeck<SatFuncGwsegNonuniform>* ptr
= new SaturationPropsFromDeck<SatFuncGwsegNonuniform>(); = new SaturationPropsFromDeck<SatFuncGwsegNonuniform>();
satprops_.reset(ptr); satprops_.reset(ptr);
ptr->init(deck, number_of_cells, global_cell, begin_cell_centroids, ptr->init(deck, eclState, number_of_cells, global_cell, begin_cell_centroids,
dimension, sat_samples); dimension, sat_samples);
} else { } else {
OPM_THROW(std::runtime_error, "Unknown threephase_model: " << threephase_model); OPM_THROW(std::runtime_error, "Unknown threephase_model: " << threephase_model);

View File

@ -32,7 +32,7 @@ namespace Opm
{ {
rock_.init(eclState, grid.number_of_cells, grid.global_cell, grid.cartdims); rock_.init(eclState, grid.number_of_cells, grid.global_cell, grid.cartdims);
pvt_.init(deck); pvt_.init(deck);
satprops_.init(deck, grid, 200); satprops_.init(deck, eclState, grid, 200);
if (pvt_.numPhases() != satprops_.numPhases()) { if (pvt_.numPhases() != satprops_.numPhases()) {
OPM_THROW(std::runtime_error, "IncompPropertiesFromDeck::IncompPropertiesFromDeck() - Inconsistent number of phases in pvt data (" OPM_THROW(std::runtime_error, "IncompPropertiesFromDeck::IncompPropertiesFromDeck() - Inconsistent number of phases in pvt data ("
<< pvt_.numPhases() << ") and saturation-dependent function data (" << satprops_.numPhases() << ")."); << pvt_.numPhases() << ") and saturation-dependent function data (" << satprops_.numPhases() << ").");

View File

@ -28,6 +28,7 @@
#include <opm/core/props/satfunc/SatFuncGwseg.hpp> #include <opm/core/props/satfunc/SatFuncGwseg.hpp>
#include <opm/parser/eclipse/Deck/Deck.hpp> #include <opm/parser/eclipse/Deck/Deck.hpp>
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
#include <vector> #include <vector>
@ -59,6 +60,7 @@ namespace Opm
/// \param[in] samples Number of uniform sample points for saturation tables. /// \param[in] samples Number of uniform sample points for saturation tables.
/// NOTE: samples will only be used with the SatFuncSetUniform template argument. /// NOTE: samples will only be used with the SatFuncSetUniform template argument.
void init(Opm::DeckConstPtr deck, void init(Opm::DeckConstPtr deck,
Opm::EclipseStateConstPtr eclState,
const UnstructuredGrid& grid, const UnstructuredGrid& grid,
const int samples); const int samples);
@ -77,6 +79,7 @@ namespace Opm
/// NOTE: samples will only be used with the SatFuncSetUniform template argument. /// NOTE: samples will only be used with the SatFuncSetUniform template argument.
template<class T> template<class T>
void init(Opm::DeckConstPtr deck, void init(Opm::DeckConstPtr deck,
Opm::EclipseStateConstPtr eclState,
int number_of_cells, int number_of_cells,
const int* global_cell, const int* global_cell,
const T& begin_cell_centroids, const T& begin_cell_centroids,

View File

@ -50,10 +50,11 @@ namespace Opm
/// Initialize from deck. /// Initialize from deck.
template <class SatFuncSet> template <class SatFuncSet>
void SaturationPropsFromDeck<SatFuncSet>::init(Opm::DeckConstPtr deck, void SaturationPropsFromDeck<SatFuncSet>::init(Opm::DeckConstPtr deck,
Opm::EclipseStateConstPtr eclState,
const UnstructuredGrid& grid, const UnstructuredGrid& grid,
const int samples) const int samples)
{ {
this->init(deck, grid.number_of_cells, this->init(deck, eclState, grid.number_of_cells,
grid.global_cell, grid.cell_centroids, grid.global_cell, grid.cell_centroids,
grid.dimensions, samples); grid.dimensions, samples);
} }
@ -62,6 +63,7 @@ namespace Opm
template <class SatFuncSet> template <class SatFuncSet>
template<class T> template<class T>
void SaturationPropsFromDeck<SatFuncSet>::init(Opm::DeckConstPtr deck, void SaturationPropsFromDeck<SatFuncSet>::init(Opm::DeckConstPtr deck,
Opm::EclipseStateConstPtr eclState,
int number_of_cells, int number_of_cells,
const int* global_cell, const int* global_cell,
const T& begin_cell_centroids, const T& begin_cell_centroids,