1*ca44d042SBarry Smith /* $Id: petscao.h,v 1.23 2000/05/08 15:09:50 balay Exp bsmith $ */ 27588ac45SBarry Smith 3230e2716SBarry Smith /* 430127c82SLois Curfman McInnes An application ordering is mapping between an application-centric 530127c82SLois Curfman McInnes ordering (the ordering that is "natural" for the application) and 67588ac45SBarry Smith the parallel ordering that PETSc uses. 77588ac45SBarry Smith */ 80a835dfdSSatish Balay #if !defined(__PETSCAO_H) 90a835dfdSSatish Balay #define __PETSCAO_H 100a835dfdSSatish Balay #include "petscis.h" 110a835dfdSSatish Balay #include "petscmat.h" 127588ac45SBarry Smith 130752156aSBarry Smith typedef enum {AO_BASIC=0,AO_ADVANCED=1} AOType; 147588ac45SBarry Smith 157588ac45SBarry Smith #define AO_COOKIE PETSC_COOKIE+20 167588ac45SBarry Smith 171ac94ccfSSatish Balay typedef struct _p_AO* AO; 187588ac45SBarry Smith 19*ca44d042SBarry Smith EXTERN int AOCreateBasic(MPI_Comm,int,int*,int*,AO*); 20*ca44d042SBarry Smith EXTERN int AOCreateBasicIS(IS,IS,AO*); 217588ac45SBarry Smith 22*ca44d042SBarry Smith EXTERN int AOPetscToApplication(AO,int,int*); 23*ca44d042SBarry Smith EXTERN int AOApplicationToPetsc(AO,int,int*); 24*ca44d042SBarry Smith EXTERN int AOPetscToApplicationIS(AO,IS); 25*ca44d042SBarry Smith EXTERN int AOApplicationToPetscIS(AO,IS); 267588ac45SBarry Smith 27*ca44d042SBarry Smith EXTERN int AODestroy(AO); 28*ca44d042SBarry Smith EXTERN int AOView(AO,Viewer); 297588ac45SBarry Smith 30376ee591SBarry Smith /* ----------------------------------------------------*/ 31376ee591SBarry Smith 320752156aSBarry Smith typedef enum {AODATA_BASIC=0,AODATA_ADVANCED=1} AODataType; 33376ee591SBarry Smith 340752156aSBarry Smith #define AODATA_COOKIE PETSC_COOKIE+24 35376ee591SBarry Smith 360752156aSBarry Smith typedef struct _p_AOData* AOData; 370752156aSBarry Smith 38*ca44d042SBarry Smith EXTERN int AODataCreateBasic(MPI_Comm,AOData *); 39*ca44d042SBarry Smith EXTERN int AODataView(AOData,Viewer); 40*ca44d042SBarry Smith EXTERN int AODataDestroy(AOData); 41*ca44d042SBarry Smith EXTERN int AODataLoadBasic(Viewer,AOData *); 42*ca44d042SBarry Smith EXTERN int AODataGetInfo(AOData,int*,char ***); 4331b6eecaSBarry Smith 44*ca44d042SBarry Smith EXTERN int AODataKeyAdd(AOData,char*,int,int); 45*ca44d042SBarry Smith EXTERN int AODataKeyRemove(AOData,char*); 46b2487710SBarry Smith 47*ca44d042SBarry Smith EXTERN int AODataKeySetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping); 48*ca44d042SBarry Smith EXTERN int AODataKeyGetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping*); 49*ca44d042SBarry Smith EXTERN int AODataKeyRemap(AOData,char *,AO); 5031b6eecaSBarry Smith 51*ca44d042SBarry Smith EXTERN int AODataKeyExists(AOData,char*,PetscTruth*); 52*ca44d042SBarry Smith EXTERN int AODataKeyGetInfo(AOData,char *,int *,int*,int*,char***); 53*ca44d042SBarry Smith EXTERN int AODataKeyGetOwnershipRange(AOData,char *,int *,int*); 54ea06a074SBarry Smith 55*ca44d042SBarry Smith EXTERN int AODataKeyGetNeighbors(AOData,char *,int,int*,IS *); 56*ca44d042SBarry Smith EXTERN int AODataKeyGetNeighborsIS(AOData,char *,IS,IS *); 57*ca44d042SBarry Smith EXTERN int AODataKeyGetAdjacency(AOData,char *,Mat*); 58ea06a074SBarry Smith 59*ca44d042SBarry Smith EXTERN int AODataKeyGetActive(AOData,char*,char*,int,int *,int,IS*); 60*ca44d042SBarry Smith EXTERN int AODataKeyGetActiveIS(AOData,char*,char*,IS,int,IS*); 61*ca44d042SBarry Smith EXTERN int AODataKeyGetActiveLocal(AOData,char*,char*,int,int *,int,IS*); 62*ca44d042SBarry Smith EXTERN int AODataKeyGetActiveLocalIS(AOData,char*,char*,IS,int,IS*); 6335c17c5bSBarry Smith 64*ca44d042SBarry Smith EXTERN int AODataKeyPartition(AOData,char *); 65ea06a074SBarry Smith 66*ca44d042SBarry Smith EXTERN int AODataSegmentAdd(AOData,char*,char *,int,int,int *,void *,PetscDataType); 67*ca44d042SBarry Smith EXTERN int AODataSegmentRemove(AOData,char *,char *); 68*ca44d042SBarry Smith EXTERN int AODataSegmentAddIS(AOData,char*,char *,int,IS,void *,PetscDataType); 6931b6eecaSBarry Smith 70*ca44d042SBarry Smith EXTERN int AODataSegmentExists(AOData,char*,char*,PetscTruth*); 71*ca44d042SBarry Smith EXTERN int AODataSegmentGetInfo(AOData,char *,char *,int *,PetscDataType*); 7231b6eecaSBarry Smith 73*ca44d042SBarry Smith EXTERN int AODataSegmentGet(AOData,char *,char *,int,int*,void **); 74*ca44d042SBarry Smith EXTERN int AODataSegmentRestore(AOData,char *,char *,int,int*,void **); 75*ca44d042SBarry Smith EXTERN int AODataSegmentGetIS(AOData,char *,char *,IS,void **); 76*ca44d042SBarry Smith EXTERN int AODataSegmentRestoreIS(AOData,char *,char *,IS,void **); 7731b6eecaSBarry Smith 78*ca44d042SBarry Smith EXTERN int AODataSegmentGetLocal(AOData,char *,char *,int,int*,void **); 79*ca44d042SBarry Smith EXTERN int AODataSegmentRestoreLocal(AOData,char *,char *,int,int*,void **); 80*ca44d042SBarry Smith EXTERN int AODataSegmentGetLocalIS(AOData,char *,char *,IS,void **); 81*ca44d042SBarry Smith EXTERN int AODataSegmentRestoreLocalIS(AOData,char *,char *,IS,void **); 822bdab257SBarry Smith 83*ca44d042SBarry Smith EXTERN int AODataSegmentGetReduced(AOData,char *,char *,int,int*,IS *); 84*ca44d042SBarry Smith EXTERN int AODataSegmentGetReducedIS(AOData,char *,char *,IS,IS *); 85*ca44d042SBarry Smith EXTERN int AODataSegmentGetExtrema(AOData,char*,char*,void *,void *); 86e852ff30SBarry Smith 87*ca44d042SBarry Smith EXTERN int AODataSegmentPartition(AOData,char *,char *); 882bdab257SBarry Smith 89*ca44d042SBarry Smith EXTERN int AODataPartitionAndSetupLocal(AOData,char*,char*,IS*,IS*,ISLocalToGlobalMapping*); 90*ca44d042SBarry Smith EXTERN int AODataAliasAdd(AOData,char *,char *); 911ec7a0b9SBarry Smith 921ec7a0b9SBarry Smith 931ec7a0b9SBarry Smith typedef struct _p_AOData2dGrid *AOData2dGrid; 94*ca44d042SBarry Smith EXTERN int AOData2dGridAddNode(AOData2dGrid, double, double, int *); 95*ca44d042SBarry Smith EXTERN int AOData2dGridInput(AOData2dGrid,Draw); 96*ca44d042SBarry Smith EXTERN int AOData2dGridFlipCells(AOData2dGrid); 97*ca44d042SBarry Smith EXTERN int AOData2dGridComputeNeighbors(AOData2dGrid); 98*ca44d042SBarry Smith EXTERN int AOData2dGridComputeVertexBoundary(AOData2dGrid); 99*ca44d042SBarry Smith EXTERN int AOData2dGridDraw(AOData2dGrid,Draw); 100*ca44d042SBarry Smith EXTERN int AOData2dGridDestroy(AOData2dGrid); 101*ca44d042SBarry Smith EXTERN int AOData2dGridCreate(AOData2dGrid*); 102*ca44d042SBarry Smith EXTERN int AOData2dGridToAOData(AOData2dGrid,AOData*); 1031ec7a0b9SBarry Smith 1047588ac45SBarry Smith #endif 1057588ac45SBarry Smith 106230e2716SBarry Smith 107