GEOSX
|
Concrete representation of a block operator. More...
#include <BlockOperator.hpp>
Public Types | |
using | Base = BlockOperatorView< VECTOR, OPERATOR > |
Alias for base type. | |
using | Vector = typename Base::Vector |
Alias for vector type. | |
Public Types inherited from geosx::BlockOperatorView< VECTOR, OPERATOR > | |
using | Base = LinearOperator< BlockVectorView< VECTOR > > |
Alias for base type. | |
using | Vector = typename Base::Vector |
Alias for vector type. | |
Public Types inherited from geosx::LinearOperator< BlockVectorView< VECTOR > > | |
using | Vector = BlockVectorView< VECTOR > |
Alias for template parameter. | |
Public Member Functions | |
BlockOperator (localIndex const nRows, localIndex const nCols) | |
Create an operator with (nRows , nCols ) blocks. More... | |
BlockOperator (BlockOperator const &rhs) | |
Copy constructor. More... | |
BlockOperator (BlockOperator &&rhs) | |
Move constructor. More... | |
virtual | ~BlockOperator () override=default |
Destructor. | |
Public Member Functions inherited from geosx::BlockOperatorView< VECTOR, OPERATOR > | |
virtual | ~BlockOperatorView () override=default |
Destructor. | |
BlockOperatorView & | operator= (BlockOperatorView const &)=delete |
Deleted copy assignment. More... | |
BlockOperatorView & | operator= (BlockOperatorView &&)=delete |
Deleted move assignment. More... | |
virtual void | apply (Vector const &src, Vector &dst) const override |
Apply operator to a vector. More... | |
template<typename OP = OPERATOR> | |
std::enable_if_t< 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... | |
template<typename OP = OPERATOR> | |
std::enable_if_t< HasMemberFunction_numLocalRows< OP >, localIndex > | numLocalRows () const |
Get the number of local rows. More... | |
template<typename OP = OPERATOR> | |
std::enable_if_t< HasMemberFunction_numLocalCols< OP >, localIndex > | numLocalCols () const |
Get the number of local columns. More... | |
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 geosx::LinearOperator< BlockVectorView< VECTOR > > | |
LinearOperator ()=default | |
Constructor. | |
virtual | ~LinearOperator ()=default |
Destructor. | |
virtual void | apply (Vector const &src, Vector &dst) const=0 |
Apply operator to a vector. More... | |
virtual void | residual (Vector const &x, Vector const &b, Vector &r) const |
Compute residual r = Ax - b . More... | |
Additional Inherited Members | |
Protected Member Functions inherited from geosx::BlockOperatorView< VECTOR, OPERATOR > | |
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... | |
Concrete representation 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 extends BlockOperatorView class by providing storage for sub-block operators. The OPERATOR
type needs to be default-constructible.
Definition at line 37 of file BlockOperator.hpp.
geosx::BlockOperator< VECTOR, OPERATOR >::BlockOperator | ( | localIndex const | nRows, |
localIndex const | nCols | ||
) |
Create an operator with (nRows
, nCols
) blocks.
nRows | number of block rows |
nCols | number of block columns |
Definition at line 80 of file BlockOperator.hpp.
geosx::BlockOperator< VECTOR, OPERATOR >::BlockOperator | ( | BlockOperator< VECTOR, OPERATOR > const & | rhs | ) |
Copy constructor.
rhs | the block operator to copy from |
Definition at line 102 of file BlockOperator.hpp.
geosx::BlockOperator< VECTOR, OPERATOR >::BlockOperator | ( | BlockOperator< VECTOR, OPERATOR > && | rhs | ) |
Move constructor.
rhs | the block operator to move from |
Definition at line 110 of file BlockOperator.hpp.