Actual source code: mhyp.h

      2: #if !defined(_MHYP_H)
      3: #define _MHYP_H

      5: #include <petscdmda.h>
      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>

     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;

     22:   PetscBool needsinitialization;

     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;

     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;

     39:   int ss_object_type;
     40:   int nvars;
     41:   int dofs_order;

     43:   PetscBool needsinitialization;

     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;

     50: #endif