22 #ifndef __HERMES_COMMON_AZTECOO_SOLVER_H_
23 #define __HERMES_COMMON_AZTECOO_SOLVER_H_
24 #include "../../config.h"
31 #include <EpetraExt_Permutation.h>
39 template <
typename Scalar>
49 void set_solver(
const char *solver);
52 void set_tolerance(
double tol);
55 void set_max_iters(
int iters);
59 virtual void set_precond(
const char *name);
67 virtual void use_node_wise_ordering(
unsigned int num_pdes);
68 virtual void use_equations_wise_ordering();
71 virtual void solve(Scalar* initial_guess);
73 virtual int get_matrix_size();
75 virtual int get_num_iters();
76 virtual double get_residual_norm();
79 void set_option(
int option,
int value);
82 void set_param(
int param,
double value);
92 EpetraExt::Permutation<Epetra_CrsMatrix> *P;
93 EpetraExt::Permutation<Epetra_CrsMatrix> *Q;
96 void create_permutation_vectors();
97 void free_permutation_data();
General (abstract) matrix representation in Hermes.
General namespace for the Hermes library.
Linear matrix solver functionality.
Encapsulation of AztecOO linear solver.
General (abstract) vector representation in Hermes.
Abstract class to define interface for preconditioners.
AztecOO aztec
Instance of the Aztec solver.
IFPACK (Trilinos package) preconditioners interface.
Abstract class for Epetra preconditioners.
HERMES_API LinearMatrixSolver< Scalar > * create_linear_solver(Matrix< Scalar > *matrix, Vector< Scalar > *rhs, bool use_direct_solver=false)
Function returning a solver according to the users's choice.
Abstract class for defining solver interface.
MatrixStructureReuseScheme
Abstract class for defining interface for iterative solvers. Internal, though utilizable for defining...
EpetraMatrix and EpetraVector storage classes for Amesos, AztecOO, ... .
ML (Trilinos package) preconditioners interface.