1 /* 2 Objects which encapsulate mesh adaptation operation 3 */ 4 #pragma once 5 6 #include <petscdm.h> 7 #include <petscsnestypes.h> 8 #include <petscdmadaptortypes.h> 9 10 /* SUBMANSEC = DM */ 11 12 PETSC_EXTERN PetscClassId DMADAPTOR_CLASSID; 13 14 /*J 15 DMAdaptorType - String with the name of a PETSc DMAdaptor type 16 17 Level: beginner 18 19 Note: 20 [](dm_adaptor_table) for a table of available matrix types 21 22 .seealso: [](dm_adaptor_table), [](ch_unstructured), `DMAdaptorCreate()`, `DMAdaptor`, `DMAdaptorRegister()` 23 J*/ 24 typedef const char *DMAdaptorType; 25 #define DMADAPTORGRADIENT "gradient" 26 #define DMADAPTORFLUX "flux" 27 28 PETSC_EXTERN PetscFunctionList DMAdaptorList; 29 PETSC_EXTERN PetscFunctionList DMAdaptorMonitorList; 30 PETSC_EXTERN PetscFunctionList DMAdaptorMonitorCreateList; 31 PETSC_EXTERN PetscFunctionList DMAdaptorMonitorDestroyList; 32 33 PETSC_EXTERN PetscErrorCode DMAdaptorCreate(MPI_Comm, DMAdaptor *); 34 PETSC_EXTERN PetscErrorCode DMAdaptorSetType(DMAdaptor, DMAdaptorType); 35 PETSC_EXTERN PetscErrorCode DMAdaptorGetType(DMAdaptor, DMAdaptorType *); 36 PETSC_EXTERN PetscErrorCode DMAdaptorRegister(const char[], PetscErrorCode (*)(DMAdaptor)); 37 PETSC_EXTERN PetscErrorCode DMAdaptorRegisterAll(void); 38 PETSC_EXTERN PetscErrorCode DMAdaptorRegisterDestroy(void); 39 PETSC_EXTERN PetscErrorCode DMAdaptorSetOptionsPrefix(DMAdaptor, const char[]); 40 PETSC_EXTERN PetscErrorCode DMAdaptorSetFromOptions(DMAdaptor); 41 PETSC_EXTERN PetscErrorCode DMAdaptorSetUp(DMAdaptor); 42 PETSC_EXTERN PetscErrorCode DMAdaptorView(DMAdaptor, PetscViewer); 43 PETSC_EXTERN PetscErrorCode DMAdaptorDestroy(DMAdaptor *); 44 PETSC_EXTERN PetscErrorCode DMAdaptorGetSolver(DMAdaptor, SNES *); 45 PETSC_EXTERN PetscErrorCode DMAdaptorSetSolver(DMAdaptor, SNES); 46 PETSC_EXTERN PetscErrorCode DMAdaptorGetSequenceLength(DMAdaptor, PetscInt *); 47 PETSC_EXTERN PetscErrorCode DMAdaptorSetSequenceLength(DMAdaptor, PetscInt); 48 PETSC_EXTERN PetscErrorCode DMAdaptorGetTransferFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM, Vec, DM, Vec, void *)); 49 PETSC_EXTERN PetscErrorCode DMAdaptorSetTransferFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM, Vec, DM, Vec, void *)); 50 PETSC_EXTERN PetscErrorCode DMAdaptorGetMixedSetupFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM)); 51 PETSC_EXTERN PetscErrorCode DMAdaptorSetMixedSetupFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM)); 52 PETSC_EXTERN PetscErrorCode DMAdaptorAdapt(DMAdaptor, Vec, DMAdaptationStrategy, DM *, Vec *); 53 PETSC_EXTERN PetscErrorCode DMAdaptorGetCriterion(DMAdaptor, DMAdaptationCriterion *); 54 PETSC_EXTERN PetscErrorCode DMAdaptorSetCriterion(DMAdaptor, DMAdaptationCriterion); 55 56 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorRegister(const char[], PetscViewerType, PetscViewerFormat, PetscErrorCode (*)(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *), PetscErrorCode (*)(PetscViewer, PetscViewerFormat, void *, PetscViewerAndFormat **), PetscErrorCode (*)(PetscViewerAndFormat **)); 57 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorRegisterAll(void); 58 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorRegisterDestroy(void); 59 PETSC_EXTERN PetscErrorCode DMAdaptorMonitor(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec); 60 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorSet(DMAdaptor, PetscErrorCode (*)(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscCtx), PetscCtx, PetscCtxDestroyFn *); 61 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorSetFromOptions(DMAdaptor, const char[], const char[], void *); 62 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorCancel(DMAdaptor); 63 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorSize(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *); 64 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorError(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *); 65 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorErrorDraw(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *); 66 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorErrorDrawLGCreate(PetscViewer, PetscViewerFormat, void *, PetscViewerAndFormat **); 67 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorErrorDrawLG(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *); 68