xref: /petsc/src/dm/impls/da/hypre/mhyp.h (revision 9dd11ecf0918283bb567d8b33a92f53ac4ea7840)
1*a4963045SJacob Faibussowitsch #pragma once
2f4bdf6c4SBarry Smith 
3c6db04a5SJed Brown #include <petscdmda.h> /*I "petscdmda.h" I*/
4c6db04a5SJed Brown #include <HYPRE_struct_mv.h>
5c6db04a5SJed Brown #include <HYPRE_struct_ls.h>
6c6db04a5SJed Brown #include <_hypre_struct_mv.h>
7c6db04a5SJed Brown #include <HYPRE_sstruct_mv.h>
8c6db04a5SJed Brown #include <HYPRE_sstruct_ls.h>
9c6db04a5SJed Brown #include <_hypre_sstruct_mv.h>
10f4bdf6c4SBarry Smith 
11f4bdf6c4SBarry Smith typedef struct {
12f4bdf6c4SBarry Smith   MPI_Comm            hcomm;
13f4bdf6c4SBarry Smith   DM                  da;
14f4bdf6c4SBarry Smith   HYPRE_StructGrid    hgrid;
15f4bdf6c4SBarry Smith   HYPRE_StructStencil hstencil;
16f4bdf6c4SBarry Smith   HYPRE_StructMatrix  hmat;
17f4bdf6c4SBarry Smith   HYPRE_StructVector  hb, hx;
18f4bdf6c4SBarry Smith   hypre_Box           hbox;
19f4bdf6c4SBarry Smith 
20f4bdf6c4SBarry Smith   PetscBool needsinitialization;
21f4bdf6c4SBarry Smith 
22f4bdf6c4SBarry Smith   /* variables that are stored here so they need not be reloaded for each MatSetValuesLocal() or MatZeroRowsLocal() call */
2319bfd8f8SBarry Smith   const PetscInt *gindices;
2419bfd8f8SBarry Smith   PetscInt        rstart, gnx, gnxgny, xs, ys, zs, nx, ny, nxny;
25f4bdf6c4SBarry Smith } Mat_HYPREStruct;
26f4bdf6c4SBarry Smith 
27f4bdf6c4SBarry Smith typedef struct {
28f4bdf6c4SBarry Smith   MPI_Comm             hcomm;
29f4bdf6c4SBarry Smith   DM                   da;
30f4bdf6c4SBarry Smith   HYPRE_SStructGrid    ss_grid;
31f4bdf6c4SBarry Smith   HYPRE_SStructGraph   ss_graph;
32f4bdf6c4SBarry Smith   HYPRE_SStructStencil ss_stencil;
33f4bdf6c4SBarry Smith   HYPRE_SStructMatrix  ss_mat;
34f4bdf6c4SBarry Smith   HYPRE_SStructVector  ss_b, ss_x;
35f4bdf6c4SBarry Smith   hypre_Box            hbox;
36f4bdf6c4SBarry Smith 
37f4bdf6c4SBarry Smith   int ss_object_type;
38f4bdf6c4SBarry Smith   int nvars;
39f4bdf6c4SBarry Smith   int dofs_order;
40f4bdf6c4SBarry Smith 
41f4bdf6c4SBarry Smith   PetscBool needsinitialization;
42f4bdf6c4SBarry Smith 
43f4bdf6c4SBarry Smith   /* variables that are stored here so they need not be reloaded for each MatSetValuesLocal() or MatZeroRowsLocal() call */
4419bfd8f8SBarry Smith   const PetscInt *gindices;
4519bfd8f8SBarry Smith   PetscInt        rstart, gnx, gnxgny, gnxgnygnz, xs, ys, zs, nx, ny, nz, nxny, nxnynz;
46f4bdf6c4SBarry Smith } Mat_HYPRESStruct;
47