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 pvt_.numPhases();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// \return Object describing the active phases.
|
||||||
|
PhaseUsage BlackoilPropertiesBasic::phaseUsage() const
|
||||||
|
{
|
||||||
|
return pvt_.phaseUsage();
|
||||||
|
}
|
||||||
|
|
||||||
/// \param[in] n Number of data points.
|
/// \param[in] n Number of data points.
|
||||||
/// \param[in] p Array of n pressure values.
|
/// \param[in] p Array of n pressure values.
|
||||||
/// \param[in] z Array of nP surface volume 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).
|
/// \return P, the number of phases (also the number of components).
|
||||||
virtual int numPhases() const;
|
virtual int numPhases() const;
|
||||||
|
|
||||||
|
/// \return Object describing the active phases.
|
||||||
|
virtual PhaseUsage phaseUsage() const;
|
||||||
|
|
||||||
/// \param[in] n Number of data points.
|
/// \param[in] n Number of data points.
|
||||||
/// \param[in] p Array of n pressure values.
|
/// \param[in] p Array of n pressure values.
|
||||||
/// \param[in] z Array of nP surface volume values.
|
/// \param[in] z Array of nP surface volume values.
|
||||||
|
@ -147,6 +147,12 @@ namespace Opm
|
|||||||
return pvt_.numPhases();
|
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] n Number of data points.
|
||||||
/// \param[in] p Array of n pressure values.
|
/// \param[in] p Array of n pressure values.
|
||||||
/// \param[in] z Array of nP surface volume 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).
|
/// \return P, the number of phases (also the number of components).
|
||||||
virtual int numPhases() const;
|
virtual int numPhases() const;
|
||||||
|
|
||||||
|
/// \return Object describing the active phases.
|
||||||
|
virtual PhaseUsage phaseUsage() const;
|
||||||
|
|
||||||
/// \param[in] n Number of data points.
|
/// \param[in] n Number of data points.
|
||||||
/// \param[in] p Array of n pressure values.
|
/// \param[in] p Array of n pressure values.
|
||||||
/// \param[in] z Array of nP surface volume values.
|
/// \param[in] z Array of nP surface volume values.
|
||||||
|
@ -23,6 +23,8 @@
|
|||||||
namespace Opm
|
namespace Opm
|
||||||
{
|
{
|
||||||
|
|
||||||
|
class PhaseUsage;
|
||||||
|
|
||||||
/// Abstract base class for blackoil fluid and reservoir properties.
|
/// Abstract base class for blackoil fluid and reservoir properties.
|
||||||
/// Supports variable number of spatial dimensions, called D.
|
/// Supports variable number of spatial dimensions, called D.
|
||||||
/// Supports variable number of phases, but assumes that
|
/// 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).
|
/// \return P, the number of phases (also the number of components).
|
||||||
virtual int numPhases() const = 0;
|
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] n Number of data points.
|
||||||
/// \param[in] p Array of n pressure values.
|
/// \param[in] p Array of n pressure values.
|
||||||
/// \param[in] z Array of nP surface volume 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
|
int BlackoilPvtProperties::numPhases() const
|
||||||
{
|
{
|
||||||
return phase_usage_.num_phases;
|
return phase_usage_.num_phases;
|
||||||
|
@ -55,6 +55,9 @@ namespace Opm
|
|||||||
/// data without fitting a spline.
|
/// data without fitting a spline.
|
||||||
void init(const EclipseGridParser& deck, const int samples);
|
void init(const EclipseGridParser& deck, const int samples);
|
||||||
|
|
||||||
|
/// \return Object describing the active phases.
|
||||||
|
PhaseUsage phaseUsage() const;
|
||||||
|
|
||||||
/// Number of active phases.
|
/// Number of active phases.
|
||||||
int numPhases() const;
|
int numPhases() const;
|
||||||
|
|
||||||
|
@ -85,6 +85,30 @@ namespace Opm
|
|||||||
return density_.size();
|
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,
|
void PvtPropertiesBasic::mu(const int n,
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
#define OPM_PVTPROPERTIESBASIC_HEADER_INCLUDED
|
#define OPM_PVTPROPERTIESBASIC_HEADER_INCLUDED
|
||||||
|
|
||||||
#include <opm/core/utility/parameters/ParameterGroup.hpp>
|
#include <opm/core/utility/parameters/ParameterGroup.hpp>
|
||||||
|
#include <opm/core/props/BlackoilPhases.hpp>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
namespace Opm
|
namespace Opm
|
||||||
{
|
{
|
||||||
@ -53,6 +55,9 @@ namespace Opm
|
|||||||
/// Number of active phases.
|
/// Number of active phases.
|
||||||
int numPhases() const;
|
int numPhases() const;
|
||||||
|
|
||||||
|
/// \return Object describing the active phases.
|
||||||
|
PhaseUsage phaseUsage() const;
|
||||||
|
|
||||||
/// Densities of stock components at surface conditions.
|
/// Densities of stock components at surface conditions.
|
||||||
/// \return Array of size numPhases().
|
/// \return Array of size numPhases().
|
||||||
const double* surfaceDensities() const;
|
const double* surfaceDensities() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user