mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
merge
This commit is contained in:
@@ -446,7 +446,11 @@ main(int argc, char** argv)
|
|||||||
if (use_segregation_split) {
|
if (use_segregation_split) {
|
||||||
use_column_solver = param.getDefault("use_column_solver", use_column_solver);
|
use_column_solver = param.getDefault("use_column_solver", use_column_solver);
|
||||||
if (use_column_solver) {
|
if (use_column_solver) {
|
||||||
|
// use_gauss_seidel_gravity is not implemented for polymer.
|
||||||
use_gauss_seidel_gravity = param.getDefault("use_gauss_seidel_gravity", use_gauss_seidel_gravity);
|
use_gauss_seidel_gravity = param.getDefault("use_gauss_seidel_gravity", use_gauss_seidel_gravity);
|
||||||
|
if (use_gauss_seidel_gravity) {
|
||||||
|
THROW("gauss_seidel_gravity is not implemented for polymer");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace Opm
|
|||||||
/// problem. For each column, its cells must be in a single
|
/// problem. For each column, its cells must be in a single
|
||||||
/// vertical column, and ordered
|
/// vertical column, and ordered
|
||||||
/// (direction doesn't matter).
|
/// (direction doesn't matter).
|
||||||
void solve(const std::pair<std::vector<int>, std::vector<std::vector<int> > >& columns,
|
void solve(const std::vector<std::vector<int> >& columns,
|
||||||
const double dt,
|
const double dt,
|
||||||
std::vector<double>& s,
|
std::vector<double>& s,
|
||||||
std::vector<double>& c,
|
std::vector<double>& c,
|
||||||
|
|||||||
@@ -111,13 +111,13 @@ namespace Opm
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// \param[in] columns for each column (with logical cartesian indices as key),
|
/// \param[in] columns for each column col, columns[col]
|
||||||
/// contains the cells on which to solve the segregation
|
/// contains the cells on which to solve the segregation
|
||||||
/// problem. For each column, its cells must be in a single
|
/// problem. For each column, its cells must be in a single
|
||||||
/// vertical column, and ordered
|
/// vertical column, connected and ordered
|
||||||
/// (direction doesn't matter).
|
/// (direction doesn't matter).
|
||||||
template <class Model>
|
template <class Model>
|
||||||
void GravityColumnSolverPolymer<Model>::solve(const std::pair<std::vector<int>, std::vector<std::vector<int> > >& columns,
|
void GravityColumnSolverPolymer<Model>::solve(const std::vector<std::vector<int> >& columns,
|
||||||
const double dt,
|
const double dt,
|
||||||
std::vector<double>& s,
|
std::vector<double>& s,
|
||||||
std::vector<double>& c,
|
std::vector<double>& c,
|
||||||
@@ -134,9 +134,9 @@ namespace Opm
|
|||||||
double max_delta = 1e100;
|
double max_delta = 1e100;
|
||||||
while (iter < maxit_) {
|
while (iter < maxit_) {
|
||||||
model_.initIteration(state, grid_, sys);
|
model_.initIteration(state, grid_, sys);
|
||||||
int size = columns.second.size();
|
int size = columns.size();
|
||||||
for(int i = 0; i < size; ++i) {
|
for(int i = 0; i < size; ++i) {
|
||||||
solveSingleColumn(columns.second[i], dt, s, c, cmax, increment);
|
solveSingleColumn(columns[i], dt, s, c, cmax, increment);
|
||||||
}
|
}
|
||||||
for (int cell = 0; cell < grid_.number_of_cells; ++cell) {
|
for (int cell = 0; cell < grid_.number_of_cells; ++cell) {
|
||||||
sys.vector().writableSolution()[2*cell + 0] += increment[2*cell + 0];
|
sys.vector().writableSolution()[2*cell + 0] += increment[2*cell + 0];
|
||||||
|
|||||||
Reference in New Issue
Block a user