From a10d448ded395527984dc5ef9199a5a308a4b115 Mon Sep 17 00:00:00 2001 From: hartmann Date: Tue, 11 May 1999 16:12:21 +0000 Subject: [PATCH] small changes and corrections git-svn-id: https://svn.dealii.org/trunk@1319 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/include/lac/solver_selector.h | 54 +++++++++++++++++++---- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/deal.II/lac/include/lac/solver_selector.h b/deal.II/lac/include/lac/solver_selector.h index 9d31ef82d8..994d2eb8c0 100644 --- a/deal.II/lac/include/lac/solver_selector.h +++ b/deal.II/lac/include/lac/solver_selector.h @@ -114,28 +114,28 @@ class SolverSelector * info see the #Solver# class. */ void set_data(const typename SolverRichardson - ::AdditionalData &data) { richardson_data=data; }; + ::AdditionalData &data); /** * Set the additional data. For more * info see the #Solver# class. */ void set_data(const typename SolverCG - ::AdditionalData &data) { cg_data=data; }; + ::AdditionalData &data); /** * Set the additional data. For more * info see the #Solver# class. */ void set_data(const typename SolverBicgstab - ::AdditionalData &data) { bicgstab_data=data; }; + ::AdditionalData &data); /** * Set the additional data. For more * info see the #Solver# class. */ void set_data(const typename SolverGMRES - ::AdditionalData &data) { gmres_data=data; }; + ::AdditionalData &data); /** * Get the names of all implemented @@ -223,22 +223,26 @@ SolverSelector::solve(const Matrix &A, { if (solver_name=="richardson") { - SolverRichardson solver(*control,*vector_memory); + SolverRichardson solver(*control,*vector_memory, + richardson_data); return solver.solve(A,x,b,precond); } else if (solver_name=="cg") { - SolverCG solver(*control,*vector_memory); + SolverCG solver(*control,*vector_memory, + cg_data); return solver.solve(A,x,b,precond); } else if (solver_name=="bicgstab") { - SolverBicgstab solver(*control,*vector_memory); + SolverBicgstab solver(*control,*vector_memory, + bicgstab_data); return solver.solve(A,x,b,precond); } else if (solver_name=="gmres") { - SolverGMRES solver(*control,*vector_memory,100); + SolverGMRES solver(*control,*vector_memory, + gmres_data); return solver.solve(A,x,b,precond); } else @@ -256,6 +260,40 @@ string SolverSelector::get_solver_names() }; + +template +void SolverSelector::set_data( + const typename SolverGMRES::AdditionalData &data) +{ + gmres_data=data; +} + + +template +void SolverSelector::set_data( + const typename SolverRichardson::AdditionalData &data) +{ + richardson_data=data; +} + + +template +void SolverSelector::set_data( + const typename SolverCG::AdditionalData &data) +{ + cg_data=data; +} + + +template +void SolverSelector::set_data( + const typename SolverBicgstab::AdditionalData &data) +{ + bicgstab_data=data; +}; + + + /*---------------------------- solver_selector.h ---------------------------*/ /* end of #ifndef __solver_selector_H */ #endif -- 2.39.5