mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-11-29 20:43:49 -06:00
Added compute_totmob_omega() function.
This commit is contained in:
parent
5b01436db9
commit
4e5215e1ab
@ -104,6 +104,38 @@ namespace Opm
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
compute_totmob_omega(const Opm::IncompPropertiesInterface& props,
|
||||
const std::vector<double>& s,
|
||||
std::vector<double>& totmob,
|
||||
std::vector<double>& omega)
|
||||
{
|
||||
int num_cells = props.numCells();
|
||||
int num_phases = props.numPhases();
|
||||
totmob.resize(num_cells);
|
||||
omega.resize(num_cells);
|
||||
ASSERT(int(s.size()) == num_cells*num_phases);
|
||||
std::vector<int> cells(num_cells);
|
||||
for (int cell = 0; cell < num_cells; ++cell) {
|
||||
cells[cell] = cell;
|
||||
}
|
||||
std::vector<double> kr(num_cells*num_phases);
|
||||
props.relperm(num_cells, &s[0], &cells[0], &kr[0], 0);
|
||||
const double* mu = props.viscosity();
|
||||
for (int cell = 0; cell < num_cells; ++cell) {
|
||||
totmob[cell] = 0.0;
|
||||
for (int phase = 0; phase < num_phases; ++phase) {
|
||||
totmob[cell] += kr[2*cell + phase]/mu[phase];
|
||||
}
|
||||
}
|
||||
const double* rho = props.density();
|
||||
for (int cell = 0; cell < num_cells; ++cell) {
|
||||
omega[cell] = 0.0;
|
||||
for (int phase = 0; phase < num_phases; ++phase) {
|
||||
omega[cell] += rho[phase]*(kr[2*cell + phase]/mu[phase])/totmob[cell];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -71,6 +71,13 @@ namespace Opm
|
||||
std::vector<double>& totmob);
|
||||
|
||||
|
||||
void
|
||||
compute_totmob_omega(const Opm::IncompPropertiesInterface& props,
|
||||
const std::vector<double>& s,
|
||||
std::vector<double>& totmob,
|
||||
std::vector<double>& omega);
|
||||
|
||||
|
||||
void toWaterSat(const std::vector<double>& sboth, std::vector<double>& sw);
|
||||
|
||||
void toBothSat(const std::vector<double>& sw, std::vector<double>& sboth);
|
||||
|
Loading…
Reference in New Issue
Block a user