29 #ifndef STRUMPACK_SPARSE_SOLVER_H
30 #define STRUMPACK_SPARSE_SOLVER_H
33 #include "StrumpackConfig.hpp"
35 #if defined(STRUMPACK_USE_MPI)
36 #define OMPI_SKIP_MPICXX 1
49 STRUMPACK_FLOATCOMPLEX,
50 STRUMPACK_DOUBLECOMPLEX,
53 STRUMPACK_FLOATCOMPLEX_64,
54 STRUMPACK_DOUBLECOMPLEX_64
55 } STRUMPACK_PRECISION;
65 } STRUMPACK_INTERFACE;
69 STRUMPACK_PRECISION precision;
70 STRUMPACK_INTERFACE interface;
81 } STRUMPACK_COMPRESSION_TYPE;
85 STRUMPACK_MATCHING_NONE=0,
86 STRUMPACK_MATCHING_MAX_CARDINALITY=1,
87 STRUMPACK_MATCHING_MAX_SMALLEST_DIAGONAL=2,
88 STRUMPACK_MATCHING_MAX_SMALLEST_DIAGONAL_2=3,
89 STRUMPACK_MATCHING_MAX_DIAGONAL_SUM=4,
90 STRUMPACK_MATCHING_MAX_DIAGONAL_PRODUCT_SCALING=5,
91 STRUMPACK_MATCHING_COMBBLAS=6
92 } STRUMPACK_MATCHING_JOB;
100 STRUMPACK_PTSCOTCH=4,
102 STRUMPACK_GEOMETRIC=6
103 } STRUMPACK_REORDERING_STRATEGY;
107 STRUMPACK_CLASSICAL=0,
109 } STRUMPACK_GRAM_SCHMIDT_TYPE;
115 } STRUMPACK_RANDOM_DISTRIBUTION;
121 } STRUMPACK_RANDOM_ENGINE;
128 STRUMPACK_PREC_GMRES=3,
130 STRUMPACK_PREC_BICGSTAB=5,
132 } STRUMPACK_KRYLOV_SOLVER;
137 STRUMPACK_MATRIX_NOT_SET=1,
138 STRUMPACK_REORDERING_ERROR=2
139 } STRUMPACK_RETURN_CODE;
146 void STRUMPACK_init_mt
148 STRUMPACK_INTERFACE interface,
int argc,
char* argv[],
int verbose);
150 #if defined(STRUMPACK_USE_MPI)
153 STRUMPACK_INTERFACE interface,
int argc,
char* argv[],
int verbose);
158 void STRUMPACK_set_csr_matrix
160 const void* col_ind,
const void* values,
int symmetric_pattern);
162 void STRUMPACK_update_csr_matrix_values
164 const void* col_ind,
const void* values,
int symmetric_pattern);
166 #if defined(STRUMPACK_USE_MPI)
167 void STRUMPACK_set_distributed_csr_matrix
169 const void* row_ptr,
const void* col_ind,
const void* values,
170 const void* dist,
int symmetric_pattern);
172 void STRUMPACK_update_distributed_csr_matrix_values
174 const void* row_ptr,
const void* col_ind,
const void* values,
175 const void* dist,
int symmetric_pattern);
178 void STRUMPACK_set_MPIAIJ_matrix
180 const void* d_ptr,
const void* d_ind,
const void* d_val,
181 const void* o_ptr,
const void* o_ind,
const void* o_val,
184 void STRUMPACK_update_MPIAIJ_matrix_values
186 const void* d_ptr,
const void* d_ind,
const void* d_val,
187 const void* o_ptr,
const void* o_ind,
const void* o_val,
191 STRUMPACK_RETURN_CODE STRUMPACK_solve
198 STRUMPACK_RETURN_CODE STRUMPACK_reorder_regular