Functions to build internal CSCd from user CSCd.
Function to free internal CSCd.
csc_intern_build.c | Functions to build internal CSCd from user CSCd. |
Macros and defines | |
Macros | |
COL_IS_LOCAL(col) | Uses the result of glob2loc to determine if the column is local. |
SET_CSC_COL(newcoltab) | Allocate and fill CSC_COLTAB using newcoltab array. |
CSC_ALLOC | Allocates CSC_ROWTAB, CSC_VALTAB and the transpose CSC arrays. |
SET_CSC_ROW_VAL(itercblk, therow, thecol, val) | Fill next CSC_ROW and CSC_VAL. |
SET_TRANS_ROW_VAL(itercblk, therow, thecol, val) | Fill next entries for transpose CSC. |
CSC_SORT | Sort the internal CSC |
Functions | |
CscOrdistrib | Fill in thecsc CSC matrix in column block representation. |
CscdOrdistrib | Fill in thecsc CSC matrix in column block representation. |
CscExit | Free the internal CSCd structure. |
Macros | |
COL_IS_LOCAL(col) | Uses the result of glob2loc to determine if the column is local. |
SET_CSC_COL(newcoltab) | Allocate and fill CSC_COLTAB using newcoltab array. |
CSC_ALLOC | Allocates CSC_ROWTAB, CSC_VALTAB and the transpose CSC arrays. |
SET_CSC_ROW_VAL(itercblk, therow, thecol, val) | Fill next CSC_ROW and CSC_VAL. |
SET_TRANS_ROW_VAL(itercblk, therow, thecol, val) | Fill next entries for transpose CSC. |
CSC_SORT | Sort the internal CSC |
Allocate and fill CSC_COLTAB using newcoltab array.
CSC_COLNBR(thecsc,index) will contain the number of column of the column block “index” of thecsc
CSC_COLTAB(thecsc, index) is the tabular containing the starting index of each column of the column bloc in CSC_ROWTAB and CSC_VALTAB
CSC_COL(thecsc, index, iter) is the starting index for the column iter of the block index.
newcoltab | array containing starting index of each column in rows and values, using new ordering. |
Fill in thecsc CSC matrix in column block representation.
thecsc | Matrix in block column CSC format to fill in. |
Type | 3 charactères for matrix type : only Type[1] is used to check if matrix is Symetric(S) or not(U). |
transcsc | transpose of the CSC in non symetric mode. |
ord | ordering |
Nrow | Number of rows. |
Ncol | Number of columns. |
Nnzero | Number of non zeros in the matrix. |
colptr | Index in rowind and val of the start of each column. |
rowind | Index of the elements. |
val | values of the elements. |
forcetrans | If matrix symetric, transcsc will be the copy of the CSC_VALTAB. |
symbmtx | Symbol matrix |
procnum | MPI process number |
dof | Number of degree of freedom. |
void CscdOrdistrib( CscMatrix * thecsc, char * Type, FLOAT ** transcsc, const Order * ord, INT Ncol, INT * colptr, INT * rowind, FLOAT * val, INT * l2g, INT gNcol, INT * g2l, INT forcetrans, const SymbolMatrix * symbmtx, INT procnum, INT dof, MPI_Comm comm )
Fill in thecsc CSC matrix in column block representation.
thecsc | Matrix in block column CSC format to fill in. |
Type | 3 charactères for matrix type : only Type[1] is used to check if matrix is Symetric(S) or not(U). |
transcsc | Transpose of the CSC in non symetric mode. |
ord | ordering |
Ncol | Number of columns. |
colptr | Index in rowind and val of the start of each column. |
rowind | Index of the elements. |
val | values of the elements. |
l2g | global numbers of local nodes. |
gNcol | global number of columns. |
g2l | local numbers of global nodes, if not local contains -owner |
forcetrans | If matrix symetric, transcsc will be the copy of the CSC_VALTAB. |
symbmtx | Symbol matrix |
procnum | MPI process number. |
dof | Number of degree of freedom. |
comm | MPI communicator. |
Fill in thecsc CSC matrix in column block representation.
void CscdOrdistrib( CscMatrix * thecsc, char * Type, FLOAT ** transcsc, const Order * ord, INT Ncol, INT * colptr, INT * rowind, FLOAT * val, INT * l2g, INT gNcol, INT * g2l, INT forcetrans, const SymbolMatrix * symbmtx, INT procnum, INT dof, MPI_Comm comm )
Free the internal CSCd structure.
void CscExit( CscMatrix * thecsc )