Reference documentation for deal.II version GIT relicensing-480-geae235577e 2024-04-25 01:00:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
No Matches
Public Member Functions | Public Attributes | List of all members
BlockMatrixBase< MatrixType >::TemporaryData Struct Reference

Public Member Functions

TemporaryDataoperator= (const TemporaryData &)

Public Attributes

std::vector< size_typecounter_within_block
std::vector< std::vector< size_type > > column_indices
std::vector< std::vector< value_type > > column_values
Threads::Mutex mutex

Detailed Description

template<typename MatrixType>
struct BlockMatrixBase< MatrixType >::TemporaryData

A structure containing some fields used by the set() and add() functions that is used to pre-sort the input fields. Since one can reasonably expect to call set() and add() from multiple threads at once as long as the matrix indices that are touched are disjoint, these temporary data fields need to be guarded by a mutex; the structure therefore contains such a mutex as a member variable.

Definition at line 1016 of file block_matrix_base.h.

Member Function Documentation

◆ operator=()

template<typename MatrixType >
TemporaryData & BlockMatrixBase< MatrixType >::TemporaryData::operator= ( const TemporaryData )

Copy operator. This is needed because the default copy operator of this class is deleted (since std::mutex is not copyable) and hence the default copy operator of the enclosing class is also deleted.

The implementation here simply does nothing – TemporaryData objects are just scratch objects that are resized at the beginning of their use, so there is no point actually copying anything.

Definition at line 1052 of file block_matrix_base.h.

Member Data Documentation

◆ counter_within_block

template<typename MatrixType >
std::vector<size_type> BlockMatrixBase< MatrixType >::TemporaryData::counter_within_block

Temporary vector for counting the elements written into the individual blocks when doing a collective add or set.

Definition at line 1022 of file block_matrix_base.h.

◆ column_indices

template<typename MatrixType >
std::vector<std::vector<size_type> > BlockMatrixBase< MatrixType >::TemporaryData::column_indices

Temporary vector for column indices on each block when writing local to global data on each sparse matrix.

Definition at line 1028 of file block_matrix_base.h.

◆ column_values

template<typename MatrixType >
std::vector<std::vector<value_type> > BlockMatrixBase< MatrixType >::TemporaryData::column_values

Temporary vector for storing the local values (they need to be reordered when writing local to global).

Definition at line 1034 of file block_matrix_base.h.

◆ mutex

template<typename MatrixType >
Threads::Mutex BlockMatrixBase< MatrixType >::TemporaryData::mutex

A mutex variable used to guard access to the member variables of this structure;

Definition at line 1040 of file block_matrix_base.h.

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