20 #ifndef GEOS_LINEARALGEBRA_UTILITIES_BLOCKOPERATOR_HPP_
21 #define GEOS_LINEARALGEBRA_UTILITIES_BLOCKOPERATOR_HPP_
37 template<
typename VECTOR,
typename OPERATOR >
80 template<
typename VECTOR,
typename OPERATOR >
82 :
Base( nRows, nCols ),
83 m_operatorStorage( nRows, nCols )
88 template<
typename VECTOR,
typename OPERATOR >
93 for(
localIndex i = 0; i < m_operatorStorage.size( 0 ); ++i )
95 for(
localIndex j = 0; j < m_operatorStorage.size( 1 ); ++j )
97 this->setPointer( i, j, &m_operatorStorage( i, j ) );
102 template<
typename VECTOR,
typename OPERATOR >
105 m_operatorStorage( rhs.m_operatorStorage )
110 template<
typename VECTOR,
typename OPERATOR >
112 :
Base( std::move( rhs ) ),
113 m_operatorStorage( std::move( rhs.m_operatorStorage ) )
Concrete representation of a block operator.
BlockOperator(BlockOperator const &rhs)
Copy constructor.
typename Base::Vector Vector
Alias for vector type.
BlockOperator(localIndex const nRows, localIndex const nCols)
Create an operator with (nRows, nCols) blocks.
virtual ~BlockOperator() override=default
Destructor.
BlockOperator(BlockOperator &&rhs)
Move constructor.
Abstract view of a block operator.
typename Base::Vector Vector
Alias for vector type.
#define GEOS_LAI_ASSERT_EQ(lhs, rhs)
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).