DOLFIN
DOLFIN C++ interface
Public Member Functions | List of all members
dolfin::LinearOperator Class Referenceabstract

#include <LinearOperator.h>

Inheritance diagram for dolfin::LinearOperator:
Inheritance graph
[legend]
Collaboration diagram for dolfin::LinearOperator:
Collaboration graph
[legend]

Public Member Functions

 LinearOperator ()
 Create linear operator.
 
 LinearOperator (const GenericVector &x, const GenericVector &y)
 
virtual ~LinearOperator ()
 Destructor.
 
virtual std::size_t size (std::size_t dim) const =0
 Return size of given dimension.
 
virtual void mult (const GenericVector &x, GenericVector &y) const =0
 Compute matrix-vector product y = Ax.
 
virtual MPI_Comm mpi_comm () const
 Return the MPI communicator.
 
std::string str (bool verbose) const
 Return informal string representation (pretty-print)
 
virtual const GenericLinearOperatorinstance () const
 Return concrete instance / unwrap (const version)
 
virtual GenericLinearOperatorinstance ()
 Return concrete instance / unwrap (non-const version)
 
virtual std::shared_ptr< const LinearAlgebraObjectshared_instance () const
 Return concrete instance / unwrap (const shared pointer version)
 
virtual std::shared_ptr< LinearAlgebraObjectshared_instance ()
 Return concrete instance / unwrap (shared pointer version)
 
- Public Member Functions inherited from dolfin::Variable
 Variable ()
 Create unnamed variable.
 
 Variable (const std::string name, const std::string label)
 Create variable with given name and label.
 
 Variable (const Variable &variable)
 Copy constructor.
 
virtual ~Variable ()
 Destructor.
 
const Variableoperator= (const Variable &variable)
 Assignment operator.
 
void rename (const std::string name, const std::string label)
 Rename variable.
 
std::string name () const
 Return name.
 
std::string label () const
 Return label (description)
 
std::size_t id () const
 

Additional Inherited Members

- Public Attributes inherited from dolfin::Variable
Parameters parameters
 Parameters.
 
- Protected Member Functions inherited from dolfin::GenericLinearOperator
virtual void init_layout (const GenericVector &x, const GenericVector &y, GenericLinearOperator *wrapper)
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LinearOperator()

LinearOperator::LinearOperator ( const GenericVector x,
const GenericVector y 
)

Create linear operator to match parallel layout of vectors x and y for product y = Ax.


The documentation for this class was generated from the following files: