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