Actual source code: stashij.h

petsc-3.3-p7 2013-05-11
  1: #if !defined(_STASHIJ_H)
  2: #define _STASHIJ_H

  4: /* Need PetscLayout */
  5: #include <petsc-private/vecimpl.h> /*I "petscvec.h" */

  7: /* Need PetscHash */
  8: #include <../src/sys/utils/hash.h>

 10: struct _MatStashSeqIJ {
 11:   PetscInt      n;
 12:   PetscBool     multivalued;
 13:   PetscHashIJ   h;
 14: };
 15: typedef struct _MatStashSeqIJ *MatStashSeqIJ;

 17: struct _MatStashMPIIJ {
 18:   PetscLayout rmap;
 19:   MatStashSeqIJ  astash, bstash;
 20:   PetscBool   assembled;
 21: };
 22: typedef struct _MatStashMPIIJ *MatStashMPIIJ;

 24: extern PetscErrorCode MatStashSeqIJCreate_Private(MatStashSeqIJ*);
 25: extern PetscErrorCode MatStashSeqIJGetMultivalued_Private(MatStashSeqIJ, PetscBool*);
 26: extern PetscErrorCode MatStashSeqIJSetMultivalued_Private(MatStashSeqIJ, PetscBool);
 27: extern PetscErrorCode MatStashSeqIJExtend_Private(MatStashSeqIJ, PetscInt, const PetscInt*, const PetscInt*);

 29: extern PetscErrorCode MatStashSeqIJSetPreallocation_Private(MatStashSeqIJ, PetscInt);
 30: extern PetscErrorCode MatStashSeqIJGetIndices_Private(MatStashSeqIJ, PetscInt*,PetscInt**, PetscInt**);
 31: extern PetscErrorCode MatStashSeqIJClear_Private(MatStashSeqIJ);
 32: extern PetscErrorCode MatStashSeqIJDestroy_Private(MatStashSeqIJ *);


 35: extern PetscErrorCode MatStashMPIIJCreate_Private(PetscLayout, MatStashMPIIJ*);
 36: extern PetscErrorCode MatStashMPIIJGetMultivalued_Private(MatStashMPIIJ, PetscBool*);
 37: extern PetscErrorCode MatStashMPIIJSetMultivalued_Private(MatStashMPIIJ, PetscBool);
 38: extern PetscErrorCode MatStashMPIIJDestroy_Private(MatStashMPIIJ *);
 39: extern PetscErrorCode MatStashMPIIJClear_Private(MatStashMPIIJ);

 41: extern PetscErrorCode MatStashMPIIJSetPreallocation_Private(MatStashMPIIJ, PetscInt, PetscInt);
 42: extern PetscErrorCode MatStashMPIIJExtend_Private(MatStashMPIIJ, PetscInt, const PetscInt*, const PetscInt*);
 43: extern PetscErrorCode MatStashMPIIJGetIndices_Private(MatStashMPIIJ, PetscInt*,PetscInt**, PetscInt**,PetscInt*,PetscInt**,PetscInt**);

 45: extern PetscErrorCode MatStashMPIIJGetIndicesMerged_Private(MatStashMPIIJ, PetscInt*,PetscInt**, PetscInt**);

 47: extern PetscErrorCode MatStashMPIIJAssemble_Private(MatStashMPIIJ);
 48: #endif