adapt to the new preparation procedure of ewoms linear solvers

This commit is contained in:
Andreas Lauser 2019-01-18 09:05:23 +01:00
parent 4cd8eba331
commit 2563a58db8
2 changed files with 15 additions and 3 deletions

View File

@ -481,7 +481,13 @@ namespace Opm {
x = 0.0;
auto& ebosSolver = ebosSimulator_.model().newtonMethod().linearSolver();
ebosSolver.prepare(ebosJac, ebosResid);
ebosSolver.prepare(ebosJac);
ebosSolver.setResidual(ebosResid);
// actually, the error needs to be calculated after setResidual in order to
// account for parallelization properly. since the residual of ECFV
// discretizations does not need to be synchronized across processes to be
// consistent, this is not relevant for OPM-flow...
ebosSolver.setJacobian(ebosJac);
ebosSolver.solve(x);
}

View File

@ -208,11 +208,17 @@ protected:
matrix_for_preconditioner_.reset();
}
void prepare(const SparseMatrixAdapter& M, Vector& b) {
matrix_ = &M.istlMatrix();
void prepare(const SparseMatrixAdapter& M) {
}
void setResidual(Vector& b) {
rhs_ = &b;
}
void setJacobian(const SparseMatrixAdapter& M) {
matrix_ = &M.istlMatrix();
}
bool solve(Vector& x) {
// Solve system.