69 #define AZ_cg_condnum 11
70 #define AZ_gmres_condnum 12
86 #define AZ_recursive 12
87 #define AZ_smoother 13
88 #define AZ_dom_decomp 14
90 #define AZ_multilevel 15
92 #define AZ_user_precond 16
94 #define AZ_bilu_ifp 17
165 #undef AZ_gmres_condnum
181 #undef AZ_user_precond
191 #ifdef Belos_ENABLE_Experimental
226 struct AbstractSolverPrivate;
245 const Vector & solve(
const Vector & b);
251 virtual std::string validParams()
const = 0;
254 virtual std::string currentParams()
const = 0;
257 virtual std::string status()
const = 0;
260 virtual std::string timing()
const = 0;
263 virtual void set(
const std::string & name,
const int & value) = 0;
264 virtual void set(
const std::string & name,
const bool & value) = 0;
265 virtual void set(
const std::string & name,
const double & value) = 0;
266 virtual void set(
const std::string & name,
const std::string & value) = 0;
276 virtual void solveProblem() = 0;
279 AbstractSolverPrivate * my;
313 virtual int numIterations()
const = 0;
326 struct AmesosSolverPrivate;
347 std::string validParams()
const;
348 std::string currentParams()
const;
351 std::string status()
const;
352 std::string timing()
const;
355 void set(
const std::string & name,
const int & value);
356 void set(
const std::string & name,
const bool & value);
357 void set(
const std::string & name,
const double & value);
358 void set(
const std::string & name,
const std::string & value);
364 void solveProblem(
const bool noSymbolicFactorization,
365 const bool noNumericFactorization);
369 AmesosSolverPrivate * myAmesos;
374 struct AztecSolverPrivate;
400 void setPreconditioner(
const MLSolver & ML);
403 std::string validParams()
const;
404 std::string currentParams()
const;
407 std::string status()
const;
408 std::string timing()
const;
411 void set(
const std::string & name,
const int & value);
412 void set(
const std::string & name,
const bool & value);
413 void set(
const std::string & name,
const double & value);
414 void set(
const std::string & name,
const std::string & value);
417 void set(
const int & option,
const int & value);
418 void set(
const int & param,
const double & value);
421 int numIterations()
const;
430 AztecSolverPrivate * myAztec;
435 struct BelosSolverPrivate;
454 std::string validParams()
const;
455 std::string currentParams()
const;
458 std::string status()
const;
459 std::string timing()
const;
462 void set(
const std::string & name,
const int & value);
463 void set(
const std::string & name,
const bool & value);
464 void set(
const std::string & name,
const double & value);
465 void set(
const std::string & name,
const std::string & value);
472 int setPreconditioner(
const std::string & precType,
const SparseMatrix &A,
473 const bool & leftprec,
const int & OverlapLevel=0);
478 int numIterations()
const;
487 BelosSolverPrivate * myBelos;
492 Epetra_Operator * getPrecOperator()
const;
497 struct MLSolverPrivate;
512 explicit MLSolver(
const SparseMatrix &A,
513 const int solver = MLSolvers::SA);
519 std::string validParams()
const;
520 std::string currentParams()
const;
523 std::string status()
const;
524 std::string timing()
const;
527 void set(
const std::string & name,
const int & value);
528 void set(
const std::string & name,
const bool & value);
529 void set(
const std::string & name,
const double & value);
530 void set(
const std::string & name,
const std::string & value);
533 void set(
const int & option,
const int & value);
536 int numIterations()
const;
545 MLSolverPrivate * myML;
550 Epetra_Operator * getPrecOperator()
const;
Fixed-point iteration.
Definition: gsTrilinosSolvers.h:113
Sparse LU decomposition.
Definition: gsTrilinosSolvers.h:144
Belos solvers.
Definition: gsTrilinosSolvers.h:186
TFQMR solver.
Definition: gsTrilinosSolvers.h:206
User defined preconditioner.
Definition: gsTrilinosSolvers.h:135
Pseudo Block CG solver.
Definition: gsTrilinosSolvers.h:201
DD with block-ILU in subdomains.
Definition: gsTrilinosSolvers.h:128
Fixed-point iteration.
Definition: gsTrilinosSolvers.h:112
SuperLU (parallel)
Definition: gsTrilinosSolvers.h:51
Sparse direct LU solver.
Definition: gsTrilinosSolvers.h:109
Aztec preconditioners.
Definition: gsTrilinosSolvers.h:118
Sparse ILUT decomposition (Saad)
Definition: gsTrilinosSolvers.h:145
Recursive call to iteration.
Definition: gsTrilinosSolvers.h:132
Sparse ILU(k,w) decomposition.
Definition: gsTrilinosSolvers.h:147
Lapack (serial)
Definition: gsTrilinosSolvers.h:45
GMRES solver with cond.num. estimation.
Definition: gsTrilinosSolvers.h:104
Non-overlapping domain decomposition.
Definition: gsTrilinosSolvers.h:126
Abstract direct solver base class.
Definition: gsTrilinosSolvers.h:287
Super LU direct solver.
Definition: gsTrilinosSolvers.h:110
Sparse ICC(k) decomposition.
Definition: gsTrilinosSolvers.h:149
Pseudo Block TFQMR solver.
Definition: gsTrilinosSolvers.h:204
Indefinite symmetric like SymmLQ.
Definition: gsTrilinosSolvers.h:111
DD with RILU in subdomains.
Definition: gsTrilinosSolvers.h:131
Belos solver class.
Definition: gsTrilinosSolvers.h:441
BiCGStab solver.
Definition: gsTrilinosSolvers.h:108
ML solver class.
Definition: gsTrilinosSolvers.h:503
Amesos sparse direct solvers.
Definition: gsTrilinosSolvers.h:42
Recycling GMRES solver.
Definition: gsTrilinosSolvers.h:196
CG squared solver.
Definition: gsTrilinosSolvers.h:106
DD with ILUT in subdomains.
Definition: gsTrilinosSolvers.h:130
DD with ILU in subdomains.
Definition: gsTrilinosSolvers.h:127
Sparse ILU(k) decomposition.
Definition: gsTrilinosSolvers.h:146
Umfpack (serial)
Definition: gsTrilinosSolvers.h:47
LSQR solver.
Definition: gsTrilinosSolvers.h:198
Sparse block ILU(k) decomposition.
Definition: gsTrilinosSolvers.h:148
Pardiso (serial/OpenMP)
Definition: gsTrilinosSolvers.h:48
Dscpack (parallel)
Definition: gsTrilinosSolvers.h:53
DD with incomplete Choleski in subdomains.
Definition: gsTrilinosSolvers.h:129
KLU (serial)
Definition: gsTrilinosSolvers.h:46
DD with coarse grid.
Definition: gsTrilinosSolvers.h:134
Jacobi.
Definition: gsTrilinosSolvers.h:122
Fixed-point solver.
Definition: gsTrilinosSolvers.h:195
Amesos solver class.
Definition: gsTrilinosSolvers.h:332
Provides a list of labeled parameters/options that can be set and accessed easily.
Neumann series polynomial.
Definition: gsTrilinosSolvers.h:123
No preconditioning.
Definition: gsTrilinosSolvers.h:121
Mumps (parallel)
Definition: gsTrilinosSolvers.h:52
int maxIter
Default maximum number of iterations for all iterative solvers.
Definition: gsTrilinosSolvers.h:321
CG solver with cond. num. estimation.
Definition: gsTrilinosSolvers.h:102
Pseudo Block GMRES solver.
Definition: gsTrilinosSolvers.h:202
CG solver.
Definition: gsTrilinosSolvers.h:101
Minres solver.
Definition: gsTrilinosSolvers.h:199
PCPG solver.
Definition: gsTrilinosSolvers.h:200
SuperLU (serial)
Definition: gsTrilinosSolvers.h:50
Symmetric Gauss-Seidel.
Definition: gsTrilinosSolvers.h:125
BiCGStab solver.
Definition: gsTrilinosSolvers.h:189
Wrapper for Trilinos/Epetra vector.
RCG solver.
Definition: gsTrilinosSolvers.h:205
Block GC solver.
Definition: gsTrilinosSolvers.h:190
Recursive call to iteration.
Definition: gsTrilinosSolvers.h:133
Aztec solvers.
Definition: gsTrilinosSolvers.h:98
Hybrid block GMRES solver.
Definition: gsTrilinosSolvers.h:197
Abstract solver base class.
Definition: gsTrilinosSolvers.h:233
GMRES solver.
Definition: gsTrilinosSolvers.h:103
double tolerance
Default tolerance for all iterative solvers.
Definition: gsTrilinosSolvers.h:318
Actez solver class.
Definition: gsTrilinosSolvers.h:380
Class which holds a list of parameters/options, and provides easy access to them. ...
Definition: gsOptionList.h:32
TFQMR solver.
Definition: gsTrilinosSolvers.h:107
Block GMRES solver.
Definition: gsTrilinosSolvers.h:194
Pseudo Block CG solver.
Definition: gsTrilinosSolvers.h:203
recursive GMRES
Definition: gsTrilinosSolvers.h:105
Taucs (serial)
Definition: gsTrilinosSolvers.h:49
Least-squares polynomial.
Definition: gsTrilinosSolvers.h:124
DD with BILU (Ifpack version)
Definition: gsTrilinosSolvers.h:136
Aztec subdomain solver.
Definition: gsTrilinosSolvers.h:141
Abstract iterative solver base class.
Definition: gsTrilinosSolvers.h:302