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 24*194d53e6SMatthew G. Knepley typedef void (*PetscPointFunc)(PetscInt, PetscInt, 25*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 26*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 27*194d53e6SMatthew G. Knepley PetscReal, const PetscReal[], PetscScalar[]); 28*194d53e6SMatthew G. Knepley typedef void (*PetscBdPointFunc)(PetscInt, PetscInt, 29*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 30*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 31*194d53e6SMatthew G. Knepley PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]); 32*194d53e6SMatthew G. Knepley typedef void (*PetscRiemannFunc)(const PetscReal[], const PetscReal[], const PetscScalar[], const PetscScalar[], PetscScalar[], void *); 33*194d53e6SMatthew G. Knepley 34*194d53e6SMatthew 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 *); 55*194d53e6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetComponentOffsets(PetscDS, PetscInt *[]); 56*194d53e6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetComponentDerivativeOffsets(PetscDS, PetscInt *[]); 572764a2aaSMatthew G. Knepley 582764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetDiscretization(PetscDS, PetscInt, PetscObject *); 592764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetDiscretization(PetscDS, PetscInt, PetscObject); 602764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSAddDiscretization(PetscDS, PetscObject); 612764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdDiscretization(PetscDS, PetscInt, PetscObject *); 622764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetBdDiscretization(PetscDS, PetscInt, PetscObject); 632764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSAddBdDiscretization(PetscDS, PetscObject); 64249df284SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetImplicit(PetscDS, PetscInt, PetscBool*); 65249df284SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetImplicit(PetscDS, PetscInt, PetscBool); 66a6cbbb48SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetAdjacency(PetscDS, PetscInt, PetscBool*, PetscBool*); 67a6cbbb48SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetAdjacency(PetscDS, PetscInt, PetscBool, PetscBool); 68*194d53e6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetObjective(PetscDS, PetscInt, 69*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 70*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 71*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 72*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 73*194d53e6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetObjective(PetscDS, PetscInt, 74*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 75*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 76*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 77*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 782764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetResidual(PetscDS, PetscInt, 79*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 80*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 81*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 82*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 83*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 84*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 85*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 86*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 872764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetResidual(PetscDS, PetscInt, 88*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 89*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 90*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 91*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 92*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 93*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 94*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 95*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 962764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetJacobian(PetscDS, PetscInt, PetscInt, 97*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 98*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 99*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 100*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 101*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 102*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 103*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 104*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 105*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 106*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 107*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 108*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 109*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 110*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 111*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 112*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 1132764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetJacobian(PetscDS, PetscInt, PetscInt, 114*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 115*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 116*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 117*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 118*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 119*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 120*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 121*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 122*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 123*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 124*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 125*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[]), 126*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 127*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 128*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 129*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], PetscScalar[])); 1300c2f2876SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetRiemannSolver(PetscDS, PetscInt, 1310c2f2876SMatthew G. Knepley void (**)(const PetscReal[], const PetscReal[], const PetscScalar[], const PetscScalar[], PetscScalar[], void *)); 1320c2f2876SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetRiemannSolver(PetscDS, PetscInt, 1330c2f2876SMatthew G. Knepley void (*)(const PetscReal[], const PetscReal[], const PetscScalar[], const PetscScalar[], PetscScalar[], void *)); 1340c2f2876SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetContext(PetscDS, PetscInt, void **); 1350c2f2876SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetContext(PetscDS, PetscInt, void *); 1362764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdResidual(PetscDS, PetscInt, 137*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 138*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 139*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 140*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 141*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 142*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 143*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 144*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[])); 1452764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetBdResidual(PetscDS, PetscInt, 146*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 147*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 148*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 149*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 150*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 151*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 152*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 153*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[])); 1542764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdJacobian(PetscDS, PetscInt, PetscInt, 155*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 156*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 157*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 158*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 159*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 160*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 161*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 162*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 163*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 164*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 165*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 166*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 167*194d53e6SMatthew G. Knepley void (**)(PetscInt, PetscInt, 168*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 169*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 170*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[])); 1712764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSSetBdJacobian(PetscDS, PetscInt, PetscInt, 172*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 173*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 174*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 175*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 176*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 177*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 178*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 179*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 180*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 181*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 182*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 183*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[]), 184*194d53e6SMatthew G. Knepley void (*)(PetscInt, PetscInt, 185*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 186*194d53e6SMatthew G. Knepley const PetscInt[], const PetscInt[], const PetscScalar[], const PetscScalar[], const PetscScalar[], 187*194d53e6SMatthew G. Knepley const PetscReal, const PetscReal[], const PetscReal[], PetscScalar[])); 1882764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetTabulation(PetscDS, PetscReal ***, PetscReal ***); 1892764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetBdTabulation(PetscDS, PetscReal ***, PetscReal ***); 1902764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetEvaluationArrays(PetscDS, PetscScalar **, PetscScalar **, PetscScalar **); 1912764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetWeakFormArrays(PetscDS, PetscScalar **, PetscScalar **, PetscScalar **, PetscScalar **, PetscScalar **, PetscScalar **); 1922764a2aaSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDSGetRefCoordArrays(PetscDS, PetscReal **, PetscScalar **); 1932764a2aaSMatthew G. Knepley 1942764a2aaSMatthew G. Knepley #endif 195