xref: /petsc/include/petscao.h (revision 4e943966279c6894eddfbe1ccc26e15e94f32e3f)
1 /* $Id: ao.h,v 1.9 1997/10/10 04:08:45 bsmith Exp bsmith $ */
2 
3 /*
4    An application ordering is mapping between application-centric
5   ordering (the ordering that is "natural" to the application) and
6   the parallel ordering that PETSc uses.
7 */
8 #if !defined(__AO_PACKAGE)
9 #define __AO_PACKAGE
10 #include "is.h"
11 
12 typedef enum {AO_BASIC=0, AO_ADVANCED=1} AOType;
13 
14 #define AO_COOKIE PETSC_COOKIE+20
15 
16 typedef struct _p_AO* AO;
17 
18 extern int AOCreateBasic(MPI_Comm,int,int*,int*,AO*);
19 extern int AOCreateBasicIS(MPI_Comm,IS,IS,AO*);
20 
21 extern int AOPetscToApplication(AO,int,int*);
22 extern int AOApplicationToPetsc(AO,int,int*);
23 extern int AOPetscToApplicationIS(AO,IS);
24 extern int AOApplicationToPetscIS(AO,IS);
25 
26 extern int AODestroy(AO);
27 extern int AOView(AO,Viewer);
28 
29 /* ----------------------------------------------------*/
30 
31 typedef enum {AODATA_BASIC=0, AODATA_ADVANCED=1} AODataType;
32 
33 #define AODATA_COOKIE PETSC_COOKIE+24
34 
35 typedef struct _p_AOData* AOData;
36 
37 extern int AODataCreateBasic(MPI_Comm,int,AOData *);
38 
39 extern int AODataKeyAdd(AOData,char*,int,int,int);
40 extern int AODataKeyAddLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping);
41 extern int AODataKeyRemapIS(AOData,char *,IS);
42 
43 extern int AODataSegmentAdd(AOData,char*,char *,int, int, int *,void *,PetscDataType);
44 extern int AODataSegmentAddIS(AOData,char*,char *,int, IS,void *,PetscDataType);
45 
46 extern int AODataKeyGetInfo(AOData,char *,int *,int*,int *);
47 extern int AODataKeyGetInfoOwnership(AOData,char *,int *,int*);
48 extern int AODataSegmentGetInfo(AOData,char *,char *,int *,int *,int*,PetscDataType*);
49 
50 extern int AODataSegmentGet(AOData,char *,char *,int,int*,void **);
51 extern int AODataSegmentRestore(AOData,char *,char *,int,int*,void **);
52 extern int AODataSegmentGetIS(AOData,char *,char *,IS,void **);
53 extern int AODataSegmentRestoreIS(AOData,char *,char *,IS,void **);
54 
55 extern int AODataSegmentGetLocal(AOData,char *,char *,int,int*,void **);
56 extern int AODataSegmentRestoreLocal(AOData,char *,char *,int,int*,void **);
57 extern int AODataSegmentGetLocalIS(AOData,char *,char *,IS,void **);
58 extern int AODataSegmentRestoreLocalIS(AOData,char *,char *,IS,void **);
59 
60 extern int AODataSegmentGetReduced(AOData,char *,char *,int,int*,IS *);
61 extern int AODataSegmentGetReducedIS(AOData,char *,char *,IS,IS *);
62 
63 extern int AODataKeyGetNeighbors(AOData,char *,int,int*,IS *);
64 extern int AODataKeyGetNeighborsIS(AOData,char *,IS,IS *);
65 
66 extern int AODataView(AOData,Viewer);
67 extern int AODataDestroy(AOData);
68 
69 extern int AODataLoadBasic(Viewer,AOData *);
70 
71 #endif
72 
73 
74