1 /* 2 Defines the interface functions for the method of characteristics solvers 3 */ 4 #ifndef PETSCCHARACTERISTICS_H 5 #define PETSCCHARACTERISTICS_H 6 7 #include <petscvec.h> 8 #include <petscdmdatypes.h> 9 10 PETSC_EXTERN PetscErrorCode CharacteristicInitializePackage(void); 11 12 /*S 13 Characteristic - Abstract PETSc object that manages method of characteristics solves 14 15 Level: beginner 16 17 .seealso: CharacteristicCreate(), CharacteristicSetType(), CharacteristicType, SNES, TS, PC, KSP 18 S*/ 19 typedef struct _p_Characteristic *Characteristic; 20 21 /*J 22 CharacteristicType - String with the name of a characteristics method. 23 24 Level: beginner 25 26 .seealso: CharacteristicSetType(), Characteristic 27 J*/ 28 #define CHARACTERISTICDA "da" 29 typedef const char* CharacteristicType; 30 31 PETSC_EXTERN PetscErrorCode CharacteristicCreate(MPI_Comm, Characteristic *); 32 PETSC_EXTERN PetscErrorCode CharacteristicSetType(Characteristic, CharacteristicType); 33 PETSC_EXTERN PetscErrorCode CharacteristicSetUp(Characteristic); 34 PETSC_EXTERN PetscErrorCode CharacteristicSetVelocityInterpolation(Characteristic, DM, Vec, Vec, PetscInt, PetscInt[], PetscErrorCode (*)(Vec, PetscReal[], PetscInt, PetscInt[], PetscScalar[], void *), void *); 35 PETSC_EXTERN PetscErrorCode CharacteristicSetVelocityInterpolationLocal(Characteristic, DM, Vec, Vec, PetscInt, PetscInt[], PetscErrorCode (*)(void *, PetscReal[], PetscInt, PetscInt[], PetscScalar[], void *), void *); 36 PETSC_EXTERN PetscErrorCode CharacteristicSetFieldInterpolation(Characteristic, DM, Vec, PetscInt, PetscInt[], PetscErrorCode (*)(Vec, PetscReal[], PetscInt, PetscInt[], PetscScalar[], void *), void *); 37 PETSC_EXTERN PetscErrorCode CharacteristicSetFieldInterpolationLocal(Characteristic, DM, Vec, PetscInt, PetscInt[], PetscErrorCode (*)(void *, PetscReal[], PetscInt, PetscInt[], PetscScalar[], void *), void *); 38 PETSC_EXTERN PetscErrorCode CharacteristicSolve(Characteristic, PetscReal, Vec); 39 PETSC_EXTERN PetscErrorCode CharacteristicDestroy(Characteristic*); 40 41 PETSC_EXTERN PetscFunctionList CharacteristicList; 42 43 PETSC_EXTERN PetscErrorCode CharacteristicRegister(const char[],PetscErrorCode (*)(Characteristic)); 44 45 #endif /* PETSCCHARACTERISTICS_H */ 46