Actual source code: mhyp.h
petsc-3.6.1 2015-08-06
2: #if !defined(_MHYP_H)
3: #define _MHYP_H
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>
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;
51: PETSC_INTERN PetscErrorCode MatHYPRE_IJMatrixCreate(Mat,HYPRE_IJMatrix*);
52: PETSC_INTERN PetscErrorCode MatHYPRE_IJMatrixCopy(Mat,HYPRE_IJMatrix);
53: PETSC_INTERN PetscErrorCode MatHYPRE_IJMatrixFastCopy(Mat,HYPRE_IJMatrix);
54: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorCreate(Vec,HYPRE_IJVector*);
55: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorCopy(Vec,HYPRE_IJVector);
58: #endif