xref: /petsc/include/petscao.h (revision 2bdab257d34f9d407eac123c854c8b30dbb6719c)
1*2bdab257SBarry Smith /* $Id: ao.h,v 1.8 1997/10/08 01:29:46 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 
3931b6eecaSBarry Smith extern int AODataAddKey(AOData,char*,int,int,int);
40*2bdab257SBarry Smith extern int AODataAddKeyLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping);
4131b6eecaSBarry Smith 
4231b6eecaSBarry Smith extern int AODataAddSegment(AOData,char*,char *,int, int, int *,void *,PetscDataType);
4331b6eecaSBarry Smith extern int AODataAddSegmentIS(AOData,char*,char *,int, IS,void *,PetscDataType);
4431b6eecaSBarry Smith 
4531b6eecaSBarry Smith extern int AODataGetInfoKey(AOData,char *,int *,int*,int *);
4631b6eecaSBarry Smith extern int AODataGetInfoKeyOwnership(AOData,char *,int *,int*);
4731b6eecaSBarry Smith extern int AODataGetInfoSegment(AOData,char *,char *,int *,int *,int*,PetscDataType*);
4831b6eecaSBarry Smith 
4931b6eecaSBarry Smith extern int AODataGetSegment(AOData,char *,char *,int,int*,void **);
5031b6eecaSBarry Smith extern int AODataRestoreSegment(AOData,char *,char *,int,int*,void **);
5131b6eecaSBarry Smith extern int AODataGetSegmentIS(AOData,char *,char *,IS,void **);
5231b6eecaSBarry Smith extern int AODataRestoreSegmentIS(AOData,char *,char *,IS,void **);
5331b6eecaSBarry Smith 
54*2bdab257SBarry Smith extern int AODataGetLocalSegment(AOData,char *,char *,int,int*,void **);
55*2bdab257SBarry Smith extern int AODataRestoreLocalSegment(AOData,char *,char *,int,int*,void **);
56*2bdab257SBarry Smith extern int AODataGetLocalSegmentIS(AOData,char *,char *,IS,void **);
57*2bdab257SBarry Smith extern int AODataRestoreLocalSegmentIS(AOData,char *,char *,IS,void **);
58*2bdab257SBarry Smith 
59*2bdab257SBarry Smith extern int AODataGetReducedSegment(AOData,char *,char *,int,int*,IS *);
60*2bdab257SBarry Smith extern int AODataGetReducedSegmentIS(AOData,char *,char *,IS,IS *);
61*2bdab257SBarry Smith 
620752156aSBarry Smith extern int AODataView(AOData,Viewer);
630752156aSBarry Smith extern int AODataDestroy(AOData);
64376ee591SBarry Smith 
65f2bd0a27SBarry Smith extern int AODataLoadBasic(Viewer,AOData *);
66376ee591SBarry Smith 
677588ac45SBarry Smith #endif
687588ac45SBarry Smith 
69230e2716SBarry Smith 
70