Alien  1.3.0
User documentation
Loading...
Searching...
No Matches
Alien::Common::BaseDoKDirectMatrixBuilder Class Reference

#include <core/alien/kernels/dok/BaseDoKDirectMatrixBuilder.h>

Public Member Functions

 BaseDoKDirectMatrixBuilder (IMatrix &self)
std::optional< Real > contribute (Integer row, Integer col, Real value)
std::optional< Real > setNNZ (Integer row, Integer col, Real value)
bool assemble ()

Detailed Description

Use DoKMatrix to implement DirectMatrixBuilder.

This data structure is not compressed like CSR, allowing easy insertion of values.

Definition at line 40 of file BaseDoKDirectMatrixBuilder.h.

Constructor & Destructor Documentation

◆ BaseDoKDirectMatrixBuilder()

Alien::Common::BaseDoKDirectMatrixBuilder::BaseDoKDirectMatrixBuilder ( IMatrix & self)
explicit

Build a new representation of a matrix

Parameters
selfthe multi-representation handler. It is locked during the life of this object.

References BaseDoKDirectMatrixBuilder().

Referenced by BaseDoKDirectMatrixBuilder().

Member Function Documentation

◆ assemble()

bool Alien::Common::BaseDoKDirectMatrixBuilder::assemble ( )

Sort and compact data.

Returns
if successful.

◆ contribute()

std::optional< Real > Alien::Common::BaseDoKDirectMatrixBuilder::contribute ( Integer row,
Integer col,
Real value )

Add a contribution to a non-zero. Will create the non-zero if needed. Non-zero does not have to be local.

Parameters
row
col
valueof the contribution
Returns
a value if insertion is ok

◆ setNNZ()

std::optional< Real > Alien::Common::BaseDoKDirectMatrixBuilder::setNNZ ( Integer row,
Integer col,
Real value )

Set a value to a non-zero. Will create the non-zero if needed. Non-zero does not have to be local, but behavior for gathering non-local non-zero is undefined. It is not possible to choose between 2 nnz from different processes.

Parameters
row
col
valueof the contribution
Returns
a value if insertion is ok

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