Actual source code: petscao.h

petsc-3.7.7 2017-09-25
Report Typos and Errors
  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>

 10: /*S
 11:      AO - Abstract PETSc object that manages mapping between different global numbering

 13:    Level: intermediate

 15:   Concepts: global numbering

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

 21: /*J
 22:     AOType - String with the name of a PETSc application ordering or the creation function
 23:        with an optional dynamic library name.

 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_STATIC_INLINE PetscErrorCode AOViewFromOptions(AO A,PetscObject obj,const char name[]) {return PetscObjectViewFromOptions((PetscObject)A,obj,name);}
 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: /* ----------------------------------------------------*/
 76: #endif