PaStiX Handbook  6.3.2
fax_csr.h
Go to the documentation of this file.
1 /**
2  *
3  * @file fax_csr.h
4  *
5  * PaStiX fax amalgamation routines
6  *
7  * @copyright 2004-2023 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
8  * Univ. Bordeaux. All rights reserved.
9  *
10  * @version 6.3.2
11  * @author Pascal Henon
12  * @author Mathieu Faverge
13  * @date 2023-07-21
14  *
15  * @addtogroup symbol_dev_csr
16  * @{
17  *
18  **/
19 #ifndef _fax_csr_h_
20 #define _fax_csr_h_
21 
22 /**
23  * @brief Fax blocked csr structure
24  */
25 typedef struct fax_csr_s {
26  pastix_int_t n;
27  pastix_int_t total_nnz;
28  pastix_int_t * nnz;
29  pastix_int_t **rows;
31 
32 void faxCSRInit( pastix_int_t n, fax_csr_t *csr );
33 void faxCSRClean( fax_csr_t *csr );
34 
35 pastix_int_t faxCSRGetNNZ( const fax_csr_t *csr );
36 
37 int faxCSRGenPA( const pastix_graph_t *graphA, const pastix_int_t *perm, fax_csr_t *graphPA );
38 void faxCSRCompact( fax_csr_t *csr );
39 
40 void faxCSRCblkCompress( const fax_csr_t *graphA,
41  const pastix_order_t *order,
42  fax_csr_t *graphL,
43  pastix_int_t *work );
44 
46  const pastix_order_t *order,
47  fax_csr_t *graphL );
49  const pastix_order_t *order,
50  pastix_int_t level,
51  fax_csr_t *graphL );
52 
53 void faxCSRAmalgamate( int ilu,
54  double rat_cblk,
55  double rat_blas,
56  fax_csr_t *graphL,
57  pastix_order_t *order,
58  PASTIX_Comm pastix_comm );
59 
60 /**
61  * @}
62  */
63 #endif /* _fax_csr_h_ */
BEGIN_C_DECLS typedef int pastix_int_t
Definition: datatypes.h:51
Order structure.
Definition: order.h:47
pastix_int_t faxCSRFactILUk(const fax_csr_t *graphA, const pastix_order_t *order, pastix_int_t level, fax_csr_t *graphL)
Compute the non zero pattern of the levelized incomplete factor for a sparse lower triangular matrix ...
Definition: fax_csr_iluk.c:57
int faxCSRGenPA(const pastix_graph_t *graphA, const pastix_int_t *perm, fax_csr_t *graphPA)
Generate the graph of P*A from the graph of A and the permutation vector.
Definition: fax_csr.c:183
pastix_int_t faxCSRGetNNZ(const fax_csr_t *csr)
Computes the number of non zero entries in the graph.
Definition: fax_csr.c:99
void faxCSRClean(fax_csr_t *csr)
Free the data store in the structure.
Definition: fax_csr.c:65
void faxCSRCblkCompress(const fax_csr_t *graphA, const pastix_order_t *order, fax_csr_t *graphL, pastix_int_t *work)
Compact a element wise graph of a matrix A, according to the associated partition.
Definition: fax_csr.c:249
void faxCSRAmalgamate(int ilu, double rat_cblk, double rat_blas, fax_csr_t *graphL, pastix_order_t *order, PASTIX_Comm pastix_comm)
Amalgamate the given graph up to a given tolerance.
void faxCSRCompact(fax_csr_t *csr)
Compact a compressed graph.
Definition: fax_csr.c:129
pastix_int_t faxCSRFactDirect(const fax_csr_t *graphA, const pastix_order_t *order, fax_csr_t *graphL)
Compute the non zero pattern of the direct factorization of a matrix A, given the supernode partition...
void faxCSRInit(pastix_int_t n, fax_csr_t *csr)
Initialize the data structure by doing the first allocations within the structure and initializing th...
Definition: fax_csr.c:40
struct fax_csr_s fax_csr_t
Fax blocked csr structure.
Fax blocked csr structure.
Definition: fax_csr.h:25