Actual source code: petsccharacteristic.h

      1: /*
      2:    Defines the interface functions for the method of characteristics solvers
      3: */
      4: #pragma once

      6: #include <petscvec.h>
      7: #include <petscdmtypes.h>

      9: /* MANSEC = TS */
     10: /* SUBMANSEC = Characteristic */

     12: PETSC_EXTERN PetscErrorCode CharacteristicInitializePackage(void);
     13: PETSC_EXTERN PetscErrorCode CharacteristicFinalizePackage(void);

     15: /*S
     16:      Characteristic - Abstract PETSc object that manages method of characteristics solves

     18:    Level: beginner

     20: .seealso: `CharacteristicCreate()`, `CharacteristicSetType()`, `CharacteristicType`, `SNES`, `TS`, `PC`, `KSP`
     21: S*/
     22: typedef struct _p_Characteristic *Characteristic;

     24: /*J
     25:     CharacteristicType - String with the name of a characteristics method.

     27:    Level: beginner

     29: .seealso: `CharacteristicSetType()`, `Characteristic`
     30: J*/
     31: typedef const char *CharacteristicType;
     32: #define CHARACTERISTICDA "da"

     34: PETSC_EXTERN PetscErrorCode CharacteristicCreate(MPI_Comm, Characteristic *);
     35: PETSC_EXTERN PetscErrorCode CharacteristicSetType(Characteristic, CharacteristicType);
     36: PETSC_EXTERN PetscErrorCode CharacteristicSetUp(Characteristic);
     37: PETSC_EXTERN PetscErrorCode CharacteristicSetVelocityInterpolation(Characteristic, DM, Vec, Vec, PetscInt, PetscInt[], PetscErrorCode (*)(Vec, PetscReal[], PetscInt, PetscInt[], PetscScalar[], void *), void *);
     38: PETSC_EXTERN PetscErrorCode CharacteristicSetVelocityInterpolationLocal(Characteristic, DM, Vec, Vec, PetscInt, PetscInt[], PetscErrorCode (*)(void *, PetscReal[], PetscInt, PetscInt[], PetscScalar[], void *), void *);
     39: PETSC_EXTERN PetscErrorCode CharacteristicSetFieldInterpolation(Characteristic, DM, Vec, PetscInt, PetscInt[], PetscErrorCode (*)(Vec, PetscReal[], PetscInt, PetscInt[], PetscScalar[], void *), void *);
     40: PETSC_EXTERN PetscErrorCode CharacteristicSetFieldInterpolationLocal(Characteristic, DM, Vec, PetscInt, PetscInt[], PetscErrorCode (*)(void *, PetscReal[], PetscInt, PetscInt[], PetscScalar[], void *), void *);
     41: PETSC_EXTERN PetscErrorCode CharacteristicSolve(Characteristic, PetscReal, Vec);
     42: PETSC_EXTERN PetscErrorCode CharacteristicDestroy(Characteristic *);

     44: PETSC_EXTERN PetscFunctionList CharacteristicList;

     46: PETSC_EXTERN PetscErrorCode CharacteristicRegister(const char[], PetscErrorCode (*)(Characteristic));