12 #ifndef MFEM_HYPRE_PARCSR_HPP
13 #define MFEM_HYPRE_PARCSR_HPP
15 #include "../config/config.hpp"
22 #include "_hypre_parcsr_mv.h"
36 void hypre_ParCSRMatrixEliminateAXB(hypre_ParCSRMatrix *A,
37 HYPRE_Int num_rowscols_to_elim,
38 HYPRE_Int *rowscols_to_elim,
45 void hypre_ParCSRMatrixEliminateAAe(hypre_ParCSRMatrix *A,
46 hypre_ParCSRMatrix **Ae,
47 HYPRE_Int num_rowscols_to_elim,
48 HYPRE_Int *rowscols_to_elim,
53 void hypre_ParCSRMatrixEliminateRows(hypre_ParCSRMatrix *A,
54 HYPRE_Int num_rows_to_elim,
55 const HYPRE_Int *rows_to_elim);
63 void hypre_ParCSRMatrixSplit(hypre_ParCSRMatrix *A,
64 HYPRE_Int nr, HYPRE_Int nc,
65 hypre_ParCSRMatrix **blocks,
66 int interleaved_rows,
int interleaved_cols);
68 typedef int HYPRE_Bool;
69 #define HYPRE_MPI_BOOL MPI_INT
73 void hypre_CSRMatrixBooleanMatvec(hypre_CSRMatrix *A,
81 void hypre_CSRMatrixBooleanMatvecT(hypre_CSRMatrix *A,
87 hypre_ParCSRCommHandle *
88 hypre_ParCSRCommHandleCreate_bool(HYPRE_Int job,
89 hypre_ParCSRCommPkg *comm_pkg,
90 HYPRE_Bool *send_data,
91 HYPRE_Bool *recv_data);
95 void hypre_ParCSRMatrixBooleanMatvec(hypre_ParCSRMatrix *A,
103 void hypre_ParCSRMatrixBooleanMatvecT(hypre_ParCSRMatrix *A,
112 hypre_CSRMatrixSum(hypre_CSRMatrix *A,
121 hypre_ParCSRMatrixAdd(hypre_ParCSRMatrix *A,
122 hypre_ParCSRMatrix *B);
129 hypre_ParCSRMatrixSum(hypre_ParCSRMatrix *A,
131 hypre_ParCSRMatrix *B);
135 hypre_CSRMatrixSetConstantValues(hypre_CSRMatrix *A,
136 HYPRE_Complex value);
140 hypre_ParCSRMatrixSetConstantValues(hypre_ParCSRMatrix *A,
141 HYPRE_Complex value);
147 #endif // MFEM_USE_MPI