Actual source code: mhyp.h
petsc-3.4.5 2014-06-29
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: PetscInt *gindices,rstart,gnx,gnxgny,xs,ys,zs,nx,ny,nxny;
26: } Mat_HYPREStruct;
28: typedef struct {
29: MPI_Comm hcomm;
30: DM da;
31: HYPRE_SStructGrid ss_grid;
32: HYPRE_SStructGraph ss_graph;
33: HYPRE_SStructStencil ss_stencil;
34: HYPRE_SStructMatrix ss_mat;
35: HYPRE_SStructVector ss_b, ss_x;
36: hypre_Box hbox;
38: int ss_object_type;
39: int nvars;
40: int dofs_order;
42: PetscBool needsinitialization;
44: /* variables that are stored here so they need not be reloaded for each MatSetValuesLocal() or MatZeroRowsLocal() call */
45: PetscInt *gindices,rstart,gnx,gnxgny,gnxgnygnz,xs,ys,zs,nx,ny,nz,nxny,nxnynz;
46: } Mat_HYPRESStruct;
49: PETSC_INTERN PetscErrorCode MatHYPRE_IJMatrixCreate(Mat,HYPRE_IJMatrix*);
50: PETSC_INTERN PetscErrorCode MatHYPRE_IJMatrixCopy(Mat,HYPRE_IJMatrix);
51: PETSC_INTERN PetscErrorCode MatHYPRE_IJMatrixFastCopy(Mat,HYPRE_IJMatrix);
52: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorCreate(Vec,HYPRE_IJVector*);
55: #endif