1 2 #if !defined(_MHYP_H) 3 #define _MHYP_H 4 5 #include <petscdmda.h> /*I "petscdmda.h" I*/ 6 #include <HYPRE_struct_mv.h> 7 #include <HYPRE_struct_ls.h> 8 #include <_hypre_struct_mv.h> 9 #include <HYPRE_sstruct_mv.h> 10 #include <HYPRE_sstruct_ls.h> 11 #include <_hypre_sstruct_mv.h> 12 13 typedef struct { 14 MPI_Comm hcomm; 15 DM da; 16 HYPRE_StructGrid hgrid; 17 HYPRE_StructStencil hstencil; 18 HYPRE_StructMatrix hmat; 19 HYPRE_StructVector hb,hx; 20 hypre_Box hbox; 21 22 PetscBool needsinitialization; 23 24 /* variables that are stored here so they need not be reloaded for each MatSetValuesLocal() or MatZeroRowsLocal() call */ 25 const PetscInt *gindices; 26 PetscInt rstart,gnx,gnxgny,xs,ys,zs,nx,ny,nxny; 27 } Mat_HYPREStruct; 28 29 typedef struct { 30 MPI_Comm hcomm; 31 DM da; 32 HYPRE_SStructGrid ss_grid; 33 HYPRE_SStructGraph ss_graph; 34 HYPRE_SStructStencil ss_stencil; 35 HYPRE_SStructMatrix ss_mat; 36 HYPRE_SStructVector ss_b, ss_x; 37 hypre_Box hbox; 38 39 int ss_object_type; 40 int nvars; 41 int dofs_order; 42 43 PetscBool needsinitialization; 44 45 /* variables that are stored here so they need not be reloaded for each MatSetValuesLocal() or MatZeroRowsLocal() call */ 46 const PetscInt *gindices; 47 PetscInt rstart,gnx,gnxgny,gnxgnygnz,xs,ys,zs,nx,ny,nz,nxny,nxnynz; 48 } Mat_HYPRESStruct; 49 50 #endif 51