1 /* 2 Objects which encapsulate mesh adaptation operation 3 */ 4 #pragma once 5 6 #include <petscdm.h> 7 #include <petscconvest.h> 8 9 /* SUBMANSEC = DM */ 10 11 /*S 12 DMAdaptor - An object that constructs a `DMLabel` or metric `Vec` that can be used to modify the `DM` based on error estimators or other criteria 13 14 Level: developer 15 16 .seealso: `DM`, `DMAdaptorCreate()`, `DMAdaptorSetSolver()`, `DMAdaptorGetSolver()`, `DMAdaptorSetSequenceLength()`, `DMAdaptorGetSequenceLength()`, `DMAdaptorSetFromOptions()`, 17 `DMAdaptorSetUp()`, `DMAdaptorAdapt()`, `DMAdaptorDestroy()`, `DMAdaptorGetTransferFunction()`, `PetscConvEstCreate()`, `PetscConvEstDestroy()` 18 S*/ 19 typedef struct _p_DMAdaptor *DMAdaptor; 20 21 PETSC_EXTERN PetscErrorCode DMAdaptorCreate(MPI_Comm, DMAdaptor *); 22 PETSC_EXTERN PetscErrorCode DMAdaptorDestroy(DMAdaptor *); 23 PETSC_EXTERN PetscErrorCode DMAdaptorView(DMAdaptor, PetscViewer); 24 PETSC_EXTERN PetscErrorCode DMAdaptorSetFromOptions(DMAdaptor); 25 PETSC_EXTERN PetscErrorCode DMAdaptorGetSolver(DMAdaptor, SNES *); 26 PETSC_EXTERN PetscErrorCode DMAdaptorSetSolver(DMAdaptor, SNES); 27 PETSC_EXTERN PetscErrorCode DMAdaptorGetSequenceLength(DMAdaptor, PetscInt *); 28 PETSC_EXTERN PetscErrorCode DMAdaptorSetSequenceLength(DMAdaptor, PetscInt); 29 PETSC_EXTERN PetscErrorCode DMAdaptorSetUp(DMAdaptor); 30 PETSC_EXTERN PetscErrorCode DMAdaptorGetTransferFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM, Vec, DM, Vec, void *)); 31 PETSC_EXTERN PetscErrorCode DMAdaptorSetTransferFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM, Vec, DM, Vec, void *)); 32 PETSC_EXTERN PetscErrorCode DMAdaptorAdapt(DMAdaptor, Vec, DMAdaptationStrategy, DM *, Vec *); 33