xref: /petsc/include/petscao.h (revision 522c5e43ca724847a26b473814af9ba6607d4c94)
1*522c5e43SBarry Smith /* $Id: ao.h,v 1.12 1997/11/09 04:10:30 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"
11d64ed03dSBarry Smith #include "mat.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 
38*522c5e43SBarry Smith extern int AODataCreateBasic(MPI_Comm,AOData *);
39*522c5e43SBarry Smith extern int AODataView(AOData,Viewer);
40*522c5e43SBarry Smith extern int AODataDestroy(AOData);
41*522c5e43SBarry Smith extern int AODataLoadBasic(Viewer,AOData *);
42*522c5e43SBarry Smith extern int AODataGetInfo(AOData,int*,char ***);
4331b6eecaSBarry Smith 
44*522c5e43SBarry Smith extern int AODataKeyAdd(AOData,char*,int,int);
45ea06a074SBarry Smith extern int AODataKeySetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping);
46ea06a074SBarry Smith extern int AODataKeyGetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping*);
47d64ed03dSBarry Smith extern int AODataKeyRemap(AOData,char *,AO);
4831b6eecaSBarry Smith 
49ea06a074SBarry Smith extern int AODataKeyExists(AOData,char*,PetscTruth*);
50*522c5e43SBarry Smith extern int AODataKeyGetInfo(AOData,char *,int *,int*,int*,char***);
51ea06a074SBarry Smith extern int AODataKeyGetOwnershipRange(AOData,char *,int *,int*);
52ea06a074SBarry Smith 
53ea06a074SBarry Smith extern int AODataKeyGetNeighbors(AOData,char *,int,int*,IS *);
54ea06a074SBarry Smith extern int AODataKeyGetNeighborsIS(AOData,char *,IS,IS *);
55ea06a074SBarry Smith extern int AODataKeyGetAdjacency(AOData,char *,Mat*);
56ea06a074SBarry Smith 
57ea06a074SBarry Smith extern int AODataKeyPartition(AOData,char *);
58ea06a074SBarry Smith 
59e852ff30SBarry Smith extern int AODataSegmentAdd(AOData,char*,char *,int, int, int *,void *,PetscDataType);
60e852ff30SBarry Smith extern int AODataSegmentAddIS(AOData,char*,char *,int, IS,void *,PetscDataType);
6131b6eecaSBarry Smith 
62ea06a074SBarry Smith extern int AODataSegmentExists(AOData,char*,char*,PetscTruth*);
63*522c5e43SBarry Smith extern int AODataSegmentGetInfo(AOData,char *,char *,int *,PetscDataType*);
6431b6eecaSBarry Smith 
65e852ff30SBarry Smith extern int AODataSegmentGet(AOData,char *,char *,int,int*,void **);
66e852ff30SBarry Smith extern int AODataSegmentRestore(AOData,char *,char *,int,int*,void **);
67e852ff30SBarry Smith extern int AODataSegmentGetIS(AOData,char *,char *,IS,void **);
68e852ff30SBarry Smith extern int AODataSegmentRestoreIS(AOData,char *,char *,IS,void **);
6931b6eecaSBarry Smith 
70e852ff30SBarry Smith extern int AODataSegmentGetLocal(AOData,char *,char *,int,int*,void **);
71e852ff30SBarry Smith extern int AODataSegmentRestoreLocal(AOData,char *,char *,int,int*,void **);
72e852ff30SBarry Smith extern int AODataSegmentGetLocalIS(AOData,char *,char *,IS,void **);
73e852ff30SBarry Smith extern int AODataSegmentRestoreLocalIS(AOData,char *,char *,IS,void **);
742bdab257SBarry Smith 
75e852ff30SBarry Smith extern int AODataSegmentGetReduced(AOData,char *,char *,int,int*,IS *);
76e852ff30SBarry Smith extern int AODataSegmentGetReducedIS(AOData,char *,char *,IS,IS *);
77ea06a074SBarry Smith extern int AODataSegmentGetExtrema(AOData,char*,char*,void *,void *);
78e852ff30SBarry Smith 
79ea06a074SBarry Smith extern int AODataSegmentPartition(AOData,char *,char *);
802bdab257SBarry Smith 
81376ee591SBarry Smith 
827588ac45SBarry Smith #endif
837588ac45SBarry Smith 
84230e2716SBarry Smith 
85