Add phaseUsage() method to BlackoilPropertiesInterface.
Also implement method in derived classes.
This commit is contained in:
parent
66b6dda219
commit
280bf30a26
@ -83,6 +83,12 @@ namespace Opm
|
||||
return pvt_.numPhases();
|
||||
}
|
||||
|
||||
/// \return Object describing the active phases.
|
||||
PhaseUsage BlackoilPropertiesBasic::phaseUsage() const
|
||||
{
|
||||
return pvt_.phaseUsage();
|
||||
}
|
||||
|
||||
/// \param[in] n Number of data points.
|
||||
/// \param[in] p Array of n pressure values.
|
||||
/// \param[in] z Array of nP surface volume values.
|
||||
|
@ -73,6 +73,9 @@ namespace Opm
|
||||
/// \return P, the number of phases (also the number of components).
|
||||
virtual int numPhases() const;
|
||||
|
||||
/// \return Object describing the active phases.
|
||||
virtual PhaseUsage phaseUsage() const;
|
||||
|
||||
/// \param[in] n Number of data points.
|
||||
/// \param[in] p Array of n pressure values.
|
||||
/// \param[in] z Array of nP surface volume values.
|
||||
|
@ -147,6 +147,12 @@ namespace Opm
|
||||
return pvt_.numPhases();
|
||||
}
|
||||
|
||||
/// \return Object describing the active phases.
|
||||
PhaseUsage BlackoilPropertiesFromDeck::phaseUsage() const
|
||||
{
|
||||
return pvt_.phaseUsage();
|
||||
}
|
||||
|
||||
/// \param[in] n Number of data points.
|
||||
/// \param[in] p Array of n pressure values.
|
||||
/// \param[in] z Array of nP surface volume values.
|
||||
|
@ -89,6 +89,9 @@ namespace Opm
|
||||
/// \return P, the number of phases (also the number of components).
|
||||
virtual int numPhases() const;
|
||||
|
||||
/// \return Object describing the active phases.
|
||||
virtual PhaseUsage phaseUsage() const;
|
||||
|
||||
/// \param[in] n Number of data points.
|
||||
/// \param[in] p Array of n pressure values.
|
||||
/// \param[in] z Array of nP surface volume values.
|
||||
|
@ -23,6 +23,8 @@
|
||||
namespace Opm
|
||||
{
|
||||
|
||||
class PhaseUsage;
|
||||
|
||||
/// Abstract base class for blackoil fluid and reservoir properties.
|
||||
/// Supports variable number of spatial dimensions, called D.
|
||||
/// Supports variable number of phases, but assumes that
|
||||
@ -59,6 +61,9 @@ namespace Opm
|
||||
/// \return P, the number of phases (also the number of components).
|
||||
virtual int numPhases() const = 0;
|
||||
|
||||
/// \return Object describing the active phases.
|
||||
virtual PhaseUsage phaseUsage() const = 0;
|
||||
|
||||
/// \param[in] n Number of data points.
|
||||
/// \param[in] p Array of n pressure values.
|
||||
/// \param[in] z Array of nP surface volume values.
|
||||
|
@ -120,6 +120,11 @@ namespace Opm
|
||||
}
|
||||
|
||||
|
||||
PhaseUsage BlackoilPvtProperties::phaseUsage() const
|
||||
{
|
||||
return phase_usage_;
|
||||
}
|
||||
|
||||
int BlackoilPvtProperties::numPhases() const
|
||||
{
|
||||
return phase_usage_.num_phases;
|
||||
|
@ -55,6 +55,9 @@ namespace Opm
|
||||
/// data without fitting a spline.
|
||||
void init(const EclipseGridParser& deck, const int samples);
|
||||
|
||||
/// \return Object describing the active phases.
|
||||
PhaseUsage phaseUsage() const;
|
||||
|
||||
/// Number of active phases.
|
||||
int numPhases() const;
|
||||
|
||||
|
@ -85,6 +85,30 @@ namespace Opm
|
||||
return density_.size();
|
||||
}
|
||||
|
||||
PhaseUsage PvtPropertiesBasic::phaseUsage() const
|
||||
{
|
||||
PhaseUsage pu;
|
||||
pu.num_phases = numPhases();
|
||||
if (pu.num_phases == 2) {
|
||||
// Might just as well assume water-oil.
|
||||
pu.phase_used[BlackoilPhases::Aqua] = true;
|
||||
pu.phase_used[BlackoilPhases::Liquid] = true;
|
||||
pu.phase_used[BlackoilPhases::Vapour] = false;
|
||||
pu.phase_pos[BlackoilPhases::Aqua] = 0;
|
||||
pu.phase_pos[BlackoilPhases::Liquid] = 1;
|
||||
pu.phase_pos[BlackoilPhases::Vapour] = 1; // Unused.
|
||||
} else {
|
||||
ASSERT(pu.num_phases == 3);
|
||||
pu.phase_used[BlackoilPhases::Aqua] = true;
|
||||
pu.phase_used[BlackoilPhases::Liquid] = true;
|
||||
pu.phase_used[BlackoilPhases::Vapour] = true;
|
||||
pu.phase_pos[BlackoilPhases::Aqua] = 0;
|
||||
pu.phase_pos[BlackoilPhases::Liquid] = 1;
|
||||
pu.phase_pos[BlackoilPhases::Vapour] = 2;
|
||||
}
|
||||
return pu;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void PvtPropertiesBasic::mu(const int n,
|
||||
|
@ -21,6 +21,8 @@
|
||||
#define OPM_PVTPROPERTIESBASIC_HEADER_INCLUDED
|
||||
|
||||
#include <opm/core/utility/parameters/ParameterGroup.hpp>
|
||||
#include <opm/core/props/BlackoilPhases.hpp>
|
||||
#include <vector>
|
||||
|
||||
namespace Opm
|
||||
{
|
||||
@ -53,6 +55,9 @@ namespace Opm
|
||||
/// Number of active phases.
|
||||
int numPhases() const;
|
||||
|
||||
/// \return Object describing the active phases.
|
||||
PhaseUsage phaseUsage() const;
|
||||
|
||||
/// Densities of stock components at surface conditions.
|
||||
/// \return Array of size numPhases().
|
||||
const double* surfaceDensities() const;
|
||||
|
Loading…
Reference in New Issue
Block a user