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 PETSC_EXTERN PetscClassId DMADAPTOR_CLASSID; 11 12 /*J 13 DMAdaptorType - String with the name of a PETSc DMAdaptor type 14 15 Level: beginner 16 17 Note: 18 [](dm_adaptor_table) for a table of available matrix types 19 20 .seealso: [](dm_adaptor_table), [](ch_unstructured), `DMAdaptorCreate()`, `DMAdaptor`, `DMAdaptorRegister()` 21 J*/ 22 typedef const char *DMAdaptorType; 23 #define DMADAPTORGRADIENT "gradient" 24 #define DMADAPTORFLUX "flux" 25 26 PETSC_EXTERN PetscFunctionList DMAdaptorList; 27 28 PETSC_EXTERN PetscErrorCode DMAdaptorCreate(MPI_Comm, DMAdaptor *); 29 PETSC_EXTERN PetscErrorCode DMAdaptorSetType(DMAdaptor, DMAdaptorType); 30 PETSC_EXTERN PetscErrorCode DMAdaptorGetType(DMAdaptor, DMAdaptorType *); 31 PETSC_EXTERN PetscErrorCode DMAdaptorRegister(const char[], PetscErrorCode (*)(DMAdaptor)); 32 PETSC_EXTERN PetscErrorCode DMAdaptorRegisterAll(void); 33 PETSC_EXTERN PetscErrorCode DMAdaptorRegisterDestroy(void); 34 PETSC_EXTERN PetscErrorCode DMAdaptorSetFromOptions(DMAdaptor); 35 PETSC_EXTERN PetscErrorCode DMAdaptorSetUp(DMAdaptor); 36 PETSC_EXTERN PetscErrorCode DMAdaptorView(DMAdaptor, PetscViewer); 37 PETSC_EXTERN PetscErrorCode DMAdaptorDestroy(DMAdaptor *); 38 PETSC_EXTERN PetscErrorCode DMAdaptorGetSolver(DMAdaptor, SNES *); 39 PETSC_EXTERN PetscErrorCode DMAdaptorSetSolver(DMAdaptor, SNES); 40 PETSC_EXTERN PetscErrorCode DMAdaptorGetSequenceLength(DMAdaptor, PetscInt *); 41 PETSC_EXTERN PetscErrorCode DMAdaptorSetSequenceLength(DMAdaptor, PetscInt); 42 PETSC_EXTERN PetscErrorCode DMAdaptorGetTransferFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM, Vec, DM, Vec, void *)); 43 PETSC_EXTERN PetscErrorCode DMAdaptorSetTransferFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM, Vec, DM, Vec, void *)); 44 PETSC_EXTERN PetscErrorCode DMAdaptorGetMixedSetupFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM)); 45 PETSC_EXTERN PetscErrorCode DMAdaptorSetMixedSetupFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM)); 46 PETSC_EXTERN PetscErrorCode DMAdaptorAdapt(DMAdaptor, Vec, DMAdaptationStrategy, DM *, Vec *); 47