1*2bdab257SBarry Smith /* $Id: ao.h,v 1.8 1997/10/08 01:29:46 bsmith Exp bsmith $ */ 27588ac45SBarry Smith 3230e2716SBarry Smith /* 4230e2716SBarry Smith An application ordering is mapping between application-centric 57588ac45SBarry Smith ordering (the ordering that is "natural" to the application) and 67588ac45SBarry Smith the parallel ordering that PETSc uses. 77588ac45SBarry Smith */ 87588ac45SBarry Smith #if !defined(__AO_PACKAGE) 97588ac45SBarry Smith #define __AO_PACKAGE 107588ac45SBarry Smith #include "is.h" 117588ac45SBarry Smith 120752156aSBarry Smith typedef enum {AO_BASIC=0, AO_ADVANCED=1} AOType; 137588ac45SBarry Smith 147588ac45SBarry Smith #define AO_COOKIE PETSC_COOKIE+20 157588ac45SBarry Smith 161ac94ccfSSatish Balay typedef struct _p_AO* AO; 177588ac45SBarry Smith 187588ac45SBarry Smith extern int AOCreateBasic(MPI_Comm,int,int*,int*,AO*); 197588ac45SBarry Smith extern int AOCreateBasicIS(MPI_Comm,IS,IS,AO*); 207588ac45SBarry Smith 217588ac45SBarry Smith extern int AOPetscToApplication(AO,int,int*); 227588ac45SBarry Smith extern int AOApplicationToPetsc(AO,int,int*); 237588ac45SBarry Smith extern int AOPetscToApplicationIS(AO,IS); 247588ac45SBarry Smith extern int AOApplicationToPetscIS(AO,IS); 257588ac45SBarry Smith 267588ac45SBarry Smith extern int AODestroy(AO); 277588ac45SBarry Smith extern int AOView(AO,Viewer); 287588ac45SBarry Smith 29376ee591SBarry Smith /* ----------------------------------------------------*/ 30376ee591SBarry Smith 310752156aSBarry Smith typedef enum {AODATA_BASIC=0, AODATA_ADVANCED=1} AODataType; 32376ee591SBarry Smith 330752156aSBarry Smith #define AODATA_COOKIE PETSC_COOKIE+24 34376ee591SBarry Smith 350752156aSBarry Smith typedef struct _p_AOData* AOData; 360752156aSBarry Smith 37f2bd0a27SBarry Smith extern int AODataCreateBasic(MPI_Comm,int,AOData *); 3831b6eecaSBarry Smith 3931b6eecaSBarry Smith extern int AODataAddKey(AOData,char*,int,int,int); 40*2bdab257SBarry Smith extern int AODataAddKeyLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping); 4131b6eecaSBarry Smith 4231b6eecaSBarry Smith extern int AODataAddSegment(AOData,char*,char *,int, int, int *,void *,PetscDataType); 4331b6eecaSBarry Smith extern int AODataAddSegmentIS(AOData,char*,char *,int, IS,void *,PetscDataType); 4431b6eecaSBarry Smith 4531b6eecaSBarry Smith extern int AODataGetInfoKey(AOData,char *,int *,int*,int *); 4631b6eecaSBarry Smith extern int AODataGetInfoKeyOwnership(AOData,char *,int *,int*); 4731b6eecaSBarry Smith extern int AODataGetInfoSegment(AOData,char *,char *,int *,int *,int*,PetscDataType*); 4831b6eecaSBarry Smith 4931b6eecaSBarry Smith extern int AODataGetSegment(AOData,char *,char *,int,int*,void **); 5031b6eecaSBarry Smith extern int AODataRestoreSegment(AOData,char *,char *,int,int*,void **); 5131b6eecaSBarry Smith extern int AODataGetSegmentIS(AOData,char *,char *,IS,void **); 5231b6eecaSBarry Smith extern int AODataRestoreSegmentIS(AOData,char *,char *,IS,void **); 5331b6eecaSBarry Smith 54*2bdab257SBarry Smith extern int AODataGetLocalSegment(AOData,char *,char *,int,int*,void **); 55*2bdab257SBarry Smith extern int AODataRestoreLocalSegment(AOData,char *,char *,int,int*,void **); 56*2bdab257SBarry Smith extern int AODataGetLocalSegmentIS(AOData,char *,char *,IS,void **); 57*2bdab257SBarry Smith extern int AODataRestoreLocalSegmentIS(AOData,char *,char *,IS,void **); 58*2bdab257SBarry Smith 59*2bdab257SBarry Smith extern int AODataGetReducedSegment(AOData,char *,char *,int,int*,IS *); 60*2bdab257SBarry Smith extern int AODataGetReducedSegmentIS(AOData,char *,char *,IS,IS *); 61*2bdab257SBarry Smith 620752156aSBarry Smith extern int AODataView(AOData,Viewer); 630752156aSBarry Smith extern int AODataDestroy(AOData); 64376ee591SBarry Smith 65f2bd0a27SBarry Smith extern int AODataLoadBasic(Viewer,AOData *); 66376ee591SBarry Smith 677588ac45SBarry Smith #endif 687588ac45SBarry Smith 69230e2716SBarry Smith 70