19 #ifndef GEOS_LINEARALGEBRA_UTILITIES_BLOCKOPERATOR_HPP_
20 #define GEOS_LINEARALGEBRA_UTILITIES_BLOCKOPERATOR_HPP_
36 template<
typename VECTOR,
typename OPERATOR >
79 template<
typename VECTOR,
typename OPERATOR >
81 :
Base( nRows, nCols ),
82 m_operatorStorage( nRows, nCols )
87 template<
typename VECTOR,
typename OPERATOR >
92 for(
localIndex i = 0; i < m_operatorStorage.size( 0 ); ++i )
94 for(
localIndex j = 0; j < m_operatorStorage.size( 1 ); ++j )
96 this->setPointer( i, j, &m_operatorStorage( i, j ) );
101 template<
typename VECTOR,
typename OPERATOR >
104 m_operatorStorage( rhs.m_operatorStorage )
109 template<
typename VECTOR,
typename OPERATOR >
111 :
Base( std::move( rhs ) ),
112 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.
GEOSX_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).