/* $Id: ao.h,v 1.8 1997/10/08 01:29:46 bsmith Exp bsmith $ */ /* An application ordering is mapping between application-centric ordering (the ordering that is "natural" to the application) and the parallel ordering that PETSc uses. */ #if !defined(__AO_PACKAGE) #define __AO_PACKAGE #include "is.h" typedef enum {AO_BASIC=0, AO_ADVANCED=1} AOType; #define AO_COOKIE PETSC_COOKIE+20 typedef struct _p_AO* AO; extern int AOCreateBasic(MPI_Comm,int,int*,int*,AO*); extern int AOCreateBasicIS(MPI_Comm,IS,IS,AO*); extern int AOPetscToApplication(AO,int,int*); extern int AOApplicationToPetsc(AO,int,int*); extern int AOPetscToApplicationIS(AO,IS); extern int AOApplicationToPetscIS(AO,IS); extern int AODestroy(AO); extern int AOView(AO,Viewer); /* ----------------------------------------------------*/ typedef enum {AODATA_BASIC=0, AODATA_ADVANCED=1} AODataType; #define AODATA_COOKIE PETSC_COOKIE+24 typedef struct _p_AOData* AOData; extern int AODataCreateBasic(MPI_Comm,int,AOData *); extern int AODataAddKey(AOData,char*,int,int,int); extern int AODataAddKeyLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping); extern int AODataAddSegment(AOData,char*,char *,int, int, int *,void *,PetscDataType); extern int AODataAddSegmentIS(AOData,char*,char *,int, IS,void *,PetscDataType); extern int AODataGetInfoKey(AOData,char *,int *,int*,int *); extern int AODataGetInfoKeyOwnership(AOData,char *,int *,int*); extern int AODataGetInfoSegment(AOData,char *,char *,int *,int *,int*,PetscDataType*); extern int AODataGetSegment(AOData,char *,char *,int,int*,void **); extern int AODataRestoreSegment(AOData,char *,char *,int,int*,void **); extern int AODataGetSegmentIS(AOData,char *,char *,IS,void **); extern int AODataRestoreSegmentIS(AOData,char *,char *,IS,void **); extern int AODataGetLocalSegment(AOData,char *,char *,int,int*,void **); extern int AODataRestoreLocalSegment(AOData,char *,char *,int,int*,void **); extern int AODataGetLocalSegmentIS(AOData,char *,char *,IS,void **); extern int AODataRestoreLocalSegmentIS(AOData,char *,char *,IS,void **); extern int AODataGetReducedSegment(AOData,char *,char *,int,int*,IS *); extern int AODataGetReducedSegmentIS(AOData,char *,char *,IS,IS *); extern int AODataView(AOData,Viewer); extern int AODataDestroy(AOData); extern int AODataLoadBasic(Viewer,AOData *); #endif