xref: /petsc/src/mat/impls/hypre/mhypre.h (revision 06977982913c3aebee464d9f4c9f5c3699a59e57)
16524c165SJacob Faibussowitsch #ifndef _MHYPRE_H
263c07aadSStefano Zampini #define _MHYPRE_H
363c07aadSStefano Zampini 
458968eb6SStefano Zampini #include <petscsys.h>
56ea7df73SStefano Zampini #include <../src/vec/vec/impls/hypre/vhyp.h>
663c07aadSStefano Zampini #include <HYPRE_IJ_mv.h>
763c07aadSStefano Zampini 
863c07aadSStefano Zampini typedef struct {
963c07aadSStefano Zampini   HYPRE_IJMatrix    ij;
106ea7df73SStefano Zampini   VecHYPRE_IJVector x;
116ea7df73SStefano Zampini   VecHYPRE_IJVector b;
1263c07aadSStefano Zampini   MPI_Comm          comm;
13978814f1SStefano Zampini   PetscBool         inner_free;
145fbaff96SJunchao Zhang 
15651b1cf9SStefano Zampini   /* MatGetArray_HYPRE */
16651b1cf9SStefano Zampini   void     *array;
17651b1cf9SStefano Zampini   PetscInt  array_size;
18651b1cf9SStefano Zampini   PetscBool array_available;
19651b1cf9SStefano Zampini 
20651b1cf9SStefano Zampini   /* MatSetOption_ support */
21651b1cf9SStefano Zampini   PetscBool donotstash;
22651b1cf9SStefano Zampini 
23*06977982Sstefanozampini   /* An agent matrix which does the MatSetValuesCOO() job for IJMatrix */
24*06977982Sstefanozampini   Mat       cooMat;
25*06977982Sstefanozampini   PetscBool cooMatAttached;
2663c07aadSStefano Zampini } Mat_HYPRE;
2763c07aadSStefano Zampini 
2863c07aadSStefano Zampini #endif
29