xref: /petsc/include/petscao.h (revision 0a835dfde17e989aa2dfc49c3e55e39ea1705529)
1*0a835dfdSSatish Balay /* $Id: petscao.h,v 1.22 2000/02/02 21:21:25 bsmith Exp balay $ */
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 */
8*0a835dfdSSatish Balay #if !defined(__PETSCAO_H)
9*0a835dfdSSatish Balay #define __PETSCAO_H
10*0a835dfdSSatish Balay #include "petscis.h"
11*0a835dfdSSatish 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 
197588ac45SBarry Smith extern int AOCreateBasic(MPI_Comm,int,int*,int*,AO*);
20d64ed03dSBarry Smith extern int AOCreateBasicIS(IS,IS,AO*);
217588ac45SBarry Smith 
227588ac45SBarry Smith extern int AOPetscToApplication(AO,int,int*);
237588ac45SBarry Smith extern int AOApplicationToPetsc(AO,int,int*);
247588ac45SBarry Smith extern int AOPetscToApplicationIS(AO,IS);
257588ac45SBarry Smith extern int AOApplicationToPetscIS(AO,IS);
267588ac45SBarry Smith 
277588ac45SBarry Smith extern int AODestroy(AO);
287588ac45SBarry 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 
38522c5e43SBarry Smith extern int AODataCreateBasic(MPI_Comm,AOData *);
39522c5e43SBarry Smith extern int AODataView(AOData,Viewer);
40522c5e43SBarry Smith extern int AODataDestroy(AOData);
41522c5e43SBarry Smith extern int AODataLoadBasic(Viewer,AOData *);
42522c5e43SBarry Smith extern int AODataGetInfo(AOData,int*,char ***);
4331b6eecaSBarry Smith 
44522c5e43SBarry Smith extern int AODataKeyAdd(AOData,char*,int,int);
45b2487710SBarry Smith extern int AODataKeyRemove(AOData,char*);
46b2487710SBarry Smith 
47ea06a074SBarry Smith extern int AODataKeySetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping);
48ea06a074SBarry Smith extern int AODataKeyGetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping*);
49d64ed03dSBarry Smith extern int AODataKeyRemap(AOData,char *,AO);
5031b6eecaSBarry Smith 
51ea06a074SBarry Smith extern int AODataKeyExists(AOData,char*,PetscTruth*);
52522c5e43SBarry Smith extern int AODataKeyGetInfo(AOData,char *,int *,int*,int*,char***);
53ea06a074SBarry Smith extern int AODataKeyGetOwnershipRange(AOData,char *,int *,int*);
54ea06a074SBarry Smith 
55ea06a074SBarry Smith extern int AODataKeyGetNeighbors(AOData,char *,int,int*,IS *);
56ea06a074SBarry Smith extern int AODataKeyGetNeighborsIS(AOData,char *,IS,IS *);
57ea06a074SBarry Smith extern int AODataKeyGetAdjacency(AOData,char *,Mat*);
58ea06a074SBarry Smith 
5935c17c5bSBarry Smith extern int AODataKeyGetActive(AOData,char*,char*,int,int *,int,IS*);
6035c17c5bSBarry Smith extern int AODataKeyGetActiveIS(AOData,char*,char*,IS,int,IS*);
6135c17c5bSBarry Smith extern int AODataKeyGetActiveLocal(AOData,char*,char*,int,int *,int,IS*);
6235c17c5bSBarry Smith extern int AODataKeyGetActiveLocalIS(AOData,char*,char*,IS,int,IS*);
6335c17c5bSBarry Smith 
64ea06a074SBarry Smith extern int AODataKeyPartition(AOData,char *);
65ea06a074SBarry Smith 
66e852ff30SBarry Smith extern int AODataSegmentAdd(AOData,char*,char *,int,int,int *,void *,PetscDataType);
67b2487710SBarry Smith extern int AODataSegmentRemove(AOData,char *,char *);
68e852ff30SBarry Smith extern int AODataSegmentAddIS(AOData,char*,char *,int,IS,void *,PetscDataType);
6931b6eecaSBarry Smith 
70ea06a074SBarry Smith extern int AODataSegmentExists(AOData,char*,char*,PetscTruth*);
71522c5e43SBarry Smith extern int AODataSegmentGetInfo(AOData,char *,char *,int *,PetscDataType*);
7231b6eecaSBarry Smith 
73e852ff30SBarry Smith extern int AODataSegmentGet(AOData,char *,char *,int,int*,void **);
74e852ff30SBarry Smith extern int AODataSegmentRestore(AOData,char *,char *,int,int*,void **);
75e852ff30SBarry Smith extern int AODataSegmentGetIS(AOData,char *,char *,IS,void **);
76e852ff30SBarry Smith extern int AODataSegmentRestoreIS(AOData,char *,char *,IS,void **);
7731b6eecaSBarry Smith 
78e852ff30SBarry Smith extern int AODataSegmentGetLocal(AOData,char *,char *,int,int*,void **);
79e852ff30SBarry Smith extern int AODataSegmentRestoreLocal(AOData,char *,char *,int,int*,void **);
80e852ff30SBarry Smith extern int AODataSegmentGetLocalIS(AOData,char *,char *,IS,void **);
81e852ff30SBarry Smith extern int AODataSegmentRestoreLocalIS(AOData,char *,char *,IS,void **);
822bdab257SBarry Smith 
83e852ff30SBarry Smith extern int AODataSegmentGetReduced(AOData,char *,char *,int,int*,IS *);
84e852ff30SBarry Smith extern int AODataSegmentGetReducedIS(AOData,char *,char *,IS,IS *);
85ea06a074SBarry Smith extern int AODataSegmentGetExtrema(AOData,char*,char*,void *,void *);
86e852ff30SBarry Smith 
87ea06a074SBarry Smith extern int AODataSegmentPartition(AOData,char *,char *);
882bdab257SBarry Smith 
89184914b5SBarry Smith extern int AODataPartitionAndSetupLocal(AOData,char*,char*,IS*,IS*,ISLocalToGlobalMapping*);
90f1af5d2fSBarry Smith extern int AODataAliasAdd(AOData,char *,char *);
911ec7a0b9SBarry Smith 
921ec7a0b9SBarry Smith 
931ec7a0b9SBarry Smith typedef struct _p_AOData2dGrid *AOData2dGrid;
941ec7a0b9SBarry Smith extern int AOData2dGridAddNode(AOData2dGrid, double, double, int *);
951ec7a0b9SBarry Smith extern int AOData2dGridInput(AOData2dGrid,Draw);
961ec7a0b9SBarry Smith extern int AOData2dGridFlipCells(AOData2dGrid);
971ec7a0b9SBarry Smith extern int AOData2dGridComputeNeighbors(AOData2dGrid);
981ec7a0b9SBarry Smith extern int AOData2dGridComputeVertexBoundary(AOData2dGrid);
991ec7a0b9SBarry Smith extern int AOData2dGridDraw(AOData2dGrid,Draw);
1001ec7a0b9SBarry Smith extern int AOData2dGridDestroy(AOData2dGrid);
1011ec7a0b9SBarry Smith extern int AOData2dGridCreate(AOData2dGrid*);
1022bad1931SBarry Smith extern int AOData2dGridToAOData(AOData2dGrid,AOData*);
1031ec7a0b9SBarry Smith 
1047588ac45SBarry Smith #endif
1057588ac45SBarry Smith 
106230e2716SBarry Smith 
107