Actual source code: petscao.h

  1: #ifndef PETSCAO_H
  2: #define PETSCAO_H

  4: #include <petscis.h>

  6: /* SUBMANSEC = AO */

  8: /*S
  9:      AO - Abstract PETSc object that manages mapping between different global numberings

 11:    Level: intermediate

 13:    Notes:
 14:    An application ordering is usually mapping between an application-centric
 15:    numbering (the ordering that is "natural" for the application) and
 16:    the parallel numbering that PETSc uses.

 18: .seealso: `AOCreateBasic()`, `AOCreateBasicIS()`, `AOPetscToApplication()`, `AOView()`, `AOApplicationToPetsc()`, `AOType`, `AOSetType()`
 19: S*/
 20: typedef struct _p_AO *AO;

 22: /*J
 23:     AOType - String with the name of a PETSc application ordering type

 25:    Level: beginner

 27: .seealso: `AOSetType()`, `AO`
 28: J*/
 29: typedef const char *AOType;
 30: #define AOBASIC          "basic"
 31: #define AOADVANCED       "advanced"
 32: #define AOMAPPING        "mapping"
 33: #define AOMEMORYSCALABLE "memoryscalable"

 35: /* Logging support */
 36: PETSC_EXTERN PetscClassId AO_CLASSID;

 38: PETSC_EXTERN PetscErrorCode AOInitializePackage(void);

 40: PETSC_EXTERN PetscErrorCode AOCreate(MPI_Comm, AO *);
 41: PETSC_EXTERN PetscErrorCode AOSetIS(AO, IS, IS);
 42: PETSC_EXTERN PetscErrorCode AOSetFromOptions(AO);

 44: PETSC_EXTERN PetscErrorCode AOCreateBasic(MPI_Comm, PetscInt, const PetscInt[], const PetscInt[], AO *);
 45: PETSC_EXTERN PetscErrorCode AOCreateBasicIS(IS, IS, AO *);
 46: PETSC_EXTERN PetscErrorCode AOCreateMemoryScalable(MPI_Comm, PetscInt, const PetscInt[], const PetscInt[], AO *);
 47: PETSC_EXTERN PetscErrorCode AOCreateMemoryScalableIS(IS, IS, AO *);
 48: PETSC_EXTERN PetscErrorCode AOCreateMapping(MPI_Comm, PetscInt, const PetscInt[], const PetscInt[], AO *);
 49: PETSC_EXTERN PetscErrorCode AOCreateMappingIS(IS, IS, AO *);

 51: PETSC_EXTERN PetscErrorCode AOView(AO, PetscViewer);
 52: PETSC_EXTERN PetscErrorCode AOViewFromOptions(AO, PetscObject, const char[]);
 53: PETSC_EXTERN PetscErrorCode AODestroy(AO *);

 55: /* Dynamic creation and loading functions */
 56: PETSC_EXTERN PetscFunctionList AOList;
 57: PETSC_EXTERN PetscErrorCode    AOSetType(AO, AOType);
 58: PETSC_EXTERN PetscErrorCode    AOGetType(AO, AOType *);

 60: PETSC_EXTERN PetscErrorCode AORegister(const char[], PetscErrorCode (*)(AO));

 62: PETSC_EXTERN PetscErrorCode AOPetscToApplication(AO, PetscInt, PetscInt[]);
 63: PETSC_EXTERN PetscErrorCode AOApplicationToPetsc(AO, PetscInt, PetscInt[]);
 64: PETSC_EXTERN PetscErrorCode AOPetscToApplicationIS(AO, IS);
 65: PETSC_EXTERN PetscErrorCode AOApplicationToPetscIS(AO, IS);

 67: PETSC_EXTERN PetscErrorCode AOPetscToApplicationPermuteInt(AO, PetscInt, PetscInt[]);
 68: PETSC_EXTERN PetscErrorCode AOApplicationToPetscPermuteInt(AO, PetscInt, PetscInt[]);
 69: PETSC_EXTERN PetscErrorCode AOPetscToApplicationPermuteReal(AO, PetscInt, PetscReal[]);
 70: PETSC_EXTERN PetscErrorCode AOApplicationToPetscPermuteReal(AO, PetscInt, PetscReal[]);

 72: PETSC_EXTERN PetscErrorCode AOMappingHasApplicationIndex(AO, PetscInt, PetscBool *);
 73: PETSC_EXTERN PetscErrorCode AOMappingHasPetscIndex(AO, PetscInt, PetscBool *);

 75: #endif