summaryrefslogtreecommitdiff
path: root/src/qms_solve.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/qms_solve.c')
-rw-r--r--src/qms_solve.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/qms_solve.c b/src/qms_solve.c
index 3ce463b..08c298f 100644
--- a/src/qms_solve.c
+++ b/src/qms_solve.c
@@ -992,28 +992,38 @@ int qms_solver_solve(QMSSolver *ctx)
return 0;
}
-void qms_solver_print_stats(QMSSolver *ctx)
+static void indent(int level)
+{
+ for (int i = 0; i < level; i++)
+ fprintf(stderr, " ");
+}
+
+void qms_solver_print_stats(QMSSolver *ctx, int indent_level)
{
QMSSolverPriv *s = ctx->priv;
+ indent(indent_level);
fprintf(stderr,
"%g%% interpolate geometry: %lu, "
"total time %g s, avg time per call %g ms\n",
(double)s->interp_geometry_time * 100 / s->solve_time,
s->interp_geometry_count, (double)s->interp_geometry_time / 1e6,
(double)s->interp_geometry_time / s->interp_geometry_count / 1e3);
+ indent(indent_level);
fprintf(stderr,
"%g%% calc equation coefficients: %lu, "
"total time %g s, avg time per call %g ms\n",
(double)s->calc_eq_coeffs_time * 100 / s->solve_time,
s->calc_eq_coeffs_count, (double)s->calc_eq_coeffs_time / 1e6,
(double)s->calc_eq_coeffs_time / s->calc_eq_coeffs_count / 1e3);
+ indent(indent_level);
fprintf(stderr,
"%g%% pseudospectral matrix construction: %lu, "
"total time %g s, avg time per call %g ms\n",
(double)s->ps_ctx->construct_matrix_time * 100 / s->solve_time,
s->ps_ctx->construct_matrix_count, (double)s->ps_ctx->construct_matrix_time / 1e6,
(double)s->ps_ctx->construct_matrix_time / s->ps_ctx->construct_matrix_count / 1e3);
+ indent(indent_level);
fprintf(stderr,
"%g%% BiCGSTAB %lu solves, "
"%lu iterations, total time %g s, "
@@ -1024,6 +1034,7 @@ void qms_solver_print_stats(QMSSolver *ctx)
(double)s->ps_ctx->cg_iter_count / s->ps_ctx->cg_solve_count,
(double)s->ps_ctx->cg_time_total / s->ps_ctx->cg_solve_count / 1e3,
(double)s->ps_ctx->cg_time_total / s->ps_ctx->cg_iter_count / 1e3);
+ indent(indent_level);
fprintf(stderr,
"%g%% LU %lu solves, total time %g s, avg time per solve %g ms\n",
(double)s->ps_ctx->lu_solves_time * 100 / s->solve_time,