GEOSX
Public Types | Public Member Functions | List of all members
geos::BlockOperator< VECTOR, OPERATOR > Class Template Reference

Concrete representation of a block operator. More...

#include <BlockOperator.hpp>

Inheritance diagram for geos::BlockOperator< VECTOR, OPERATOR >:
Inheritance graph
[legend]

Public Types

using Base = BlockOperatorView< VECTOR, OPERATOR >
 Alias for base type.
 
using Vector = typename Base::Vector
 Alias for vector type.
 
- Public Types inherited from geos::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 geos::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 geos::BlockOperatorView< VECTOR, OPERATOR >
virtual ~BlockOperatorView () override=default
 Destructor.
 
BlockOperatorViewoperator= (BlockOperatorView const &)=delete
 Deleted copy assignment. More...
 
BlockOperatorViewoperator= (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< 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...
 
localIndex numBlockRows () const
 Get number of block rows. More...
 
localIndex numBlockCols () const
 Get number of block columns. More...
 
const OPERATOR & 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...
 
const OPERATOR & 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 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 comm () const=0
 Get the MPI communicator the matrix was created with. More...
 

Additional Inherited Members

- Protected Member Functions inherited from geos::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...
 

Detailed Description

template<typename VECTOR, typename OPERATOR>
class geos::BlockOperator< VECTOR, OPERATOR >

Concrete representation of a block operator.

Template Parameters
VECTORtype of vector that sub-blocks of this view can operate on
OPERATORtype 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.

Constructor & Destructor Documentation

◆ BlockOperator() [1/3]

template<typename VECTOR , typename OPERATOR >
geos::BlockOperator< VECTOR, OPERATOR >::BlockOperator ( localIndex const  nRows,
localIndex const  nCols 
)

Create an operator with (nRows, nCols) blocks.

Parameters
nRowsnumber of block rows
nColsnumber of block columns

Definition at line 80 of file BlockOperator.hpp.

◆ BlockOperator() [2/3]

template<typename VECTOR , typename OPERATOR >
geos::BlockOperator< VECTOR, OPERATOR >::BlockOperator ( BlockOperator< VECTOR, OPERATOR > const &  rhs)

Copy constructor.

Parameters
rhsthe block operator to copy from

Definition at line 102 of file BlockOperator.hpp.

◆ BlockOperator() [3/3]

template<typename VECTOR , typename OPERATOR >
geos::BlockOperator< VECTOR, OPERATOR >::BlockOperator ( BlockOperator< VECTOR, OPERATOR > &&  rhs)

Move constructor.

Parameters
rhsthe block operator to move from

Definition at line 110 of file BlockOperator.hpp.


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