libMesh::SparsityPattern Namespace Reference

Defines the sparsity pattern of a sparse matrix. More...


class  Build
class  Graph
class  NonlocalGraph


typedef std::vector< dof_id_type, Threads::scalable_allocator< dof_id_type > > Row


void _dummy_function (void)
template<typename BidirectionalIterator >
static void sort_row (const BidirectionalIterator begin, BidirectionalIterator middle, const BidirectionalIterator end)

Detailed Description

Defines the sparsity pattern of a sparse matrix.

This defines the sparsity pattern, or graph, of a sparse matrix. The format is quite simple – the global indices of the nonzero entries in each row are packed into a vector. The global indices (i,j) of the nth nonzero entry of row i are given by j = sparsity_pattern[i][n];

Roy Stogner

Typedef Documentation

◆ Row

Function Documentation

◆ _dummy_function()

void libMesh::SparsityPattern::_dummy_function ( void  )

Dummy function that does nothing but can be used to prohibit compiler optimization in some situations where some compilers have optimization bugs.

Definition at line 77 of file sparsity_pattern.C.

77 {}

◆ sort_row()

template<typename BidirectionalIterator >
static void libMesh::SparsityPattern::sort_row ( const BidirectionalIterator  begin,
BidirectionalIterator  middle,
const BidirectionalIterator  end 

Splices the two sorted ranges [begin,middle) and [middle,end) into one sorted range [begin,end). This method is much like std::inplace_merge except it assumes the intersection of the two sorted ranges is empty and that any element in each range occurs only once in that range. Additionally, this sort occurs in-place, while std::inplace_merge may use a temporary buffer.

Referenced by libMesh::SparsityPattern::Build::handle_vi_vj().