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