xref: /petsc/include/petscao.h (revision e852ff308a161519aecfe8f8f4a23d9d1f557aea)
1*e852ff30SBarry Smith /* $Id: ao.h,v 1.9 1997/10/10 04:08:45 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"
117588ac45SBarry Smith 
120752156aSBarry Smith typedef enum {AO_BASIC=0, AO_ADVANCED=1} AOType;
137588ac45SBarry Smith 
147588ac45SBarry Smith #define AO_COOKIE PETSC_COOKIE+20
157588ac45SBarry Smith 
161ac94ccfSSatish Balay typedef struct _p_AO* AO;
177588ac45SBarry Smith 
187588ac45SBarry Smith extern int AOCreateBasic(MPI_Comm,int,int*,int*,AO*);
197588ac45SBarry Smith extern int AOCreateBasicIS(MPI_Comm,IS,IS,AO*);
207588ac45SBarry Smith 
217588ac45SBarry Smith extern int AOPetscToApplication(AO,int,int*);
227588ac45SBarry Smith extern int AOApplicationToPetsc(AO,int,int*);
237588ac45SBarry Smith extern int AOPetscToApplicationIS(AO,IS);
247588ac45SBarry Smith extern int AOApplicationToPetscIS(AO,IS);
257588ac45SBarry Smith 
267588ac45SBarry Smith extern int AODestroy(AO);
277588ac45SBarry Smith extern int AOView(AO,Viewer);
287588ac45SBarry Smith 
29376ee591SBarry Smith /* ----------------------------------------------------*/
30376ee591SBarry Smith 
310752156aSBarry Smith typedef enum {AODATA_BASIC=0, AODATA_ADVANCED=1} AODataType;
32376ee591SBarry Smith 
330752156aSBarry Smith #define AODATA_COOKIE PETSC_COOKIE+24
34376ee591SBarry Smith 
350752156aSBarry Smith typedef struct _p_AOData* AOData;
360752156aSBarry Smith 
37f2bd0a27SBarry Smith extern int AODataCreateBasic(MPI_Comm,int,AOData *);
3831b6eecaSBarry Smith 
39*e852ff30SBarry Smith extern int AODataKeyAdd(AOData,char*,int,int,int);
40*e852ff30SBarry Smith extern int AODataKeyAddLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping);
41*e852ff30SBarry Smith extern int AODataKeyRemapIS(AOData,char *,IS);
4231b6eecaSBarry Smith 
43*e852ff30SBarry Smith extern int AODataSegmentAdd(AOData,char*,char *,int, int, int *,void *,PetscDataType);
44*e852ff30SBarry Smith extern int AODataSegmentAddIS(AOData,char*,char *,int, IS,void *,PetscDataType);
4531b6eecaSBarry Smith 
46*e852ff30SBarry Smith extern int AODataKeyGetInfo(AOData,char *,int *,int*,int *);
47*e852ff30SBarry Smith extern int AODataKeyGetInfoOwnership(AOData,char *,int *,int*);
48*e852ff30SBarry Smith extern int AODataSegmentGetInfo(AOData,char *,char *,int *,int *,int*,PetscDataType*);
4931b6eecaSBarry Smith 
50*e852ff30SBarry Smith extern int AODataSegmentGet(AOData,char *,char *,int,int*,void **);
51*e852ff30SBarry Smith extern int AODataSegmentRestore(AOData,char *,char *,int,int*,void **);
52*e852ff30SBarry Smith extern int AODataSegmentGetIS(AOData,char *,char *,IS,void **);
53*e852ff30SBarry Smith extern int AODataSegmentRestoreIS(AOData,char *,char *,IS,void **);
5431b6eecaSBarry Smith 
55*e852ff30SBarry Smith extern int AODataSegmentGetLocal(AOData,char *,char *,int,int*,void **);
56*e852ff30SBarry Smith extern int AODataSegmentRestoreLocal(AOData,char *,char *,int,int*,void **);
57*e852ff30SBarry Smith extern int AODataSegmentGetLocalIS(AOData,char *,char *,IS,void **);
58*e852ff30SBarry Smith extern int AODataSegmentRestoreLocalIS(AOData,char *,char *,IS,void **);
592bdab257SBarry Smith 
60*e852ff30SBarry Smith extern int AODataSegmentGetReduced(AOData,char *,char *,int,int*,IS *);
61*e852ff30SBarry Smith extern int AODataSegmentGetReducedIS(AOData,char *,char *,IS,IS *);
62*e852ff30SBarry Smith 
63*e852ff30SBarry Smith extern int AODataKeyGetNeighbors(AOData,char *,int,int*,IS *);
64*e852ff30SBarry Smith extern int AODataKeyGetNeighborsIS(AOData,char *,IS,IS *);
652bdab257SBarry Smith 
660752156aSBarry Smith extern int AODataView(AOData,Viewer);
670752156aSBarry Smith extern int AODataDestroy(AOData);
68376ee591SBarry Smith 
69f2bd0a27SBarry Smith extern int AODataLoadBasic(Viewer,AOData *);
70376ee591SBarry Smith 
717588ac45SBarry Smith #endif
727588ac45SBarry Smith 
73230e2716SBarry Smith 
74