12764a2aaSMatthew G. Knepley /* 22764a2aaSMatthew G. Knepley Objects which encapsulate discretizations+continuum residuals 32764a2aaSMatthew G. Knepley */ 42764a2aaSMatthew G. Knepley #if !defined(__PETSCDS_H) 52764a2aaSMatthew G. Knepley #define __PETSCDS_H 62764a2aaSMatthew G. Knepley #include <petscfe.h> 72764a2aaSMatthew G. Knepley #include <petscfv.h> 82764a2aaSMatthew G. Knepley #include <petscdstypes.h> 92764a2aaSMatthew G. Knepley 102764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSInitializePackage(void); 112764a2aaSMatthew G. Knepley 122764a2aaSMatthew G. Knepley PETSC_EXTERN PetscClassId PETSCDS_CLASSID; 132764a2aaSMatthew G. Knepley 142764a2aaSMatthew G. Knepley /*J 152764a2aaSMatthew G. Knepley PetscDSType - String with the name of a PETSc discrete system 162764a2aaSMatthew G. Knepley 172764a2aaSMatthew G. Knepley Level: beginner 182764a2aaSMatthew G. Knepley 192764a2aaSMatthew G. Knepley .seealso: PetscDSSetType(), PetscDS 202764a2aaSMatthew G. Knepley J*/ 212764a2aaSMatthew G. Knepley typedef const char *PetscDSType; 222764a2aaSMatthew G. Knepley #define PETSCDSBASIC "basic" 232764a2aaSMatthew G. Knepley 24194d53e6SMatthew G. Knepley typedef void (*PetscPointFunc)(PetscInt, PetscInt, 25194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 26194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 27194d53e6SMatthew G. Knepley PetscReal, const PetscReal[], PetscScalar[]); 28194d53e6SMatthew G. Knepley typedef void (*PetscBdPointFunc)(PetscInt, PetscInt, 29194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 30194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 31194d53e6SMatthew G. Knepley PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]); 32*5db36cf9SMatthew G. Knepley typedef void (*PetscRiemannFunc)(PetscInt, PetscInt, const PetscReal[], const PetscReal[], const PetscScalar[], const PetscScalar[], PetscScalar[], void *); 33194d53e6SMatthew G. Knepley 34194d53e6SMatthew G. Knepley 352764a2aaSMatthew G. Knepley PETSC_EXTERN PetscFunctionList PetscDSList; 362764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSCreate(MPI_Comm, PetscDS *); 372764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSDestroy(PetscDS *); 382764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetType(PetscDS, PetscDSType); 392764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetType(PetscDS, PetscDSType *); 402764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetUp(PetscDS); 412764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetFromOptions(PetscDS); 422764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSViewFromOptions(PetscDS,const char[],const char[]); 432764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSView(PetscDS,PetscViewer); 442764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSRegister(const char [], PetscErrorCode (*)(PetscDS)); 452764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSRegisterDestroy(void); 462764a2aaSMatthew G. Knepley 472764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetSpatialDimension(PetscDS, PetscInt *); 482764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetNumFields(PetscDS, PetscInt *); 492764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetTotalDimension(PetscDS, PetscInt *); 502764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetTotalBdDimension(PetscDS, PetscInt *); 512764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetTotalComponents(PetscDS, PetscInt *); 522764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetFieldOffset(PetscDS, PetscInt, PetscInt *); 532764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdFieldOffset(PetscDS, PetscInt, PetscInt *); 546ce16762SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetComponentOffset(PetscDS, PetscInt, PetscInt *); 55194d53e6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetComponentOffsets(PetscDS, PetscInt *[]); 5639b9c202SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetComponentBdOffsets(PetscDS, PetscInt *[]); 57194d53e6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetComponentDerivativeOffsets(PetscDS, PetscInt *[]); 5839b9c202SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetComponentBdDerivativeOffsets(PetscDS, PetscInt *[]); 592764a2aaSMatthew G. Knepley 602764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetDiscretization(PetscDS, PetscInt, PetscObject *); 612764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetDiscretization(PetscDS, PetscInt, PetscObject); 622764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSAddDiscretization(PetscDS, PetscObject); 632764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdDiscretization(PetscDS, PetscInt, PetscObject *); 642764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetBdDiscretization(PetscDS, PetscInt, PetscObject); 652764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSAddBdDiscretization(PetscDS, PetscObject); 66249df284SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetImplicit(PetscDS, PetscInt, PetscBool*); 67249df284SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetImplicit(PetscDS, PetscInt, PetscBool); 68a6cbbb48SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetAdjacency(PetscDS, PetscInt, PetscBool*, PetscBool*); 69a6cbbb48SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetAdjacency(PetscDS, PetscInt, PetscBool, PetscBool); 70194d53e6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetObjective(PetscDS, PetscInt, 71194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 72194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 73194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 74194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 75194d53e6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetObjective(PetscDS, PetscInt, 76194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 77194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 78194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 79194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 802764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetResidual(PetscDS, PetscInt, 81194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 82194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 83194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 84194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 85194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 86194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 87194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 88194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 892764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetResidual(PetscDS, PetscInt, 90194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 91194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 92194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 93194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 94194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 95194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 96194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 97194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 982764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetJacobian(PetscDS, PetscInt, PetscInt, 99194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 100194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 101194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 102194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 103194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 104194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 105194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 106194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 107194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 108194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 109194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 110194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 111194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 112194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 113194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 114194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 1152764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetJacobian(PetscDS, PetscInt, PetscInt, 116194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 117194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 118194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 119194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 120194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 121194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 122194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 123194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 124194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 125194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 126194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 127194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 128194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 129194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 130194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 131194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 1320c2f2876SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetRiemannSolver(PetscDS, PetscInt, 133*5db36cf9SMatthew G. Knepley void (**)(PetscInt, PetscInt, const PetscReal[], const PetscReal[], const PetscScalar[], const PetscScalar[], PetscScalar[], void *)); 1340c2f2876SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetRiemannSolver(PetscDS, PetscInt, 135*5db36cf9SMatthew G. Knepley void (*)(PetscInt, PetscInt, const PetscReal[], const PetscReal[], const PetscScalar[], const PetscScalar[], PetscScalar[], void *)); 1360c2f2876SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetContext(PetscDS, PetscInt, void **); 1370c2f2876SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetContext(PetscDS, PetscInt, void *); 1382764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdResidual(PetscDS, PetscInt, 139194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 140194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 141194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 142194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 143194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 144194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 145194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 146194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[])); 1472764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetBdResidual(PetscDS, PetscInt, 148194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 149194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 150194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 151194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 152194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 153194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 154194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 155194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[])); 1562764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdJacobian(PetscDS, PetscInt, PetscInt, 157194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 158194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 159194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 160194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 161194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 162194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 163194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 164194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 165194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 166194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 167194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 168194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 169194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 170194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 171194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 172194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[])); 1732764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetBdJacobian(PetscDS, PetscInt, PetscInt, 174194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 175194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 176194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 177194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 178194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 179194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 180194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 181194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 182194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 183194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 184194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 185194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 186194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 187194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 188194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 189194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[])); 1902764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetTabulation(PetscDS, PetscReal ***, PetscReal ***); 1912764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdTabulation(PetscDS, PetscReal ***, PetscReal ***); 1922764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetEvaluationArrays(PetscDS, PetscScalar **, PetscScalar **, PetscScalar **); 1932764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetWeakFormArrays(PetscDS, PetscScalar **, PetscScalar **, PetscScalar **, PetscScalar **, PetscScalar **, PetscScalar **); 1942764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetRefCoordArrays(PetscDS, PetscReal **, PetscScalar **); 1952764a2aaSMatthew G. Knepley 1962764a2aaSMatthew G. Knepley #endif 197