xref: /petsc/include/petsccharacteristic.h (revision 63f3c55c12ae2f190c391f6df6c540efe018a44a)
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