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);
56 void hypre_ParCSRMatrixSplit(hypre_ParCSRMatrix *A,
57 HYPRE_Int nr, HYPRE_Int nc,
58 hypre_ParCSRMatrix **blocks,
59 int interleaved_rows,
int interleaved_cols);
61 typedef int HYPRE_Bool;
62 #define HYPRE_MPI_BOOL MPI_INT
66 void hypre_CSRMatrixBooleanMatvec(hypre_CSRMatrix *A,
72 hypre_ParCSRCommHandle *
73 hypre_ParCSRCommHandleCreate_bool(HYPRE_Int job,
74 hypre_ParCSRCommPkg *comm_pkg,
75 HYPRE_Bool *send_data,
76 HYPRE_Bool *recv_data);
80 void hypre_ParCSRMatrixBooleanMatvec(hypre_ParCSRMatrix *A,
89 hypre_CSRMatrixSum(hypre_CSRMatrix *A,
98 hypre_ParCSRMatrixAdd(hypre_ParCSRMatrix *A,
99 hypre_ParCSRMatrix *B);
105 hypre_ParCSRMatrixSum(hypre_ParCSRMatrix *A,
107 hypre_ParCSRMatrix *B);
111 hypre_CSRMatrixSetConstantValues(hypre_CSRMatrix *A,
112 HYPRE_Complex value);
116 hypre_ParCSRMatrixSetConstantValues(hypre_ParCSRMatrix *A,
117 HYPRE_Complex value);
123 #endif // MFEM_USE_MPI