mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Added satRange() method to Incomp* classes and Saturation* classes.
So far not yet added to BlackoilPropertiesInterface.
This commit is contained in:
parent
75731efa9a
commit
9901d20721
@ -136,6 +136,20 @@ namespace Opm
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Obtain the range of allowable saturation values.
|
||||||
|
/// In cell cells[i], saturation of phase p is allowed to be
|
||||||
|
/// in the interval [smin[i*P + p], smax[i*P + p]].
|
||||||
|
/// \param[in] n Number of data points.
|
||||||
|
/// \param[in] cells Array of n cell indices.
|
||||||
|
/// \param[out] smin Array of nP minimum s values, array must be valid before calling.
|
||||||
|
/// \param[out] smax Array of nP maximum s values, array must be valid before calling.
|
||||||
|
void IncompPropertiesBasic::satRange(const int n,
|
||||||
|
const int* /*cells*/,
|
||||||
|
double* smin,
|
||||||
|
double* smax) const
|
||||||
|
{
|
||||||
|
satprops_.satRange(n, smin, smax);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
|
||||||
|
@ -114,6 +114,19 @@ namespace Opm
|
|||||||
const int* cells,
|
const int* cells,
|
||||||
double* pc,
|
double* pc,
|
||||||
double* dpcds) const;
|
double* dpcds) const;
|
||||||
|
|
||||||
|
|
||||||
|
/// Obtain the range of allowable saturation values.
|
||||||
|
/// In cell cells[i], saturation of phase p is allowed to be
|
||||||
|
/// in the interval [smin[i*P + p], smax[i*P + p]].
|
||||||
|
/// \param[in] n Number of data points.
|
||||||
|
/// \param[in] cells Array of n cell indices.
|
||||||
|
/// \param[out] smin Array of nP minimum s values, array must be valid before calling.
|
||||||
|
/// \param[out] smax Array of nP maximum s values, array must be valid before calling.
|
||||||
|
virtual void satRange(const int n,
|
||||||
|
const int* cells,
|
||||||
|
double* smin,
|
||||||
|
double* smax) const;
|
||||||
private:
|
private:
|
||||||
RockBasic rock_;
|
RockBasic rock_;
|
||||||
PvtPropertiesBasic pvt_;
|
PvtPropertiesBasic pvt_;
|
||||||
|
@ -128,6 +128,20 @@ namespace Opm
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Obtain the range of allowable saturation values.
|
||||||
|
/// In cell cells[i], saturation of phase p is allowed to be
|
||||||
|
/// in the interval [smin[i*P + p], smax[i*P + p]].
|
||||||
|
/// \param[in] n Number of data points.
|
||||||
|
/// \param[in] cells Array of n cell indices.
|
||||||
|
/// \param[out] smin Array of nP minimum s values, array must be valid before calling.
|
||||||
|
/// \param[out] smax Array of nP maximum s values, array must be valid before calling.
|
||||||
|
void IncompPropertiesFromDeck::satRange(const int n,
|
||||||
|
const int* /*cells*/,
|
||||||
|
double* smin,
|
||||||
|
double* smax) const
|
||||||
|
{
|
||||||
|
satprops_.satRange(n, smin, smax);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
|
||||||
|
@ -111,6 +111,19 @@ namespace Opm
|
|||||||
const int* cells,
|
const int* cells,
|
||||||
double* pc,
|
double* pc,
|
||||||
double* dpcds) const;
|
double* dpcds) const;
|
||||||
|
|
||||||
|
|
||||||
|
/// Obtain the range of allowable saturation values.
|
||||||
|
/// In cell cells[i], saturation of phase p is allowed to be
|
||||||
|
/// in the interval [smin[i*P + p], smax[i*P + p]].
|
||||||
|
/// \param[in] n Number of data points.
|
||||||
|
/// \param[in] cells Array of n cell indices.
|
||||||
|
/// \param[out] smin Array of nP minimum s values, array must be valid before calling.
|
||||||
|
/// \param[out] smax Array of nP maximum s values, array must be valid before calling.
|
||||||
|
virtual void satRange(const int n,
|
||||||
|
const int* cells,
|
||||||
|
double* smin,
|
||||||
|
double* smax) const;
|
||||||
private:
|
private:
|
||||||
RockFromDeck rock_;
|
RockFromDeck rock_;
|
||||||
PvtPropertiesIncompFromDeck pvt_;
|
PvtPropertiesIncompFromDeck pvt_;
|
||||||
|
@ -95,6 +95,18 @@ namespace Opm
|
|||||||
const int* cells,
|
const int* cells,
|
||||||
double* pc,
|
double* pc,
|
||||||
double* dpcds) const = 0;
|
double* dpcds) const = 0;
|
||||||
|
|
||||||
|
/// Obtain the range of allowable saturation values.
|
||||||
|
/// In cell cells[i], saturation of phase p is allowed to be
|
||||||
|
/// in the interval [smin[i*P + p], smax[i*P + p]].
|
||||||
|
/// \param[in] n Number of data points.
|
||||||
|
/// \param[in] cells Array of n cell indices.
|
||||||
|
/// \param[out] smin Array of nP minimum s values, array must be valid before calling.
|
||||||
|
/// \param[out] smax Array of nP maximum s values, array must be valid before calling.
|
||||||
|
virtual void satRange(const int n,
|
||||||
|
const int* cells,
|
||||||
|
double* smin,
|
||||||
|
double* smax) const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -197,6 +197,17 @@ namespace Opm
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// Obtain the range of allowable saturation values.
|
||||||
|
/// \param[in] n Number of data points.
|
||||||
|
/// \param[out] smin Array of nP minimum s values, array must be valid before calling.
|
||||||
|
/// \param[out] smax Array of nP maximum s values, array must be valid before calling.
|
||||||
|
void SaturationPropsBasic::satRange(const int n,
|
||||||
|
double* smin,
|
||||||
|
double* smax) const
|
||||||
|
{
|
||||||
|
std::fill(smin, smin + num_phases_*n, 0.0);
|
||||||
|
std::fill(smax, smax + num_phases_*n, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,6 +76,13 @@ namespace Opm
|
|||||||
double* pc,
|
double* pc,
|
||||||
double* dpcds) const;
|
double* dpcds) const;
|
||||||
|
|
||||||
|
/// Obtain the range of allowable saturation values.
|
||||||
|
/// \param[in] n Number of data points.
|
||||||
|
/// \param[out] smin Array of nP minimum s values, array must be valid before calling.
|
||||||
|
/// \param[out] smax Array of nP maximum s values, array must be valid before calling.
|
||||||
|
void satRange(const int n,
|
||||||
|
double* smin,
|
||||||
|
double* smax) const;
|
||||||
private:
|
private:
|
||||||
enum RelPermFunc { Constant, Linear, Quadratic };
|
enum RelPermFunc { Constant, Linear, Quadratic };
|
||||||
int num_phases_;
|
int num_phases_;
|
||||||
|
@ -67,6 +67,13 @@ namespace Opm
|
|||||||
double* pc,
|
double* pc,
|
||||||
double* dpcds) const;
|
double* dpcds) const;
|
||||||
|
|
||||||
|
/// Obtain the range of allowable saturation values.
|
||||||
|
/// \param[in] n Number of data points.
|
||||||
|
/// \param[out] smin Array of nP minimum s values, array must be valid before calling.
|
||||||
|
/// \param[out] smax Array of nP maximum s values, array must be valid before calling.
|
||||||
|
void satRange(const int n,
|
||||||
|
double* smin,
|
||||||
|
double* smax) const;
|
||||||
private:
|
private:
|
||||||
void evalKr(const double* s, double* kr) const;
|
void evalKr(const double* s, double* kr) const;
|
||||||
void evalKrDeriv(const double* s, double* kr, double* dkrds) const;
|
void evalKrDeriv(const double* s, double* kr, double* dkrds) const;
|
||||||
@ -82,6 +89,8 @@ namespace Opm
|
|||||||
utils::UniformTableLinear<double> krog_;
|
utils::UniformTableLinear<double> krog_;
|
||||||
utils::UniformTableLinear<double> pcog_;
|
utils::UniformTableLinear<double> pcog_;
|
||||||
double krocw_; // = krow_(s_wc)
|
double krocw_; // = krow_(s_wc)
|
||||||
|
double smin_[PhaseUsage::MaxNumPhases];
|
||||||
|
double smax_[PhaseUsage::MaxNumPhases];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user