Changed behaviour of surfaceDensities(), now only returns densities of active components.

This commit is contained in:
Atgeirr Flø Rasmussen 2012-01-05 11:40:29 +01:00
parent 536d58fe4e
commit 3d30d615cd
2 changed files with 10 additions and 4 deletions

View File

@ -51,9 +51,15 @@ namespace Opm
if (deck.hasField("DENSITY")) {
const std::vector<double>& d = deck.getDENSITY().densities_[region_number_];
enum { ECL_oil = 0, ECL_water = 1, ECL_gas = 2 };
densities_[Aqua] = d[ECL_water];
densities_[Vapour] = d[ECL_gas];
densities_[Liquid] = d[ECL_oil];
if (phase_usage_.phase_used[Aqua]) {
densities_[phase_usage_.phase_pos[Aqua]] = d[ECL_water];
}
if (phase_usage_.phase_used[Vapour]) {
densities_[phase_usage_.phase_pos[Vapour]] = d[ECL_gas];
}
if (phase_usage_.phase_used[Liquid]) {
densities_[phase_usage_.phase_pos[Liquid]] = d[ECL_oil];
}
} else {
THROW("Input is missing DENSITY\n");
}

View File

@ -63,7 +63,7 @@ namespace Opm
const int* phasePosition() const;
/// Densities of stock components at surface conditions.
/// \return Array of size MaxNumPhases
/// \return Array of size numPhases().
const double* surfaceDensities() const;
/// Viscosity as a function of p and z.