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