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=1, AO_MAPPING=2} 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(const char [], const char [], const char [], PetscErrorCode (*)(AO));
40: #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
41: #define AORegisterDynamic(a,b,c,d) AORegister(a,b,c,0)
42: #else
43: #define AORegisterDynamic(a,b,c,d) AORegister(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: #endif