xref: /petsc/src/dm/impls/da/hypre/mhyp.h (revision df4cd43f92eaa320656440c40edb1046daee8f75)
1 
2 #ifndef _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