xref: /petsc/include/petscao.h (revision ca44d042d6f86ecc01fa7a52a5213a5161f95f53)
1 /* $Id: petscao.h,v 1.23 2000/05/08 15:09:50 balay Exp bsmith $ */
2 
3 /*
4   An application ordering is mapping between an application-centric
5   ordering (the ordering that is "natural" for the application) and
6   the parallel ordering that PETSc uses.
7 */
8 #if !defined(__PETSCAO_H)
9 #define __PETSCAO_H
10 #include "petscis.h"
11 #include "petscmat.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 EXTERN int AODataPartitionAndSetupLocal(AOData,char*,char*,IS*,IS*,ISLocalToGlobalMapping*);
90 EXTERN int AODataAliasAdd(AOData,char *,char *);
91 
92 
93 typedef struct _p_AOData2dGrid *AOData2dGrid;
94 EXTERN int AOData2dGridAddNode(AOData2dGrid, double, double, int *);
95 EXTERN int AOData2dGridInput(AOData2dGrid,Draw);
96 EXTERN int AOData2dGridFlipCells(AOData2dGrid);
97 EXTERN int AOData2dGridComputeNeighbors(AOData2dGrid);
98 EXTERN int AOData2dGridComputeVertexBoundary(AOData2dGrid);
99 EXTERN int AOData2dGridDraw(AOData2dGrid,Draw);
100 EXTERN int AOData2dGridDestroy(AOData2dGrid);
101 EXTERN int AOData2dGridCreate(AOData2dGrid*);
102 EXTERN int AOData2dGridToAOData(AOData2dGrid,AOData*);
103 
104 #endif
105 
106 
107