Actual source code: aoimpl.h

  1: /* 
  2:    This private file should not be included in users' code.
  3: */

  5: #ifndef __AOIMPL 

  8: #include <petscao.h>

 10: /*
 11:     Defines the abstract AO operations
 12: */
 13: typedef struct _AOOps *AOOps;
 14: struct _AOOps {
 15:   /* Generic Operations */
 16:   PetscErrorCode (*view)(AO, PetscViewer);
 17:   PetscErrorCode (*destroy)(AO);
 18:   /* AO-Specific Operations */
 19:   PetscErrorCode (*petsctoapplication)(AO, PetscInt, PetscInt[]);
 20:   PetscErrorCode (*applicationtopetsc)(AO, PetscInt, PetscInt[]);
 21:   PetscErrorCode (*petsctoapplicationpermuteint)(AO, PetscInt, PetscInt[]);
 22:   PetscErrorCode (*applicationtopetscpermuteint)(AO, PetscInt, PetscInt[]);
 23:   PetscErrorCode (*petsctoapplicationpermutereal)(AO, PetscInt, PetscReal[]);
 24:   PetscErrorCode (*applicationtopetscpermutereal)(AO, PetscInt, PetscReal[]);
 25: };

 27: struct _p_AO {
 28:   PETSCHEADER(struct _AOOps);
 29:   PetscInt      N,n;             /* global, local ao size */
 30:   IS            isapp;           /* index set that defines an application ordering provided by user */
 31:   IS            ispetsc;         /* index set that defines petsc ordering provided by user */
 32:   void          *data;           /* implementation-specific data */
 33: };



 38: #endif