diff --git a/dune/solvers/solvers/cgsolver.cc b/dune/solvers/solvers/cgsolver.cc index b715cf60a5e4f98d096bae650de84feace36490d..35ead789174fe45beb2dd120232b1d36cfef8358 100644 --- a/dune/solvers/solvers/cgsolver.cc +++ b/dune/solvers/solvers/cgsolver.cc @@ -81,25 +81,25 @@ void CGSolver<MatrixType, VectorType>::solve() // Perform one iteration step // minimize in given search direction p - matrix_->mv(p,q); // q=Ap - alpha = p*q; // scalar product - lambda = rholast/alpha; // minimization - x_->axpy(lambda,p); // update solution - rhs_->axpy(-lambda,q); // update defect + matrix_->mv(p,q); // q=Ap + alpha = p*q; // scalar product + lambda = rholast/alpha; // minimization + x_->axpy(lambda,p); // update solution + rhs_->axpy(-lambda,q); // update defect // determine new search direction - q = 0; // clear correction + q = 0; // clear correction - // apply preconditioner + // apply preconditioner preconditioner_->setProblem(*matrix_,q,b); preconditioner_->iterate(); q = preconditioner_->getSol(); - rho = q*b; // orthogonalization - beta = rho/rholast; // scaling factor - p *= beta; // scale old search direction - p += q; // orthogonalization with correction - rholast = rho; // remember rho for recurrence + rho = q*b; // orthogonalization + beta = rho/rholast; // scaling factor + p *= beta; // scale old search direction + p += q; // orthogonalization with correction + rholast = rho; // remember rho for recurrence // write iteration to file, if requested if (this->historyBuffer_!="")