Opm::Linear::TpsaMatrixView< Scalar > Class Template Reference

Lightweight, non-owning 5x5 view over the sub-matrices owned by TpsaMatrix. Provides the operator interface used by Dune solvers plus sub-matrix block access. More...

#include <TpsaTypes.hpp>

Public Types

using size_type = std::size_t
 
using field_type = Scalar
 
using block_type = typename RotRotMatrixT< Scalar >::block_type
 

Public Member Functions

TpsaMatrixRow0< Scalar > operator[] (Dune::index_constant< 0 >) const
 Sub-block access, S[_i][_j]: returns a proxy for the requested block row. More...
 
TpsaMatrixRow1< Scalar > operator[] (Dune::index_constant< 1 >) const
 Sub-block access, S[_i][_j]: returns a proxy for the requested block row. More...
 
TpsaMatrixRow2< Scalar > operator[] (Dune::index_constant< 2 >) const
 Sub-block access, S[_i][_j]: returns a proxy for the requested block row. More...
 
TpsaMatrixRow3< Scalar > operator[] (Dune::index_constant< 3 >) const
 Sub-block access, S[_i][_j]: returns a proxy for the requested block row. More...
 
TpsaMatrixRow4< Scalar > operator[] (Dune::index_constant< 4 >) const
 Sub-block access, S[_i][_j]: returns a proxy for the requested block row. More...
 
void mv (const TpsaMultiVector< Scalar > &x, TpsaMultiVector< Scalar > &y) const
 Matrix-vector product. More...
 
void umv (const TpsaMultiVector< Scalar > &x, TpsaMultiVector< Scalar > &y) const
 Accumulating matrix-vector product. More...
 
void usmv (field_type alpha, const TpsaMultiVector< Scalar > &x, TpsaMultiVector< Scalar > &y) const
 Scaled accumulating matrix-vector product. More...
 

Static Public Member Functions

static constexpr size_type N ()
 Number of block rows of the view. More...
 
static constexpr size_type M ()
 Number of block columns of the view. More...
 

Public Attributes

const DispDispMatrix00T< Scalar > * M11_00 = nullptr
 
const DispRotMatrix0T< Scalar > * M12_00 = nullptr
 
const DispSPresMatrix0T< Scalar > * M13_00 = nullptr
 
const DispDispMatrix11T< Scalar > * M11_11 = nullptr
 
const DispRotMatrix1T< Scalar > * M12_10 = nullptr
 
const DispSPresMatrix1T< Scalar > * M13_10 = nullptr
 
const DispDispMatrix22T< Scalar > * M11_22 = nullptr
 
const DispRotMatrix2T< Scalar > * M12_20 = nullptr
 
const DispSPresMatrix2T< Scalar > * M13_20 = nullptr
 
const RotDispMatrix0T< Scalar > * M21_00 = nullptr
 
const RotDispMatrix1T< Scalar > * M21_01 = nullptr
 
const RotDispMatrix2T< Scalar > * M21_02 = nullptr
 
const RotRotMatrixT< Scalar > * M22 = nullptr
 
const RotSPresMatrixT< Scalar > * M23 = nullptr
 
const SPresDispMatrix0T< Scalar > * M31_00 = nullptr
 
const SPresDispMatrix1T< Scalar > * M31_01 = nullptr
 
const SPresDispMatrix2T< Scalar > * M31_02 = nullptr
 
const SPresRotMatrixT< Scalar > * M32 = nullptr
 
const SPresSPresMatrixT< Scalar > * M33 = nullptr
 

Detailed Description

template<typename Scalar>
class Opm::Linear::TpsaMatrixView< Scalar >

Lightweight, non-owning 5x5 view over the sub-matrices owned by TpsaMatrix. Provides the operator interface used by Dune solvers plus sub-matrix block access.

Template Parameters
ScalarField type of the matrix entries.

Member Typedef Documentation

◆ block_type

template<typename Scalar >
using Opm::Linear::TpsaMatrixView< Scalar >::block_type = typename RotRotMatrixT<Scalar>::block_type

◆ field_type

template<typename Scalar >
using Opm::Linear::TpsaMatrixView< Scalar >::field_type = Scalar

◆ size_type

template<typename Scalar >
using Opm::Linear::TpsaMatrixView< Scalar >::size_type = std::size_t

Member Function Documentation

◆ M()

template<typename Scalar >
static constexpr size_type Opm::Linear::TpsaMatrixView< Scalar >::M ( )
inlinestaticconstexpr

Number of block columns of the view.

Returns
Number of fields the TPSA system is split into.

References Opm::Linear::numTpsaFields.

◆ mv()

◆ N()

template<typename Scalar >
static constexpr size_type Opm::Linear::TpsaMatrixView< Scalar >::N ( )
inlinestaticconstexpr

Number of block rows of the view.

Returns
Number of fields the TPSA system is split into.

References Opm::Linear::numTpsaFields.

◆ operator[]() [1/5]

template<typename Scalar >
TpsaMatrixRow0< Scalar > Opm::Linear::TpsaMatrixView< Scalar >::operator[] ( Dune::index_constant< 0 >  ) const

Sub-block access, S[_i][_j]: returns a proxy for the requested block row.

Parameters
[in](unnamed)Compile-time block row index, one of Dune::Indices::_0 ... _4.
Returns
Row proxy referencing the sub-matrices of that block row.

◆ operator[]() [2/5]

template<typename Scalar >
TpsaMatrixRow1< Scalar > Opm::Linear::TpsaMatrixView< Scalar >::operator[] ( Dune::index_constant< 1 >  ) const

Sub-block access, S[_i][_j]: returns a proxy for the requested block row.

Parameters
[in](unnamed)Compile-time block row index, one of Dune::Indices::_0 ... _4.
Returns
Row proxy referencing the sub-matrices of that block row.

◆ operator[]() [3/5]

template<typename Scalar >
TpsaMatrixRow2< Scalar > Opm::Linear::TpsaMatrixView< Scalar >::operator[] ( Dune::index_constant< 2 >  ) const

Sub-block access, S[_i][_j]: returns a proxy for the requested block row.

Parameters
[in](unnamed)Compile-time block row index, one of Dune::Indices::_0 ... _4.
Returns
Row proxy referencing the sub-matrices of that block row.

◆ operator[]() [4/5]

template<typename Scalar >
TpsaMatrixRow3< Scalar > Opm::Linear::TpsaMatrixView< Scalar >::operator[] ( Dune::index_constant< 3 >  ) const

Sub-block access, S[_i][_j]: returns a proxy for the requested block row.

Parameters
[in](unnamed)Compile-time block row index, one of Dune::Indices::_0 ... _4.
Returns
Row proxy referencing the sub-matrices of that block row.

◆ operator[]() [5/5]

template<typename Scalar >
TpsaMatrixRow4< Scalar > Opm::Linear::TpsaMatrixView< Scalar >::operator[] ( Dune::index_constant< 4 >  ) const

Sub-block access, S[_i][_j]: returns a proxy for the requested block row.

Parameters
[in](unnamed)Compile-time block row index, one of Dune::Indices::_0 ... _4.
Returns
Row proxy referencing the sub-matrices of that block row.

◆ umv()

◆ usmv()

Member Data Documentation

◆ M11_00

◆ M11_11

◆ M11_22

◆ M12_00

◆ M12_10

◆ M12_20

◆ M13_00

◆ M13_10

◆ M13_20

◆ M21_00

◆ M21_01

◆ M21_02

◆ M22

◆ M23

◆ M31_00

◆ M31_01

◆ M31_02

◆ M32

◆ M33


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