Actual source code: petscao.h
1: /*
2: An application ordering is mapping between an application-centric
3: ordering (the ordering that is "natural" for the application) and
4: the parallel ordering that PETSc uses.
5: */
8: #include petscis.h
9: #include petscmat.h
12: typedef enum {AO_BASIC=0, AO_ADVANCED, AO_MAPPING, AO_NEW} AOType;
14: /*S
15: AO - Abstract PETSc object that manages mapping between different global numbering
17: Level: intermediate
19: Concepts: global numbering
21: .seealso: AOCreateBasic(), AOCreateBasicIS(), AOPetscToApplication(), AOView()
22: S*/
23: typedef struct _p_AO* AO;
25: /* Logging support */
28: EXTERN PetscErrorCode DMInitializePackage(const char[]);
30: EXTERN PetscErrorCode AOCreateBasic(MPI_Comm,PetscInt,const PetscInt[],const PetscInt[],AO*);
31: EXTERN PetscErrorCode AOCreateBasicIS(IS,IS,AO*);
33: EXTERN PetscErrorCode AOCreateMapping(MPI_Comm,PetscInt,const PetscInt[],const PetscInt[],AO*);
34: EXTERN PetscErrorCode AOCreateMappingIS(IS,IS,AO*);
36: EXTERN PetscErrorCode AOView(AO,PetscViewer);
37: EXTERN PetscErrorCode AODestroy(AO);
39: EXTERN PetscErrorCode AORegister_Private(const char [], const char [], const char [], PetscErrorCode (*)(AO));
40: #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
41: #define AORegister(a,b,c,d) AORegister_Private(a,b,c,0)
42: #else
43: #define AORegister(a,b,c,d) AORegister_Private(a,b,c,d)
44: #endif
46: EXTERN PetscErrorCode AOPetscToApplication(AO,PetscInt,PetscInt[]);
47: EXTERN PetscErrorCode AOApplicationToPetsc(AO,PetscInt,PetscInt[]);
48: EXTERN PetscErrorCode AOPetscToApplicationIS(AO,IS);
49: EXTERN PetscErrorCode AOApplicationToPetscIS(AO,IS);
51: EXTERN PetscErrorCode AOPetscToApplicationPermuteInt(AO, PetscInt, PetscInt[]);
52: EXTERN PetscErrorCode AOApplicationToPetscPermuteInt(AO, PetscInt, PetscInt[]);
53: EXTERN PetscErrorCode AOPetscToApplicationPermuteReal(AO, PetscInt, PetscReal[]);
54: EXTERN PetscErrorCode AOApplicationToPetscPermuteReal(AO, PetscInt, PetscReal[]);
56: EXTERN PetscErrorCode AOMappingHasApplicationIndex(AO, PetscInt, PetscTruth *);
57: EXTERN PetscErrorCode AOMappingHasPetscIndex(AO, PetscInt, PetscTruth *);
59: /* ----------------------------------------------------*/
61: /* aodatabasic.c, aodata.c inpututils.c */
63: typedef enum {AODATA_BASIC=0,AODATA_ADVANCED=1} AODataType;
65: /*S
66: AOData - Abstract PETSc object that manages complex parallel data structures intended to
67: hold grid information, etc
69: Level: deprecated
71: .seealso: AODataCreateBasic()
72: S*/
73: typedef struct _p_AOData* AOData;
75: EXTERN PetscErrorCode AODataCreateBasic(MPI_Comm,AOData *);
76: EXTERN PetscErrorCode AODataView(AOData,PetscViewer);
77: EXTERN PetscErrorCode AODataDestroy(AOData);
78: EXTERN PetscErrorCode AODataLoadBasic(PetscViewer,AOData *);
79: EXTERN PetscErrorCode AODataGetInfo(AOData,PetscInt*,char ***);
81: EXTERN PetscErrorCode AODataKeyAdd(AOData,const char[],PetscInt,PetscInt);
82: EXTERN PetscErrorCode AODataKeyRemove(AOData,const char[]);
84: EXTERN PetscErrorCode AODataKeySetLocalToGlobalMapping(AOData,const char[],ISLocalToGlobalMapping);
85: EXTERN PetscErrorCode AODataKeyGetLocalToGlobalMapping(AOData,const char[],ISLocalToGlobalMapping*);
86: EXTERN PetscErrorCode AODataKeyRemap(AOData,const char[],AO);
88: EXTERN PetscErrorCode AODataKeyExists(AOData,const char[],PetscTruth*);
89: EXTERN PetscErrorCode AODataKeyGetInfo(AOData,const char[],PetscInt *,PetscInt*,PetscInt*,char***);
90: EXTERN PetscErrorCode AODataKeyGetOwnershipRange(AOData,const char[],PetscInt *,PetscInt*);
92: EXTERN PetscErrorCode AODataKeyGetNeighbors(AOData,const char[],PetscInt,PetscInt*,IS *);
93: EXTERN PetscErrorCode AODataKeyGetNeighborsIS(AOData,const char[],IS,IS *);
94: EXTERN PetscErrorCode AODataKeyGetAdjacency(AOData,const char[],Mat*);
96: EXTERN PetscErrorCode AODataKeyGetActive(AOData,const char[],const char[],PetscInt,PetscInt *,PetscInt,IS*);
97: EXTERN PetscErrorCode AODataKeyGetActiveIS(AOData,const char[],const char[],IS,PetscInt,IS*);
98: EXTERN PetscErrorCode AODataKeyGetActiveLocal(AOData,const char[],const char[],PetscInt,PetscInt *,PetscInt,IS*);
99: EXTERN PetscErrorCode AODataKeyGetActiveLocalIS(AOData,const char[],const char[],IS,PetscInt,IS*);
101: EXTERN PetscErrorCode AODataKeyPartition(AOData,const char[]);
103: EXTERN PetscErrorCode AODataSegmentAdd(AOData,const char[],const char[],PetscInt,PetscInt,PetscInt *,void *,PetscDataType);
104: EXTERN PetscErrorCode AODataSegmentRemove(AOData,const char[],const char[]);
105: EXTERN PetscErrorCode AODataSegmentAddIS(AOData,const char[],const char[],PetscInt,IS,void *,PetscDataType);
107: EXTERN PetscErrorCode AODataSegmentExists(AOData,const char[],const char[],PetscTruth*);
108: EXTERN PetscErrorCode AODataSegmentGetInfo(AOData,const char[],const char[],PetscInt *,PetscDataType*);
110: EXTERN PetscErrorCode AODataSegmentGet(AOData,const char[],const char[],PetscInt,PetscInt*,void **);
111: EXTERN PetscErrorCode AODataSegmentRestore(AOData,const char[],const char[],PetscInt,PetscInt*,void **);
112: EXTERN PetscErrorCode AODataSegmentGetIS(AOData,const char[],const char[],IS,void **);
113: EXTERN PetscErrorCode AODataSegmentRestoreIS(AOData,const char[],const char[],IS,void **);
115: EXTERN PetscErrorCode AODataSegmentGetLocal(AOData,const char[],const char[],PetscInt,PetscInt*,void **);
116: EXTERN PetscErrorCode AODataSegmentRestoreLocal(AOData,const char[],const char[],PetscInt,PetscInt*,void **);
117: EXTERN PetscErrorCode AODataSegmentGetLocalIS(AOData,const char[],const char[],IS,void **);
118: EXTERN PetscErrorCode AODataSegmentRestoreLocalIS(AOData,const char[],const char[],IS,void **);
120: EXTERN PetscErrorCode AODataSegmentGetReduced(AOData,const char[],const char[],PetscInt,PetscInt*,IS *);
121: EXTERN PetscErrorCode AODataSegmentGetReducedIS(AOData,const char[],const char[],IS,IS *);
122: EXTERN PetscErrorCode AODataSegmentGetExtrema(AOData,const char[],const char[],void *,void *);
124: EXTERN PetscErrorCode AODataSegmentPartition(AOData,const char[],const char[]);
126: EXTERN PetscErrorCode AODataPartitionAndSetupLocal(AOData,const char[],const char[],IS*,IS*,ISLocalToGlobalMapping*);
127: EXTERN PetscErrorCode AODataAliasAdd(AOData,const char[],const char[]);
129:
130: typedef struct _n_AOData2dGrid* AOData2dGrid;
131: EXTERN PetscErrorCode AOData2dGridAddNode(AOData2dGrid, PetscReal, PetscReal, PetscInt *);
132: EXTERN PetscErrorCode AOData2dGridInput(AOData2dGrid,PetscDraw);
133: EXTERN PetscErrorCode AOData2dGridFlipCells(AOData2dGrid);
134: EXTERN PetscErrorCode AOData2dGridComputeNeighbors(AOData2dGrid);
135: EXTERN PetscErrorCode AOData2dGridComputeVertexBoundary(AOData2dGrid);
136: EXTERN PetscErrorCode AOData2dGridDraw(AOData2dGrid,PetscDraw);
137: EXTERN PetscErrorCode AOData2dGridDestroy(AOData2dGrid);
138: EXTERN PetscErrorCode AOData2dGridCreate(AOData2dGrid*);
139: EXTERN PetscErrorCode AOData2dGridToAOData(AOData2dGrid,AOData*);
142: #endif