LinearOperator.h

Note

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

class LinearOperator

Parent class(es)

This class defines an interface for linear operators defined only in terms of their action (matrix-vector product) and can be used for matrix-free solution of linear systems. The linear algebra backend is decided at run-time based on the present value of the “linear_algebra_backend” parameter.

To define a linear operator, users need to inherit from this class and overload the function mult(x, y) which defines the action of the matrix on the vector x as y = Ax.

LinearOperator()

Create linear operator

std::size_t size(std::size_t dim) const = 0

Return size of given dimension

void mult(const GenericVector &x, GenericVector &y) const = 0

Compute matrix-vector product y = Ax

MPI_Comm mpi_comm() const

Return the MPI communicator

std::string str(bool verbose) const

Return informal string representation (pretty-print)

const GenericLinearOperator *instance() const

Return concrete instance / unwrap (const version)

GenericLinearOperator *instance()

Return concrete instance / unwrap (non-const version)

std::shared_ptr<const LinearAlgebraObject> shared_instance() const

Return concrete instance / unwrap (const shared pointer version)

std::shared_ptr<LinearAlgebraObject> shared_instance()

Return concrete instance / unwrap (shared pointer version)