1 /* $Id: ao.h,v 1.14 1997/12/01 23:12:21 bsmith Exp bsmith $ */ 2 3 /* 4 An application ordering is mapping between application-centric 5 ordering (the ordering that is "natural" to the application) and 6 the parallel ordering that PETSc uses. 7 */ 8 #if !defined(__AO_PACKAGE) 9 #define __AO_PACKAGE 10 #include "is.h" 11 #include "mat.h" 12 13 typedef enum {AO_BASIC=0, AO_ADVANCED=1} AOType; 14 15 #define AO_COOKIE PETSC_COOKIE+20 16 17 typedef struct _p_AO* AO; 18 19 extern int AOCreateBasic(MPI_Comm,int,int*,int*,AO*); 20 extern int AOCreateBasicIS(IS,IS,AO*); 21 22 extern int AOPetscToApplication(AO,int,int*); 23 extern int AOApplicationToPetsc(AO,int,int*); 24 extern int AOPetscToApplicationIS(AO,IS); 25 extern int AOApplicationToPetscIS(AO,IS); 26 27 extern int AODestroy(AO); 28 extern int AOView(AO,Viewer); 29 30 /* ----------------------------------------------------*/ 31 32 typedef enum {AODATA_BASIC=0, AODATA_ADVANCED=1} AODataType; 33 34 #define AODATA_COOKIE PETSC_COOKIE+24 35 36 typedef struct _p_AOData* AOData; 37 38 extern int AODataCreateBasic(MPI_Comm,AOData *); 39 extern int AODataView(AOData,Viewer); 40 extern int AODataDestroy(AOData); 41 extern int AODataLoadBasic(Viewer,AOData *); 42 extern int AODataGetInfo(AOData,int*,char ***); 43 44 extern int AODataKeyAdd(AOData,char*,int,int); 45 extern int AODataKeyRemove(AOData,char*); 46 47 extern int AODataKeySetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping); 48 extern int AODataKeyGetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping*); 49 extern int AODataKeyRemap(AOData,char *,AO); 50 51 extern int AODataKeyExists(AOData,char*,PetscTruth*); 52 extern int AODataKeyGetInfo(AOData,char *,int *,int*,int*,char***); 53 extern int AODataKeyGetOwnershipRange(AOData,char *,int *,int*); 54 55 extern int AODataKeyGetNeighbors(AOData,char *,int,int*,IS *); 56 extern int AODataKeyGetNeighborsIS(AOData,char *,IS,IS *); 57 extern int AODataKeyGetAdjacency(AOData,char *,Mat*); 58 59 extern int AODataKeyGetActive(AOData,char*,char*,int,int *,int,IS*); 60 extern int AODataKeyGetActiveIS(AOData,char*,char*,IS,int,IS*); 61 extern int AODataKeyGetActiveLocal(AOData,char*,char*,int,int *,int,IS*); 62 extern int AODataKeyGetActiveLocalIS(AOData,char*,char*,IS,int,IS*); 63 64 extern int AODataKeyPartition(AOData,char *); 65 66 extern int AODataSegmentAdd(AOData,char*,char *,int, int, int *,void *,PetscDataType); 67 extern int AODataSegmentRemove(AOData,char *,char *); 68 extern int AODataSegmentAddIS(AOData,char*,char *,int, IS,void *,PetscDataType); 69 70 extern int AODataSegmentExists(AOData,char*,char*,PetscTruth*); 71 extern int AODataSegmentGetInfo(AOData,char *,char *,int *,PetscDataType*); 72 73 extern int AODataSegmentGet(AOData,char *,char *,int,int*,void **); 74 extern int AODataSegmentRestore(AOData,char *,char *,int,int*,void **); 75 extern int AODataSegmentGetIS(AOData,char *,char *,IS,void **); 76 extern int AODataSegmentRestoreIS(AOData,char *,char *,IS,void **); 77 78 extern int AODataSegmentGetLocal(AOData,char *,char *,int,int*,void **); 79 extern int AODataSegmentRestoreLocal(AOData,char *,char *,int,int*,void **); 80 extern int AODataSegmentGetLocalIS(AOData,char *,char *,IS,void **); 81 extern int AODataSegmentRestoreLocalIS(AOData,char *,char *,IS,void **); 82 83 extern int AODataSegmentGetReduced(AOData,char *,char *,int,int*,IS *); 84 extern int AODataSegmentGetReducedIS(AOData,char *,char *,IS,IS *); 85 extern int AODataSegmentGetExtrema(AOData,char*,char*,void *,void *); 86 87 extern int AODataSegmentPartition(AOData,char *,char *); 88 89 90 #endif 91 92 93