From 37e58ca429d4e0394faa336f4480c9aa1b23fc77 Mon Sep 17 00:00:00 2001 From: guido Date: Mon, 5 Feb 2001 09:57:59 +0000 Subject: [PATCH] print coefficients for post-processing git-svn-id: https://svn.dealii.org/trunk@3854 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/include/lac/solver_bicgstab.h | 2 +- deal.II/lac/include/lac/solver_cg.h | 30 ++++++++++++++++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/deal.II/lac/include/lac/solver_bicgstab.h b/deal.II/lac/include/lac/solver_bicgstab.h index 1335bb297e..98b6c475a2 100644 --- a/deal.II/lac/include/lac/solver_bicgstab.h +++ b/deal.II/lac/include/lac/solver_bicgstab.h @@ -197,7 +197,7 @@ class SolverBicgstab : public Subscriptor, private Solver double res; /** - * Additional parameters.. + * Additional parameters. */ AdditionalData additional_data; diff --git a/deal.II/lac/include/lac/solver_cg.h b/deal.II/lac/include/lac/solver_cg.h index 1ddb2ca00d..577da83699 100644 --- a/deal.II/lac/include/lac/solver_cg.h +++ b/deal.II/lac/include/lac/solver_cg.h @@ -51,11 +51,24 @@ class SolverCG : public Subscriptor, private Solver /** * Standardized data struct to * pipe additional data to the - * solver. This solver does not - * need additional data yet. + * solver. */ struct AdditionalData { + /** + * Write coefficients alpha and + * beta to the log file for later use. + */ + bool log_coefficients; + + /** + * Constructor. Initialize data fields. + * Confer the description of those. + */ + AdditionalData (bool log_coefficients = false) + : + log_coefficients (log_coefficients) + {} }; /** @@ -125,6 +138,11 @@ class SolverCG : public Subscriptor, private Solver * the square root of the @p{res2} value. */ double res2; + + /** + * Additional parameters. + */ + AdditionalData additional_data; }; @@ -134,9 +152,10 @@ class SolverCG : public Subscriptor, private Solver template SolverCG::SolverCG(SolverControl &cn, VectorMemory &mem, - const AdditionalData &) + const AdditionalData &data) : - Solver(cn,mem) + Solver(cn,mem), + additional_data(data) {} @@ -236,6 +255,9 @@ SolverCG::solve (const MATRIX &A, print_vectors(it, x, g, d); + if (additional_data.log_coefficients) + deallog << "alpha-beta:" << alpha << '\t' << beta << endl; + conv = control().check(it,res); if (conv) break; -- 2.39.5