PETScKrylovSolver.h

Note

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

class PETScKrylovSolver

Parent class(es)

This class implements Krylov methods for linear systems of the form Ax = b. It is a wrapper for the Krylov solvers of PETSc.

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

Create Krylov solver for a particular method and names preconditioner

PETScKrylovSolver(std::string method, PETScPreconditioner &preconditioner)

Create Krylov solver for a particular method and PETScPreconditioner

PETScKrylovSolver(std::string method, std::shared_ptr<PETScPreconditioner> preconditioner)

Create Krylov solver for a particular method and PETScPreconditioner (shared_ptr version)

PETScKrylovSolver(std::string method, PETScUserPreconditioner &preconditioner)

Create Krylov solver for a particular method and PETScPreconditioner

PETScKrylovSolver(std::string method, std::shared_ptr<PETScUserPreconditioner> preconditioner)

Create Krylov solver for a particular method and PETScPreconditioner (shared_ptr version)

explicit PETScKrylovSolver(KSP ksp)

Create solver wrapper of a PETSc KSP object

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

Set operator (matrix)

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

Set operator (matrix) and preconditioner matrix

void set_nullspace(const VectorSpaceBasis &nullspace)

Set null space of the operator (matrix). This is used to solve singular systems

const PETScBaseMatrix &get_operator() const

Get 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(PETScVector &x, const PETScVector &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

void set_reuse_preconditioner(bool reuse_pc)

Reuse preconditioner if true, otherwise do not, even if matrix operator changes (by default preconditioner is re-built if the matrix changes)

void set_options_prefix(std::string options_prefix)

Sets the prefix used by PETSc when searching the options database

std::string get_options_prefix() const

Returns the prefix used by PETSc when searching the options database

std::string str(bool verbose) const

Return informal string representation (pretty-print)

KSP ksp() const

Return PETSc KSP pointer

static std::map<std::string, std::string> methods()

Return a list of available solver methods

static std::map<std::string, std::string> preconditioners()

Return a list of available preconditioners

static Parameters default_parameters()

Default parameter values