mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Add phaseUsage() method to BlackoilPropertiesInterface.
Also implement method in derived classes.
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user