xref: /petsc/include/petscao.h (revision 76be9ce4a233aaa47cda2bc7f5a27cd7faabecaa)
1 /* $Id: ao.h,v 1.14 1997/12/01 23:12:21 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 #include "mat.h"
12 
13 typedef enum {AO_BASIC=0, AO_ADVANCED=1} AOType;
14 
15 #define AO_COOKIE PETSC_COOKIE+20
16 
17 typedef struct _p_AO* AO;
18 
19 extern int AOCreateBasic(MPI_Comm,int,int*,int*,AO*);
20 extern int AOCreateBasicIS(IS,IS,AO*);
21 
22 extern int AOPetscToApplication(AO,int,int*);
23 extern int AOApplicationToPetsc(AO,int,int*);
24 extern int AOPetscToApplicationIS(AO,IS);
25 extern int AOApplicationToPetscIS(AO,IS);
26 
27 extern int AODestroy(AO);
28 extern int AOView(AO,Viewer);
29 
30 /* ----------------------------------------------------*/
31 
32 typedef enum {AODATA_BASIC=0, AODATA_ADVANCED=1} AODataType;
33 
34 #define AODATA_COOKIE PETSC_COOKIE+24
35 
36 typedef struct _p_AOData* AOData;
37 
38 extern int AODataCreateBasic(MPI_Comm,AOData *);
39 extern int AODataView(AOData,Viewer);
40 extern int AODataDestroy(AOData);
41 extern int AODataLoadBasic(Viewer,AOData *);
42 extern int AODataGetInfo(AOData,int*,char ***);
43 
44 extern int AODataKeyAdd(AOData,char*,int,int);
45 extern int AODataKeyRemove(AOData,char*);
46 
47 extern int AODataKeySetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping);
48 extern int AODataKeyGetLocalToGlobalMapping(AOData,char*,ISLocalToGlobalMapping*);
49 extern int AODataKeyRemap(AOData,char *,AO);
50 
51 extern int AODataKeyExists(AOData,char*,PetscTruth*);
52 extern int AODataKeyGetInfo(AOData,char *,int *,int*,int*,char***);
53 extern int AODataKeyGetOwnershipRange(AOData,char *,int *,int*);
54 
55 extern int AODataKeyGetNeighbors(AOData,char *,int,int*,IS *);
56 extern int AODataKeyGetNeighborsIS(AOData,char *,IS,IS *);
57 extern int AODataKeyGetAdjacency(AOData,char *,Mat*);
58 
59 extern int AODataKeyGetActive(AOData,char*,char*,int,int *,int,IS*);
60 extern int AODataKeyGetActiveIS(AOData,char*,char*,IS,int,IS*);
61 extern int AODataKeyGetActiveLocal(AOData,char*,char*,int,int *,int,IS*);
62 extern int AODataKeyGetActiveLocalIS(AOData,char*,char*,IS,int,IS*);
63 
64 extern int AODataKeyPartition(AOData,char *);
65 
66 extern int AODataSegmentAdd(AOData,char*,char *,int, int, int *,void *,PetscDataType);
67 extern int AODataSegmentRemove(AOData,char *,char *);
68 extern int AODataSegmentAddIS(AOData,char*,char *,int, IS,void *,PetscDataType);
69 
70 extern int AODataSegmentExists(AOData,char*,char*,PetscTruth*);
71 extern int AODataSegmentGetInfo(AOData,char *,char *,int *,PetscDataType*);
72 
73 extern int AODataSegmentGet(AOData,char *,char *,int,int*,void **);
74 extern int AODataSegmentRestore(AOData,char *,char *,int,int*,void **);
75 extern int AODataSegmentGetIS(AOData,char *,char *,IS,void **);
76 extern int AODataSegmentRestoreIS(AOData,char *,char *,IS,void **);
77 
78 extern int AODataSegmentGetLocal(AOData,char *,char *,int,int*,void **);
79 extern int AODataSegmentRestoreLocal(AOData,char *,char *,int,int*,void **);
80 extern int AODataSegmentGetLocalIS(AOData,char *,char *,IS,void **);
81 extern int AODataSegmentRestoreLocalIS(AOData,char *,char *,IS,void **);
82 
83 extern int AODataSegmentGetReduced(AOData,char *,char *,int,int*,IS *);
84 extern int AODataSegmentGetReducedIS(AOData,char *,char *,IS,IS *);
85 extern int AODataSegmentGetExtrema(AOData,char*,char*,void *,void *);
86 
87 extern int AODataSegmentPartition(AOData,char *,char *);
88 
89 
90 #endif
91 
92 
93