From: hartmann Date: Tue, 11 May 1999 16:12:21 +0000 (+0000) Subject: small changes and corrections X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a10d448ded395527984dc5ef9199a5a308a4b115;p=dealii-svn.git small changes and corrections git-svn-id: https://svn.dealii.org/trunk@1319 0785d39b-7218-0410-832d-ea1e28bc413d --- 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