Make saturation functions work with two phases again.
Note that this changes ExplicitArraysFluidState to take a run-time argument for the number of phases.
This commit is contained in:
parent
6c821aef10
commit
6921bd2af9
@ -280,10 +280,10 @@ namespace Opm
|
|||||||
{
|
{
|
||||||
assert(cells != 0);
|
assert(cells != 0);
|
||||||
|
|
||||||
ExplicitArraysFluidState fluidState;
|
const int np = phase_usage_.num_phases;
|
||||||
|
ExplicitArraysFluidState fluidState(np);
|
||||||
fluidState.setSaturationArray(s);
|
fluidState.setSaturationArray(s);
|
||||||
|
|
||||||
const int np = phase_usage_.num_phases;
|
|
||||||
if (dkrds) {
|
if (dkrds) {
|
||||||
// #pragma omp parallel for
|
// #pragma omp parallel for
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
@ -333,10 +333,10 @@ namespace Opm
|
|||||||
{
|
{
|
||||||
assert(cells != 0);
|
assert(cells != 0);
|
||||||
|
|
||||||
ExplicitArraysFluidState fluidState;
|
const int np = phase_usage_.num_phases;
|
||||||
|
ExplicitArraysFluidState fluidState(np);
|
||||||
fluidState.setSaturationArray(s);
|
fluidState.setSaturationArray(s);
|
||||||
|
|
||||||
const int np = phase_usage_.num_phases;
|
|
||||||
if (dpcds) {
|
if (dpcds) {
|
||||||
// #pragma omp parallel for
|
// #pragma omp parallel for
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
@ -474,7 +474,7 @@ namespace Opm
|
|||||||
const int max_np = BlackoilPhases::MaxNumPhases;
|
const int max_np = BlackoilPhases::MaxNumPhases;
|
||||||
double s[max_np] = { 0.0 };
|
double s[max_np] = { 0.0 };
|
||||||
s[wpos] = swat;
|
s[wpos] = swat;
|
||||||
ExplicitArraysFluidState fluidState;
|
ExplicitArraysFluidState fluidState(phase_usage_.num_phases);
|
||||||
fluidState.setSaturationArray(s);
|
fluidState.setSaturationArray(s);
|
||||||
fluidState.setIndex(0);
|
fluidState.setIndex(0);
|
||||||
double pc[max_np] = { 0.0 };
|
double pc[max_np] = { 0.0 };
|
||||||
|
@ -36,10 +36,8 @@ class ExplicitArraysFluidState
|
|||||||
public:
|
public:
|
||||||
typedef double Scalar;
|
typedef double Scalar;
|
||||||
|
|
||||||
enum { numPhases = 3 };
|
explicit ExplicitArraysFluidState(const unsigned int num_phases)
|
||||||
enum { numComponents = 3 };
|
: numPhases_(num_phases)
|
||||||
|
|
||||||
ExplicitArraysFluidState()
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -75,7 +73,7 @@ public:
|
|||||||
* \brief Returns the saturation of a phase for the current cell index.
|
* \brief Returns the saturation of a phase for the current cell index.
|
||||||
*/
|
*/
|
||||||
Scalar saturation(int phaseIdx) const
|
Scalar saturation(int phaseIdx) const
|
||||||
{ return saturations_[numPhases*arrayIdx_ + phaseIdx]; }
|
{ return saturations_[numPhases_*arrayIdx_ + phaseIdx]; }
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Returns the temperature [K] of a phase for the current cell index.
|
* \brief Returns the temperature [K] of a phase for the current cell index.
|
||||||
@ -90,6 +88,7 @@ private:
|
|||||||
const double* temperature_;
|
const double* temperature_;
|
||||||
|
|
||||||
unsigned arrayIdx_;
|
unsigned arrayIdx_;
|
||||||
|
unsigned numPhases_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
Loading…
Reference in New Issue
Block a user