xref: /petsc/include/petscao.h (revision f2bd0a27e4b7b5df217c576db3e80c1b3a859a53)
1*f2bd0a27SBarry Smith /* $Id: ao.h,v 1.5 1997/09/26 02:22:17 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 
37*f2bd0a27SBarry Smith extern int AODataCreateBasic(MPI_Comm,int,AOData *);
38*f2bd0a27SBarry Smith extern int AODataAdd(AOData,char*,int, int, int *,void *,PetscDataType);
39*f2bd0a27SBarry Smith extern int AODataAddIS(AOData,char*,int, IS,void *,PetscDataType);
40*f2bd0a27SBarry Smith extern int AODataGetSize(AOData,char *,int *,int*);
41*f2bd0a27SBarry Smith extern int AODataGet(AOData,char *,int,int*,void **);
42*f2bd0a27SBarry Smith extern int AODataRestore(AOData,char *,int,int*,void **);
43*f2bd0a27SBarry Smith extern int AODataGetIS(AOData,char *,IS,void **);
44*f2bd0a27SBarry Smith extern int AODataRestoreIS(AOData,char *,IS,void **);
450752156aSBarry Smith extern int AODataView(AOData,Viewer);
460752156aSBarry Smith extern int AODataDestroy(AOData);
47376ee591SBarry Smith 
48*f2bd0a27SBarry Smith extern int AODataLoadBasic(Viewer,AOData *);
49376ee591SBarry Smith 
507588ac45SBarry Smith #endif
517588ac45SBarry Smith 
52230e2716SBarry Smith 
53