GEOSX
|
Abstract base class for linear operators. More...
#include <LinearOperator.hpp>
Public Types | |
using | Vector = VECTOR |
Alias for template parameter. | |
Public Member Functions | |
LinearOperator ()=default | |
Constructor. | |
virtual | ~LinearOperator ()=default |
Destructor. | |
virtual void | apply (Vector const &src, Vector &dst) const =0 |
Apply operator to a vector, dst = this(src) . More... | |
virtual void | residual (Vector const &x, Vector const &b, Vector &r) const |
Compute residual r = b - this(x) . More... | |
virtual globalIndex | numGlobalRows () const =0 |
Get the number of global rows. More... | |
virtual globalIndex | numGlobalCols () const =0 |
Get the number of global columns. More... | |
virtual localIndex | numLocalRows () const =0 |
Get the number of local rows. More... | |
virtual localIndex | numLocalCols () const =0 |
Get the number of local columns. More... | |
virtual MPI_Comm | getComm () const =0 |
Get the MPI communicator the matrix was created with. More... | |
Abstract base class for linear operators.
VECTOR | Type of vector this operator can be applied to |
Definition at line 37 of file LinearOperator.hpp.
|
pure virtual |
Apply operator to a vector, dst = this(src)
.
src | input vector |
dst | output vector |
src
and dst
cannot alias the same vector (some implementations may allow this). Implemented in geosx::MatrixBase< MATRIX, VECTOR >, geosx::MatrixBase< HypreMatrix, HypreVector >, geosx::MatrixBase< PetscMatrix, PetscVector >, geosx::MatrixBase< EpetraMatrix, EpetraVector >, geosx::HypreMatrix, geosx::PetscMatrix, geosx::EpetraMatrix, geosx::BlockOperatorView< Vector, Matrix >, and geosx::HyprePreconditioner.
|
pure virtual |
Get the MPI communicator the matrix was created with.
create
...()Implemented in geosx::HypreMatrix, geosx::PetscMatrix, geosx::EpetraMatrix, geosx::BlockOperatorView< VECTOR, OPERATOR >, geosx::BlockOperatorView< Vector, Matrix >, geosx::InverseNormalOperator< LAI, SOLVER >, geosx::PreconditionerBase< LAI >, geosx::PreconditionerBase< PetscInterface >, geosx::PreconditionerBase< HypreInterface >, geosx::PreconditionerBase< TrilinosInterface >, geosx::KrylovSolver< VECTOR >, geosx::TransposeOperator< LAI >, and geosx::NormalOperator< LAI >.
|
pure virtual |
Get the number of global columns.
Implemented in geosx::HypreMatrix, geosx::PetscMatrix, geosx::EpetraMatrix, geosx::InverseNormalOperator< LAI, SOLVER >, geosx::BlockOperatorView< VECTOR, OPERATOR >, geosx::BlockOperatorView< Vector, Matrix >, geosx::KrylovSolver< VECTOR >, geosx::PreconditionerBase< LAI >, geosx::PreconditionerBase< PetscInterface >, geosx::PreconditionerBase< HypreInterface >, geosx::PreconditionerBase< TrilinosInterface >, geosx::PreconditionerJacobi< LAI >, geosx::TransposeOperator< LAI >, and geosx::NormalOperator< LAI >.
|
pure virtual |
Get the number of global rows.
Implemented in geosx::HypreMatrix, geosx::PetscMatrix, geosx::EpetraMatrix, geosx::InverseNormalOperator< LAI, SOLVER >, geosx::BlockOperatorView< VECTOR, OPERATOR >, geosx::BlockOperatorView< Vector, Matrix >, geosx::KrylovSolver< VECTOR >, geosx::PreconditionerBase< LAI >, geosx::PreconditionerBase< PetscInterface >, geosx::PreconditionerBase< HypreInterface >, geosx::PreconditionerBase< TrilinosInterface >, geosx::TransposeOperator< LAI >, geosx::PreconditionerJacobi< LAI >, and geosx::NormalOperator< LAI >.
|
pure virtual |
Get the number of local columns.
Implemented in geosx::HypreMatrix, geosx::PetscMatrix, geosx::EpetraMatrix, geosx::BlockOperatorView< VECTOR, OPERATOR >, geosx::BlockOperatorView< Vector, Matrix >, geosx::InverseNormalOperator< LAI, SOLVER >, geosx::PreconditionerBase< LAI >, geosx::KrylovSolver< VECTOR >, geosx::PreconditionerBase< PetscInterface >, geosx::PreconditionerBase< HypreInterface >, geosx::PreconditionerBase< TrilinosInterface >, geosx::TransposeOperator< LAI >, and geosx::NormalOperator< LAI >.
|
pure virtual |
Get the number of local rows.
Implemented in geosx::HypreMatrix, geosx::PetscMatrix, geosx::EpetraMatrix, geosx::BlockOperatorView< VECTOR, OPERATOR >, geosx::InverseNormalOperator< LAI, SOLVER >, geosx::BlockOperatorView< Vector, Matrix >, geosx::KrylovSolver< VECTOR >, geosx::PreconditionerBase< LAI >, geosx::PreconditionerBase< PetscInterface >, geosx::PreconditionerBase< HypreInterface >, geosx::PreconditionerBase< TrilinosInterface >, geosx::TransposeOperator< LAI >, and geosx::NormalOperator< LAI >.
|
inlinevirtual |
Compute residual r = b - this(x)
.
x | Input solution. |
b | Input right hand side. |
r | Output residual. |
b
and x
may alias the same vector. r
cannot alias any of the other two vectors (some implementations may allow this). Reimplemented in geosx::MatrixBase< MATRIX, VECTOR >, geosx::MatrixBase< HypreMatrix, HypreVector >, geosx::MatrixBase< PetscMatrix, PetscVector >, and geosx::MatrixBase< EpetraMatrix, EpetraVector >.
Definition at line 73 of file LinearOperator.hpp.