HermesCommon  3.0
linear_matrix_solver.h File Reference

Linear matrix solver functionality. More...

#include "precond.h"
#include "exceptions.h"
#include "algebra/cs_matrix.h"
#include "algebra/vector.h"
#include "mixins.h"
#include "algebra/algebra_mixins.h"

Go to the source code of this file.

Classes

class  Hermes::Solvers::DirectSolver< Scalar >
 Forward declarations. More...
 
class  Hermes::Solvers::LoopSolver< Scalar >
 Abstract middle-class for solvers that work in a loop of a kind (iterative, multigrid, ...) More...
 
class  Hermes::Solvers::IterSolver< Scalar >
 Abstract class for defining interface for iterative solvers. Internal, though utilizable for defining interfaces to other algebraic packages. More...
 
class  Hermes::Solvers::AMGSolver< Scalar >
 Abstract class for defining interface for Algebraic Multigrid solvers. Internal, though utilizable for defining interfaces to other algebraic packages. More...
 
class  Hermes::Solvers::LinearMatrixSolver< Scalar >
 Abstract class for defining solver interface. More...
 
class  Hermes::Solvers::ExternalSolver< Scalar >
 Special-purpose abstract class for using external solvers. For examples implementation, see the class SimpleExternalSolver. More...
 
class  Hermes::Solvers::SimpleExternalSolver< Scalar >
 An example class for using external solvers that run a command and store the result in a file. More...
 
class  Hermes::Solvers::DirectSolver< Scalar >
 Forward declarations. More...
 
class  Hermes::Solvers::LoopSolver< Scalar >
 Abstract middle-class for solvers that work in a loop of a kind (iterative, multigrid, ...) More...
 
class  Hermes::Solvers::IterSolver< Scalar >
 Abstract class for defining interface for iterative solvers. Internal, though utilizable for defining interfaces to other algebraic packages. More...
 
class  Hermes::Solvers::AMGSolver< Scalar >
 Abstract class for defining interface for Algebraic Multigrid solvers. Internal, though utilizable for defining interfaces to other algebraic packages. More...
 

Namespaces

 Hermes
 General namespace for the Hermes library.
 
 Hermes::Solvers
 Namespace for linear / nonlinear / iterative solvers.
 

Enumerations

enum  Hermes::Solvers::MatrixStructureReuseScheme { Hermes::Solvers::HERMES_CREATE_STRUCTURE_FROM_SCRATCH, Hermes::Solvers::HERMES_REUSE_MATRIX_REORDERING, Hermes::Solvers::HERMES_REUSE_MATRIX_REORDERING_AND_SCALING, Hermes::Solvers::HERMES_REUSE_MATRIX_STRUCTURE_COMPLETELY }
 
enum  Hermes::Solvers::LoopSolverToleranceType { AbsoluteTolerance = 0, RelativeTolerance = 1, DivergenceTolerance = 2 }
 
enum  Hermes::Solvers::IterSolverType {
  CG = 0, GMRES = 1, BiCGStab = 2, CR = 3,
  IDR = 4
}
 

Functions

template<typename Scalar >
HERMES_API LinearMatrixSolver
< Scalar > * 
Hermes::Solvers::create_linear_solver (Matrix< Scalar > *matrix, Vector< Scalar > *rhs, bool use_direct_solver=false)
 Function returning a solver according to the users's choice. More...
 

Detailed Description

Linear matrix solver functionality.

Definition in file linear_matrix_solver.h.