uBLASKrylovSolver.h

Note

The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.

class uBLASKrylovSolver

Parent class(es)

This class implements Krylov methods for linear systems of the form Ax = b using uBLAS data types.

uBLASKrylovSolver(std::string method = "default", std::string preconditioner = "default")

Create Krylov solver for a particular method and preconditioner

uBLASKrylovSolver(uBLASPreconditioner &pc)

Create Krylov solver for a particular uBLASPreconditioner

uBLASKrylovSolver(std::string method, uBLASPreconditioner &pc)

Create Krylov solver for a particular method and uBLASPreconditioner

void set_operator(std::shared_ptr<const GenericLinearOperator> A)

Solve the operator (matrix)

void set_operators(std::shared_ptr<const GenericLinearOperator> A, std::shared_ptr<const GenericLinearOperator> P)

Set operator (matrix) and preconditioner matrix

const GenericLinearOperator &get_operator() const

Return the operator (matrix)

std::size_t solve(GenericVector &x, const GenericVector &b)

Solve linear system Ax = b and return number of iterations

std::size_t solve(const GenericLinearOperator &A, GenericVector &x, const GenericVector &b)

Solve linear system Ax = b and return number of iterations

static std::vector<std::pair<std::string, std::string>> methods()

Return a list of available solver methods

static std::vector<std::pair<std::string, std::string>> preconditioners()

Return a list of available preconditioners

static Parameters default_parameters()

Default parameter values

std::size_t solve_krylov(const MatA &A, uBLASVector &x, const uBLASVector &b, const MatP &P)

Select solver and solve linear system Ax = b and return number of iterations

std::size_t solveCG(const Mat &A, uBLASVector &x, const uBLASVector &b, bool &converged) const

Solve linear system Ax = b using CG

std::size_t solveGMRES(const Mat &A, uBLASVector &x, const uBLASVector &b, bool &converged) const

Solve linear system Ax = b using restarted GMRES

std::size_t solveBiCGStab(const Mat &A, uBLASVector &x, const uBLASVector &b, bool &converged) const

Solve linear system Ax = b using BiCGStab

void select_preconditioner(std::string preconditioner)

Select and create named preconditioner

void read_parameters()

Read solver parameters