|
GEOS
|
Abstract view of a block operator. More...
#include <BlockOperatorView.hpp>

Public Types | |
| using | Base = LinearOperator< BlockVectorView< VECTOR > > |
| Alias for base type. | |
| using | Vector = typename Base::Vector |
| Alias for vector type. | |
Public Types inherited from geos::LinearOperator< BlockVectorView< VECTOR > > | |
| using | Vector = BlockVectorView< VECTOR > |
| Alias for template parameter. | |
Public Member Functions | |
Constructors/destructors | |
| BlockOperatorView & | operator= (BlockOperatorView const &)=delete |
| Deleted copy assignment. More... | |
| BlockOperatorView & | operator= (BlockOperatorView &&)=delete |
| Deleted move assignment. More... | |
LinearOperator interface | |
| virtual void | apply (Vector const &src, Vector &dst) const override |
| Apply operator to a vector. More... | |
| template<typename OP = OPERATOR> | |
| std::enable_if_t< traits::VectorBasedTraits< Vector >::template HasMemberFunction_applyTranspose< OP > > | applyTranspose (BlockVectorView< VECTOR > const &src, BlockVectorView< VECTOR > &dst) const |
| Apply the transpose of block operator to a block vector. More... | |
| virtual globalIndex | numGlobalRows () const override |
| Get the number of global rows. More... | |
| virtual globalIndex | numGlobalCols () const override |
| Get the number of global columns. More... | |
| virtual localIndex | numLocalRows () const override |
| Get the number of local rows. More... | |
| virtual localIndex | numLocalCols () const override |
| Get the number of local columns. More... | |
| virtual MPI_Comm | comm () const override |
| Get the MPI communicator the matrix was created with. More... | |
Getters | |
| localIndex | numBlockRows () const |
| Get number of block rows. More... | |
| localIndex | numBlockCols () const |
| Get number of block columns. More... | |
| OPERATOR const & | block (localIndex const blockRowIndex, localIndex const blockColIndex) const |
| Get the operator corresponding to a sub-block. More... | |
| OPERATOR & | block (localIndex const blockRowIndex, localIndex const blockColIndex) |
| Get the operator corresponding to a sub-block. More... | |
| OPERATOR const & | operator() (localIndex const blockRowIndex, localIndex const blockColIndex=0) const |
| Get the operator corresponding to a sub-block. More... | |
| OPERATOR & | operator() (localIndex const blockRowIndex, localIndex const blockColIndex=0) |
| Get the operator corresponding to a sub-block. More... | |
Public Member Functions inherited from geos::LinearOperator< BlockVectorView< VECTOR > > | |
| LinearOperator ()=default | |
| Constructor. | |
| virtual | ~LinearOperator ()=default |
| Destructor. | |
| virtual void | residual (Vector const &x, Vector const &b, Vector &r) const |
Compute residual r = b - this(x). More... | |
| virtual globalIndex | numGlobalNonzeros () const |
| virtual localIndex | numLocalNonzeros () const |
Protected Member Functions | |
| BlockOperatorView (localIndex const nRows, localIndex const nCols) | |
| Create an operator with given number of block rows and columns. More... | |
| BlockOperatorView (BlockOperatorView< VECTOR, OPERATOR > const &x)=default | |
| Copy constructor. More... | |
| BlockOperatorView (BlockOperatorView< VECTOR, OPERATOR > &&x)=default | |
| Move constructor. More... | |
| void | setPointer (localIndex const blockRowIndex, localIndex const blockColIndex, OPERATOR *op) |
| Set/replace a pointer to a block. More... | |
Abstract view of a block operator.
| VECTOR | type of vector that sub-blocks of this view can operate on |
| OPERATOR | type of operator that can operate on VECTOR (can be base class or a more specialized derived class) |
This class does not deal with constructing or storing sub-blocks, only provides high-level access functions. See derived classes BlockOperator and BlockOperatorWrapper for ways to construct a block operator.
Definition at line 42 of file BlockOperatorView.hpp.
|
inlineprotected |
Create an operator with given number of block rows and columns.
| nRows | number of block rows |
| nCols | number of block columns |
Definition at line 252 of file BlockOperatorView.hpp.
|
protecteddefault |
Copy constructor.
| x | the block vector to copy |
|
protecteddefault |
Move constructor.
| x | the block vector to move from |
|
inlineoverridevirtual |
Apply operator to a vector.
| src | Input vector (x). |
| dst | Output vector (b). |
src and dst cannot alias the same vector (some implementations may allow this). Implements geos::LinearOperator< BlockVectorView< VECTOR > >.
Definition at line 84 of file BlockOperatorView.hpp.
|
inline |
Apply the transpose of block operator to a block vector.
| OP | dummy template parameter to enable SFINAE, do not provide |
| src | source vector (rhs) |
| dst | target vector (lhs) |
Definition at line 113 of file BlockOperatorView.hpp.
|
inline |
Get the operator corresponding to a sub-block.
| blockRowIndex | block row index |
| blockColIndex | block column index |
Definition at line 221 of file BlockOperatorView.hpp.
|
inline |
Get the operator corresponding to a sub-block.
| blockRowIndex | block row index |
| blockColIndex | block column index |
Definition at line 212 of file BlockOperatorView.hpp.
|
inlineoverridevirtual |
Get the MPI communicator the matrix was created with.
create...()Implements geos::LinearOperator< BlockVectorView< VECTOR > >.
Definition at line 176 of file BlockOperatorView.hpp.
|
inline |
Get number of block columns.
Definition at line 201 of file BlockOperatorView.hpp.
|
inline |
Get number of block rows.
Definition at line 192 of file BlockOperatorView.hpp.
|
inlineoverridevirtual |
Get the number of global columns.
Implements geos::LinearOperator< BlockVectorView< VECTOR > >.
Definition at line 144 of file BlockOperatorView.hpp.
|
inlineoverridevirtual |
Get the number of global rows.
Implements geos::LinearOperator< BlockVectorView< VECTOR > >.
Definition at line 135 of file BlockOperatorView.hpp.
|
inlineoverridevirtual |
Get the number of local columns.
Implements geos::LinearOperator< BlockVectorView< VECTOR > >.
Definition at line 164 of file BlockOperatorView.hpp.
|
inlineoverridevirtual |
Get the number of local rows.
Implements geos::LinearOperator< BlockVectorView< VECTOR > >.
Definition at line 154 of file BlockOperatorView.hpp.
|
inline |
Get the operator corresponding to a sub-block.
| blockRowIndex | block row index |
| blockColIndex | block column index |
Definition at line 238 of file BlockOperatorView.hpp.
|
inline |
Get the operator corresponding to a sub-block.
| blockRowIndex | block row index |
| blockColIndex | block column index |
Definition at line 230 of file BlockOperatorView.hpp.
|
delete |
Deleted move assignment.
|
delete |
Deleted copy assignment.
|
inlineprotected |
Set/replace a pointer to a block.
| blockRowIndex | row index of the block |
| blockColIndex | column index of the block |
| op | the new pointer |
Definition at line 277 of file BlockOperatorView.hpp.