22 #ifndef __HERMES_COMMON_AZTECOO_SOLVER_H_
23 #define __HERMES_COMMON_AZTECOO_SOLVER_H_
24 #include "../config.h"
27 #include "linear_matrix_solver.h"
38 template <
typename Scalar>
39 class HERMES_API AztecOOSolver :
public IterSolver<Scalar>
45 void set_solver(
const char *solver);
48 void set_tolerance(
double tol);
51 void set_max_iters(
int iters);
55 virtual void set_precond(
const char *name);
57 AztecOOSolver(EpetraMatrix<Scalar> *m, EpetraVector<Scalar> *rhs);
58 virtual ~AztecOOSolver();
60 virtual int get_matrix_size();
62 virtual int get_num_iters();
63 virtual double get_residual();
67 virtual void set_precond(Precond<Scalar> *pc);
70 void set_option(
int option,
int value);
73 void set_param(
int param,
double value);
76 EpetraMatrix<Scalar> *m;
77 EpetraVector<Scalar> *rhs;
81 template<
typename T>
friend LinearMatrixSolver<T>*
create_linear_solver(Matrix<T>* matrix, Vector<T>* rhs);