Loading [MathJax]/extensions/tex2jax.js
OGS
MathLib::SetMatrixSparsity< LisMatrix, SPARSITY_PATTERN > Struct Template Reference

Detailed Description

template<typename SPARSITY_PATTERN>
struct MathLib::SetMatrixSparsity< LisMatrix, SPARSITY_PATTERN >

Sets the sparsity pattern of the underlying LisMatrix.

Definition at line 187 of file LisMatrix.h.

#include <LisMatrix.h>

Public Member Functions

void operator() (LisMatrix &matrix, SPARSITY_PATTERN const &sparsity_pattern) const
 

Member Function Documentation

◆ operator()()

template<typename SPARSITY_PATTERN >
void MathLib::SetMatrixSparsity< LisMatrix, SPARSITY_PATTERN >::operator() ( LisMatrix & matrix,
SPARSITY_PATTERN const & sparsity_pattern ) const
inline

Definition at line 189 of file LisMatrix.h.

191 {
192 auto const n_rows = matrix.getNumberOfRows();
193 std::vector<LisMatrix::IndexType> row_sizes;
194 row_sizes.reserve(n_rows);
195
196 // LIS needs 1 more entry, otherwise it starts reallocating arrays.
197 transform(cbegin(sparsity_pattern), cend(sparsity_pattern),
198 back_inserter(row_sizes), [](auto const i) { return i + 1; });
199
200 int ierr = lis_matrix_malloc(matrix.AA_, 0, row_sizes.data());
201 checkLisError(ierr);
202 }
bool checkLisError(int err)
Definition LisCheck.h:30

References MathLib::LisMatrix::AA_, MathLib::checkLisError(), and MathLib::LisMatrix::getNumberOfRows().


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