symbol_costi.c

Part of a parallel direct block solver.  This module computes the block solving cost of incomplete symbolic matrices, using the cost functions of “Fonctions de Complexite pour la Resolution par Blocs de Systemes Lineaires Denses et Creux”, by Pierre Ramet.

Authors

  • Francois PELLEGRINI

Dates

Version 1.0from 24 jun 2002 to 26 jun 2002
Version 3.0from 29 feb 2004 to 29 feb 2004
Summary
symbol_costi.cPart of a parallel direct block solver.
symbolCostiThis routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.
symbolCosti2This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.

symbolCosti

int symbolCosti (const SymbolMatrix * const symbptr,
const Dof * const deofptr,
const SymbolCostType typeval,
const INT levfval,
double * const nnzptr,
double * const opcptr)

This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.

To ensure maximum accuracy and minimum loss of precision, costs are summed-up recursively.

In fact it calls symbolCosti2.

Parameters

symbptrSymbolic matrix to evaluate
deofptrDOF structure associated with the matrix
typevalType of cost computation
levfvalLevel of fill
nnzptrSize of the structure, to be filled
opcptrOperation count, to be filled

Returns

0on success.
!0on error.

symbolCosti2

static void symbolCosti2 (const SymbolCblk * restrict const cblktax,
const SymbolBlok * restrict const bloktax,
const Dof * restrict const deofptr,
const INT levfval,
double * restrict const nnzptr,
double * restrict const opcptr,
const INT cblkmin,
const INT cblknbr)

This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.

To ensure maximum accuracy and minimum loss of precision, costs are summed-up recursively.

Parameters

cblktaxBased access to cblktab
bloktaxBased access to bloktab
deofptrDOF structure associated with the matrix
levfvalLevel of fill
nnzptrSize of the structure, to be filled
opcptrOperation count, to be filled
cblkminMinimum column block index to consider
cblknbrNumber of column blocks to consider
int symbolCosti (const SymbolMatrix * const symbptr,
const Dof * const deofptr,
const SymbolCostType typeval,
const INT levfval,
double * const nnzptr,
double * const opcptr)
This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.
static void symbolCosti2 (const SymbolCblk * restrict const cblktax,
const SymbolBlok * restrict const bloktax,
const Dof * restrict const deofptr,
const INT levfval,
double * restrict const nnzptr,
double * restrict const opcptr,
const INT cblkmin,
const INT cblknbr)
This routine computes the factorization and solving cost of the given symbolic block matrix, whose nodes hold the number of DOFs given by the proper DOF structure.
Close