 libgenua Basic Geometry, Numerical Algorithms and Interfaces
RCIndexMap Class Reference

Detailed Description

Row/column index map.

This class contains index vectors which map node indices to row/column indices. Such a mapping is often needed in numerical algorithms where Dirichlet boundary conditions are associated with some nodes. Eliminating the corresponding indices using such an index map is one option to handle the boundary condition.

ConnectMap

#include <rcindexmap.h>

Public Member Functions

RCIndexMap ()
undefined map

RCIndexMap (uint n)
default map for n nodes (all map to NotFound)

void identity (uint n, uint shift=0)
identity map (no constraints)

void indexShift (size_t n)
change row and column offset

uint indexShift () const
access present index shift

force_inline uint rowOf (uint k) const
access row of vertex k

force_inline uint colOf (uint k) const
access column index for vertex k

uint maxRowIndex () const
largest row indexed

uint maxColIndex () const
largest column indexed

force_inline uint nfree () const
number of free vertices

force_inline uint columnNode (uint j) const
return index i of vertex associated with column j, colOf(i) == j

const Indices & rowmap () const

Indices & rowmap ()

const Indices & colmap () const

Indices & colmap ()

void assignRows (const Indices &inodes)
assign from index set such that rowOf(inodes[i]) == i

void assignCols (const Indices &inodes)
assign from index set such that colOf(inodes[i]) == i

template<class VectorType >
void xexpand (const VectorType &xcol, VectorType &xnodal) const
use column index array to expand xcol to xnodal

void constrain (uint n, const Indices &inodes)
build symmetric row and column map from set of constrained nodes

void expandSparsity (int ne, ConnectMap &spty) const
expand a nodal sparsity pattern to full global equation sparsity

Protected Member Functions

void assignMap (const Indices &inodes, Indices &map)
assign from index set such that map[inodes[i]] == i

Private Attributes

Indices m_rowmap
maps global vertex indices to rows of a linear system

Indices m_colmap
maps global vertex indices to columns of a linear system

Indices m_colnode
"inverse" of column map: node associated to column

uint m_shift
shift value to apply to row and column indices

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