Actual source code: vhyp.h

  1: #ifndef _VHYP_H
  2: #define _VHYP_H

  4: #include <petsc/private/petschypre.h>
  5: #include <HYPRE_IJ_mv.h>
  6: #include <_hypre_IJ_mv.h>

  8: struct VecHYPRE_IJVector_ {
  9:   HYPRE_IJVector ij;
 10:   /* Support for push/pop of PETSc's Vec memory into a ParVector */
 11:   Vec            pvec;
 12:   HYPRE_Complex *hv;
 13:   PetscErrorCode (*restore)(Vec, PetscScalar **);
 14: };
 15: typedef struct VecHYPRE_IJVector_ *VecHYPRE_IJVector;

 17: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorCreate(PetscLayout, VecHYPRE_IJVector *);
 18: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorDestroy(VecHYPRE_IJVector *);
 19: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorCopy(Vec, VecHYPRE_IJVector);
 20: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorPushVecRead(VecHYPRE_IJVector, Vec);
 21: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorPushVecWrite(VecHYPRE_IJVector, Vec);
 22: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorPushVec(VecHYPRE_IJVector, Vec);
 23: PETSC_EXTERN PetscErrorCode VecHYPRE_IJVectorPopVec(VecHYPRE_IJVector);
 24: PETSC_EXTERN PetscErrorCode VecHYPRE_IJBindToCPU(VecHYPRE_IJVector, PetscBool);

 26: #endif