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,
74 void hypre_CSRMatrixBooleanMatvecT(hypre_CSRMatrix *A,
80 hypre_ParCSRCommHandle *
81 hypre_ParCSRCommHandleCreate_bool(HYPRE_Int job,
82 hypre_ParCSRCommPkg *comm_pkg,
83 HYPRE_Bool *send_data,
84 HYPRE_Bool *recv_data);
88 void hypre_ParCSRMatrixBooleanMatvec(hypre_ParCSRMatrix *A,
96 void hypre_ParCSRMatrixBooleanMatvecT(hypre_ParCSRMatrix *A,
105 hypre_CSRMatrixSum(hypre_CSRMatrix *A,
114 hypre_ParCSRMatrixAdd(hypre_ParCSRMatrix *A,
115 hypre_ParCSRMatrix *B);
122 hypre_ParCSRMatrixSum(hypre_ParCSRMatrix *A,
124 hypre_ParCSRMatrix *B);
128 hypre_CSRMatrixSetConstantValues(hypre_CSRMatrix *A,
129 HYPRE_Complex value);
133 hypre_ParCSRMatrixSetConstantValues(hypre_ParCSRMatrix *A,
134 HYPRE_Complex value);
140 #endif // MFEM_USE_MPI