PaStiX Handbook  6.2.1

Data Structures

struct  symbol_faxtlok_s
 The chained column block structure. More...
 

Macros

#define SYMBOL_FAX_HASHPRIME   17
 Prime number for hashing vertex numbers.
 

Typedefs

typedef struct symbol_faxtlok_s SymbolFaxTlok
 The chained column block structure. More...
 

Functions

int pastixSymbolFaxILUk (symbol_matrix_t *symbptr, pastix_int_t levelk, const pastix_graph_t *graphA, const pastix_order_t *ordeptr)
 Create the symbol matrix from the graph of the non zero pattern of the factorized matrix and the supernode partition. More...
 
void faxCSRPatchSymbol (symbol_matrix_t *symbmtx)
 Patch the symbol matrix to add blocks in order to get a real elimination tree. More...
 

Detailed Description


Data Type Documentation

◆ symbol_faxtlok_s

struct symbol_faxtlok_s

The chained column block structure.

These blocks are chained in a single linked list for block merge with blocks of left columns.

Definition at line 34 of file symbol_fax.h.

Data Fields
pastix_int_t frownum

First row index

pastix_int_t lrownum

Last row index (inclusive)

pastix_int_t fcblknm

Facing column block

pastix_int_t nextnum

Index of next block

Typedef Documentation

◆ SymbolFaxTlok

The chained column block structure.

These blocks are chained in a single linked list for block merge with blocks of left columns.

Function Documentation

◆ pastixSymbolFaxILUk()

int pastixSymbolFaxILUk ( symbol_matrix_t symbptr,
pastix_int_t  levelk,
const pastix_graph_t *  graphA,
const pastix_order_t ordeptr 
)

Create the symbol matrix from the graph of the non zero pattern of the factorized matrix and the supernode partition.

Parameters
[in,out]PThe non zero pattern of the factorized matrix. WARNING: on exit, the graph is destroyed.
[in]cblknbrThe number of supernode. Must be equal to P->n.
[in]rangtabInteger array of size cblknbr+1. Contains the supernode partition of the graph.
[out]symbmtxOn entry, an initialized structure of symbol matrix (see pastixSymbolInit()). On exit, contains the symbol matrix associated to the graph P and the supernode partition given.
Return values
0on success.
!0on failure.

Definition at line 55 of file symbol_fax_iluk.c.

References pastix_order_s::baseval, symbol_matrix_s::baseval, symbol_matrix_s::bloknbr, symbol_cblk_s::bloknum, symbol_matrix_s::bloktab, symbol_cblk_s::brownum, symbol_matrix_s::browtab, pastix_order_s::cblknbr, symbol_matrix_s::cblknbr, symbol_matrix_s::cblktab, faxCSRClean(), faxCSRFactILUk(), faxCSRGenPA(), faxCSRGetNNZ(), symbol_blok_s::fcblknm, symbol_cblk_s::fcolnum, symbol_blok_s::frownum, symbol_blok_s::lcblknm, symbol_cblk_s::lcolnum, symbol_blok_s::lrownum, symbol_matrix_s::nodenbr, pastix_order_s::permtab, and pastix_order_s::rangtab.

◆ faxCSRPatchSymbol()

void faxCSRPatchSymbol ( symbol_matrix_t symbmtx)

Patch the symbol matrix to add blocks in order to get a real elimination tree.

This function is called when ILU(k) factorization is performed and the faxCSRBuildSymbol() function might have returned a symbol matrix that doesn't provide a real elimination tree.

Parameters
[in,out]symbmtxOn entry, a generated symbol matrix with faxCSRBuildSymbol() for example. On exit, the patched symbol matrix with extra blocks to have a real elimination tree.

For the cblk of the symbol matrix

Add a blok toward the father

OIMBE try lcolnum

Copy the last one

Virtual cblk

Definition at line 227 of file symbol_fax_iluk.c.

References symbol_matrix_s::bloknbr, symbol_cblk_s::bloknum, symbol_matrix_s::bloktab, symbol_matrix_s::cblknbr, symbol_matrix_s::cblktab, faxCSRClean(), faxCSRInit(), symbol_blok_s::fcblknm, symbol_cblk_s::fcolnum, symbol_blok_s::frownum, symbol_blok_s::lcblknm, and symbol_blok_s::lrownum.