xref: /petsc/include/petscao.h (revision ca44d042d6f86ecc01fa7a52a5213a5161f95f53)
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