MatrixBlock< MatrixType > Class Template Reference

A templated block of an (m x n) matrix of type <MatrixType>. More...

Public Types

typedef MatrixType::cmptType cmptType
 

Public Member Functions

 MatrixBlock (const MatrixBlock &)=default
 Copy construct. More...
 
 MatrixBlock (MatrixType &matrix, const label m, const label n, const label mStart, const label nStart)
 Construct block for matrix, size and location. More...
 
label m () const
 Return the number of rows in the block. More...
 
label n () const
 Return the number of columns in the block. More...
 
labelPair sizes () const
 Return row/column sizes. More...
 
const cmptType & operator() (const label i, const label j) const
 (i, j) const element access operator More...
 
cmptType & operator() (const label i, const label j)
 (i, j) element access operator More...
 
 operator Field< cmptType > () const
 Convert a column of a matrix to a Field. More...
 
void checkIndex (const label i, const label j) const
 Check if (i, j) is within range of row-column limits. More...
 
template<class Form >
void operator= (const Matrix< Form, cmptType > &)
 Assignment to a compatible matrix. More...
 
void operator= (const ConstMatrixBlock< MatrixType > &)
 Assignment to a compatible const block. More...
 
void operator= (const MatrixBlock< MatrixType > &)
 Assignment to a compatible block. More...
 
template<class MatrixType2 >
void operator= (const ConstMatrixBlock< MatrixType2 > &)
 Assignment to a compatible const block. More...
 
template<class MatrixType2 >
void operator= (const MatrixBlock< MatrixType2 > &)
 Assignment to a compatible block. More...
 
template<class MSForm , direction Nrows, direction Ncols>
void operator= (const MatrixSpace< MSForm, cmptType, Nrows, Ncols > &)
 Assignment to a compatible MatrixSpace. More...
 
template<template< class, direction, direction > class Block, class SubTensor , direction BRowStart, direction BColStart>
void operator= (const Block< SubTensor, BRowStart, BColStart > &)
 Assignment to a compatible MatrixSpace block. More...
 
template<class VSForm , direction Ncmpts>
void operator= (const VectorSpace< VSForm, cmptType, Ncmpts > &)
 Assignment to a compatible VectorSpace (column-vector) More...
 
template<template< class, direction > class Block, class SubVector , direction BStart>
void operator= (const Block< SubVector, BStart > &)
 Assignment to a compatible VectorSpace (column-vector) block. More...
 
void operator= (const Field< cmptType > &)
 Assignment to a Field (column-vector) More...
 

Detailed Description

template<class MatrixType>
class Foam::MatrixBlock< MatrixType >

A templated block of an (m x n) matrix of type <MatrixType>.

Foam::ConstMatrixBlock: block of a const matrix Foam::MatrixBlock: block of a non-const matrix

The block may be assigned to a block of another matrix or to a VectorSpace or MatrixSpace e.g. tensor. Conversion of a column block to a Field<T> is also provide.

Source files

Definition at line 66 of file Matrix.H.

Member Typedef Documentation

◆ cmptType

typedef MatrixType::cmptType cmptType

Definition at line 155 of file MatrixBlock.H.

Constructor & Destructor Documentation

◆ MatrixBlock() [1/2]

MatrixBlock ( const MatrixBlock< MatrixType > &  )
default

Copy construct.

◆ MatrixBlock() [2/2]

MatrixBlock ( MatrixType &  matrix,
const label  m,
const label  n,
const label  mStart,
const label  nStart 
)
inline

Construct block for matrix, size and location.

Definition at line 61 of file MatrixBlockI.H.

Member Function Documentation

◆ m()

Foam::label m ( ) const
inline

Return the number of rows in the block.

Definition at line 104 of file MatrixBlockI.H.

◆ n()

Foam::label n ( ) const
inline

Return the number of columns in the block.

Definition at line 111 of file MatrixBlockI.H.

◆ sizes()

Foam::labelPair sizes ( ) const
inline

Return row/column sizes.

Definition at line 125 of file MatrixBlockI.H.

◆ operator()() [1/2]

const MatrixType::cmptType & operator() ( const label  i,
const label  j 
) const
inline

(i, j) const element access operator

Definition at line 152 of file MatrixBlockI.H.

◆ operator()() [2/2]

MatrixType::cmptType & operator() ( const label  i,
const label  j 
)
inline

(i, j) element access operator

Definition at line 168 of file MatrixBlockI.H.

◆ operator Field< cmptType >()

operator Field< cmptType > ( ) const

Convert a column of a matrix to a Field.

Definition at line 55 of file MatrixBlock.C.

References Foam::abort(), f(), Foam::FatalError, FatalErrorInFunction, and forAll.

Here is the call graph for this function:

◆ checkIndex()

void checkIndex ( const label  i,
const label  j 
) const

Check if (i, j) is within range of row-column limits.

Definition at line 125 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [1/10]

void operator= ( const Matrix< Form, cmptType > &  Mb)

Assignment to a compatible matrix.

Definition at line 150 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [2/10]

void operator= ( const ConstMatrixBlock< MatrixType > &  Mb)

Assignment to a compatible const block.

Definition at line 175 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [3/10]

void operator= ( const MatrixBlock< MatrixType > &  Mb)

Assignment to a compatible block.

Definition at line 203 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [4/10]

void operator= ( const ConstMatrixBlock< MatrixType2 > &  Mb)

Assignment to a compatible const block.

Definition at line 232 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [5/10]

void operator= ( const MatrixBlock< MatrixType2 > &  Mb)

Assignment to a compatible block.

Definition at line 261 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [6/10]

void operator= ( const MatrixSpace< MSForm, cmptType, Nrows, Ncols > &  ms)

Assignment to a compatible MatrixSpace.

Definition at line 350 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [7/10]

void operator= ( const MSBlock< SubTensor, BRowStart, BColStart > &  Mb)

Assignment to a compatible MatrixSpace block.

Definition at line 296 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [8/10]

void operator= ( const VectorSpace< VSForm, cmptType, Ncmpts > &  ms)

Assignment to a compatible VectorSpace (column-vector)

Definition at line 376 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [9/10]

void operator= ( const VSBlock< SubVector, BStart > &  Mb)

Assignment to a compatible VectorSpace (column-vector) block.

Definition at line 327 of file MatrixBlock.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ operator=() [10/10]

void operator= ( const Field< cmptType > &  f)

Assignment to a Field (column-vector)

Definition at line 397 of file MatrixBlock.C.

References Foam::abort(), f(), Foam::FatalError, FatalErrorInFunction, and forAll.

Here is the call graph for this function:

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