From e6c975d48f918856396ce4ae6824b9c387930f3f Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Mon, 20 Jan 2020 15:46:53 +0100 Subject: mg2d: export the residual norm to the caller --- mg2d.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'mg2d.h') diff --git a/mg2d.h b/mg2d.h index 01698a8..8f48361 100644 --- a/mg2d.h +++ b/mg2d.h @@ -239,6 +239,13 @@ typedef struct MG2DContext { * Set by mg2d_solver_alloc[_mpi](). */ size_t local_size[2]; + + /** + * Maximum of the absolute value of the residual. + * + * Set by mg2d_solve() if it returns 0 or MG2D_ERR_MAXITER_REACHED. + */ + double residual_max; } MG2DContext; /** @@ -271,7 +278,8 @@ MG2DContext *mg2d_solver_alloc_mpi(MPI_Comm comm, const size_t local_start[2], * - 0 on success * - MG2D_ERR_MAXITER_REACHED if desired tolerance was not reached after * maximum allowed number of iterations were performed. The final - * value of the solution is still exported in ctx->u. + * value of the solution is still exported in ctx->u, ctx->residual_max is + * set to the final residual norm. * - MG2D_ERR_DIVERGE if the iteration process has diverged. * - another negative error code on other types of failure */ -- cgit v1.2.3