Merge pull request #586 from osae/equil-update

EQLNUM in case of non-trivial ACTNUM
This commit is contained in:
Atgeirr Flø Rasmussen 2014-05-09 21:34:32 +02:00
commit 7e9fbcba4f
2 changed files with 20 additions and 5 deletions

View File

@ -541,6 +541,17 @@ namespace Opm
* - @c depth Depth of gas-oil contact
* - @c press Gas-oil capillary pressure at gas-oil contact.
* Capillary pressure defined as "P_gas - P_oil".
*
* For the time being, items 7-9 of ECLIPSE's 'EQUIL' records are also
* stored here, but might (should?) eventually be moved elsewhere.
*
* - @c live_oil_table_index Indicates type of initialisation for live oil.
* Positive value points to corresponding Rs vs. depth table.
* - @c wet_gas_table_index Indicates type of initialisation for wet gas.
* Positive value points to corresponding Rv vs. depth table.
* - @c N Defines accuracy of initialisation computations. Currently
* only @c N=0 is supported.
*
*/
struct EquilRecord {
struct {

View File

@ -312,10 +312,14 @@ namespace Opm
{
std::vector<int> eqlnum;
if (newParserDeck->hasKeyword("EQLNUM")) {
const std::vector<int>& e = newParserDeck->getKeyword("EQLNUM")->getIntData();
eqlnum.reserve(e.size());
std::transform(e.begin(), e.end(), std::back_inserter(eqlnum),
std::bind2nd(std::minus<int>(), 1));
eqlnum.resize(G.number_of_cells);
const std::vector<int>& e =
newParserDeck->getKeyword("EQLNUM")->getIntData();
const int* gc = G.global_cell;
for (int cell = 0; cell < G.number_of_cells; ++cell) {
const int deck_pos = (gc == NULL) ? cell : gc[cell];
eqlnum[cell] = e[deck_pos] - 1;
}
}
else {
// No explicit equilibration region.