17 #ifndef __deal2__solver_selector_h 18 #define __deal2__solver_selector_h 21 #include <deal.II/base/config.h> 22 #include <deal.II/base/smartpointer.h> 23 #include <deal.II/lac/solver.h> 24 #include <deal.II/lac/vector.h> 25 #include <deal.II/lac/vector_memory.h> 26 #include <deal.II/lac/solver_control.h> 27 #include <deal.II/lac/solver_cg.h> 28 #include <deal.II/lac/solver_bicgstab.h> 29 #include <deal.II/lac/solver_gmres.h> 30 #include <deal.II/lac/solver_minres.h> 31 #include <deal.II/lac/vector_memory.h> 32 #include <deal.II/lac/solver_richardson.h> 33 #include <deal.II/lac/precondition.h> 100 template <
class VECTOR = Vector<
double> >
136 template<
class Matrix,
class Preconditioner>
137 void solve(
const Matrix &A,
140 const Preconditioner &precond)
const;
147 void select(
const std::string &name);
160 ::AdditionalData &data);
167 ::AdditionalData &data);
174 ::AdditionalData &data);
181 ::AdditionalData &data);
188 ::AdditionalData &data);
195 ::AdditionalData &data);
207 std::string, <<
"Solver " << arg1 <<
" does not exist. Use one of " 262 template <
class VECTOR>
267 template <
class VECTOR>
272 solver_name(solver_name)
276 template <
class VECTOR>
281 template <
class VECTOR>
289 template <
class VECTOR>
290 template<
class Matrix,
class Preconditioner>
295 const Preconditioner &precond)
const 300 solver.
solve(A,x,b,precond);
305 solver.
solve(A,x,b,precond);
310 solver.
solve(A,x,b,precond);
315 solver.
solve(A,x,b,precond);
320 solver.
solve(A,x,b,precond);
325 solver.
solve(A,x,b,precond);
332 template <
class VECTOR>
340 template <
class VECTOR>
343 return "richardson|cg|bicgstab|gmres|fgmres|minres";
347 template <
class VECTOR>
355 template <
class VECTOR>
363 template <
class VECTOR>
371 template <
class VECTOR>
379 template <
class VECTOR>
387 template <
class VECTOR>
395 DEAL_II_NAMESPACE_CLOSE
DeclException1(ExcSolverDoesNotExist, std::string,<< "Solver "<< arg1<< " does not exist. Use one of "<< std::endl<< get_solver_names())
void set_control(SolverControl &ctrl)
void solve(const MATRIX &A, VECTOR &x, const VECTOR &b, const PRECONDITIONER &precondition)
SolverRichardson< VECTOR >::AdditionalData richardson_data
void solve(const MATRIX &A, VECTOR &x, const VECTOR &b, const PRECONDITIONER &precondition)
void solve(const MATRIX &A, VECTOR &x, const VECTOR &b, const PRECONDITIONER &precondition)
SmartPointer< SolverControl, SolverSelector< VECTOR > > control
#define Assert(cond, exc)
void select(const std::string &name)
SolverFGMRES< VECTOR >::AdditionalData fgmres_data
void set_data(const typename SolverRichardson< VECTOR >::AdditionalData &data)
BlockCompressedSparsityPattern CompressedBlockSparsityPattern DEAL_II_DEPRECATED
void solve(const MATRIX &A, VECTOR &x, const VECTOR &b, const PRECONDITIONER &precondition)
void solve(const MATRIX &A, VECTOR &x, const VECTOR &b, const PRECONDITIONER &precondition)
SolverCG< VECTOR >::AdditionalData cg_data
static std::string get_solver_names()
SolverGMRES< VECTOR >::AdditionalData gmres_data
SolverBicgstab< VECTOR >::AdditionalData bicgstab_data
void solve(const Matrix &A, VECTOR &x, const VECTOR &b, const Preconditioner &precond) const
void solve(const MATRIX &A, VECTOR &x, const VECTOR &b, const PRECONDITIONER &precondition)
SolverMinRes< VECTOR >::AdditionalData minres_data