PaStiX Handbook  6.2.1
symbol.h File Reference

Go to the source code of this file.

Data Structures

struct  symbol_cblk_s
 Symbol column block structure. More...
struct  symbol_blok_s
 Symbol block structure. More...
struct  symbol_matrix_s
 Symbol matrix structure. More...


#define SYMBCBLK_PROJ   1
#define SYMBCBLK_KWAY   2


typedef struct symbol_cblk_s symbol_cblk_t
 Symbol column block structure.
typedef struct symbol_blok_s symbol_blok_t
 Symbol block structure.
typedef struct symbol_matrix_s symbol_matrix_t
 Symbol matrix structure. More...


static pastix_int_t symbol_cblk_get_colnum (const symbol_matrix_t *symbmtx, symbol_cblk_t *symbcblk, pastix_int_t *fcolnum, pastix_int_t *lcolnum)
 Get the expanded column indexes of a symbol_cblk. More...
static pastix_int_t symbol_blok_get_rownum (const symbol_matrix_t *symbmtx, symbol_blok_t *symbblok, pastix_int_t *frownum, pastix_int_t *lrownum)
 Get the expanded row index of a symbol_blok. More...
static int is_symbblock_inside_fblock (const symbol_blok_t *blok, const symbol_blok_t *fblok)
 Check if a block is included inside another one. More...

Symbol basic subroutines

void pastixSymbolInit (const pastix_graph_t *graph, const pastix_order_t *order, symbol_matrix_t *symbptr)
void pastixSymbolExit (symbol_matrix_t *symbptr)
 Free the content of symbolic matrix. More...
void pastixSymbolBase (symbol_matrix_t *const symbptr, const pastix_int_t baseval)
 Sets the base of the given symbol matrix structure to the given base value. More...
void pastixSymbolRealloc (symbol_matrix_t *symbptr)
 Reallocate the data structure to optimize the memory alignment. More...
int pastixSymbolCheck (const symbol_matrix_t *const symbptr)
 Checks the consistency of the given symbolic block matrix. More...
void pastixSymbolExpand (symbol_matrix_t *symbptr)
 Expand the symbol matrix structure based on the dof information (compressed -> expanded) More...

Symbol IO subroutines

int pastixSymbolSave (const symbol_matrix_t *const symbptr, FILE *const stream)
 Save the given block matrix structure to the given stream. More...
int pastixSymbolLoad (symbol_matrix_t *const symbptr, FILE *const stream)
 Load the given block matrix structure from the given stream. More...
int pastixSymbolDraw (const symbol_matrix_t *const symbptr, FILE *const stream)
 Export the symbol structure in a PostScript format. More...
void pastixSymbolDrawMap (pastix_data_t *pastix_data, const char *extname, pastix_int_t sndeidx)

Symbol statistical information subroutines

void pastixSymbolPrintStats (const symbol_matrix_t *symbptr)
 Print statistical information about the symbolic matrix structure. More...
pastix_int_t pastixSymbolGetNNZ (const symbol_matrix_t *symbptr)
 Computes the number of non-zero elements in L. More...
void pastixSymbolGetFlops (const symbol_matrix_t *symbmtx, pastix_coeftype_t flttype, pastix_factotype_t factotype, double *thflops, double *rlflops)
 Computes the number of theoretical and real flops. More...
void pastixSymbolGetTimes (const symbol_matrix_t *symbmtx, pastix_coeftype_t flttype, pastix_factotype_t factotype, double *cblkcost, double *blokcost)
 Computes the cost of structure for the costMatrixBuild() function. More...

Symbol construction subroutines

int pastixSymbolFaxDirect (symbol_matrix_t *symbptr, const pastix_graph_t *graphA, const pastix_order_t *ordeptr)
 Compute the block symbolic factorization of the given matrix graph according to the given vertex ordering. More...
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 pastixSymbolRustine (symbol_matrix_t *symbptr, symbol_matrix_t *symbptr2)
void pastixSymbolBuildRowtab (symbol_matrix_t *symbptr)
 Construct the browtab array that stores the blocks in a CSR way. More...
pastix_int_t pastixSymbolGetFacingBloknum (const symbol_matrix_t *symbptr, pastix_int_t bloksrc, pastix_int_t bloknum, pastix_int_t startsearch, int ricar)
 Search the targeted block C for a couple of blocks A and B. More...

Detailed Description

PaStiX symbol structure routines

David Goudin
Francois Pellegrini
Mathieu Faverge
Pascal Henon
Pierre Ramet
Gregoire Pichon
Tony Delarue
Vincent Bridonneau

Definition in file symbol.h.