19 #include "order/order_internal.h"
84 PASTIX_Comm pastix_comm )
92 MPI_Comm_rank( pastix_comm, &procnum );
95 if ( ( ilu == 0 ) || ( levelk < 0 ) ) {
100 pastix_print_warning(
"orderAmalgamate: wrong parameter csc" );
103 if ( orderptr == NULL ) {
104 pastix_print_warning(
"orderAmalgamate: wrong parameter orderptr" );
118 pastix_print( procnum,
120 "Level of fill = %ld\n"
121 "Amalgamation ratio: cblk = %d, blas = %d\n",
131 memset( &graphL, 0,
sizeof(
fax_csr_t ) );
133 if ( ( ilu == 0 ) || ( levelk == -1 ) )
140 pastix_print( procnum,
142 "Time to compute scalar symbolic direct factorization %.3g s\n",
154 pastix_print( procnum,
156 "Time to compute scalar symbolic factorization of ILU(%ld) %.3g s\n",
166 pastix_print( procnum,
168 "Scalar nnza = %ld nnzlk = %ld, fillrate0 = %.3g \n",
171 (
double)nnzL / (
double)nnzA );
179 (
double)rat_cblk / 100.,
180 (
double)rat_blas / 100.,
189 pastix_print( procnum,
191 "Time to compute the amalgamation of supernodes %.3g s\n",
193 pastix_print( procnum,
195 "Number of cblk in the amalgamated symbol matrix = %ld \n",
BEGIN_C_DECLS typedef int pastix_int_t
@ PASTIX_ERR_BADPARAMETER
void graphBase(pastix_graph_t *graph, pastix_int_t baseval)
Rebase the graph to the given value.
void pastixOrderBase(pastix_order_t *ordeptr, pastix_int_t baseval)
This routine sets the base of the given ordering structure to the given base value.
int orderAmalgamate(int verbose, int ilu, int levelk, int rat_cblk, int rat_blas, pastix_graph_t *csc, pastix_order_t *orderptr, PASTIX_Comm pastix_comm)
Update the order structure with an amalgamation algorithm.
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 ...
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.
pastix_int_t faxCSRGetNNZ(const fax_csr_t *csr)
Computes the number of non zero entries in the graph.
void faxCSRClean(fax_csr_t *csr)
Free the data store in the structure.
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.
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...
Fax blocked csr structure.