New Data Structures

Distribution classes

Distributed vectors

Distributed matrices

Parametrizable with nondistributed matrix class

Parametrizable with two distribution classes


Distributed vector inserter

Values can be inserted with global indices

Local entries are inserted directly and remote values communicated at the end of the insertion phase (when the inserter object is destroyed)

Parametrizable with update function


Distributed matrix inserter

Same features as distributed vector inserter

At the end of insertion buffers for distributed matrix vector product are prepared (like in PETSc)

No exact information on quantity and location of nonzero entries are needed (opposed to PETSc), only the single filling parameter for the local matrix inserter


Generic block preconditioner, provides distributed

Diagonal

ILU(0)

IC(0)


Migration classes: distribution

Currently only implemented from block to block distribution

Extreme easy usage in constructors:

Reverse migration. For instance to map results back to original indexing from FEM tool


Single output stream

For instance
sout << “Matrix A is\n” << A << “v is “ << v << ‘\n’;
prints matrix A and vector v only once

Works also with distributed matrices and vectors

Can be used for file output as well


Multiple output stream

For instance
mout << “alpha is “ << alpha << ‘\n’;
prints a message for each processor with processor number
