1 /* 2 Objects which encapsulate mesh adaptation operation 3 */ 4 #if !defined(PETSCDMADAPTOR_H) 5 #define PETSCDMADAPTOR_H 6 7 #include <petscdm.h> 8 #include <petscconvest.h> 9 10 /* SUBMANSEC = DM */ 11 12 /*S 13 DMAdaptor - The adaptor constructs a DMLabel or metric Vec that can be used to modify the DM. 14 15 Level: developer 16 17 .seealso: `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 34 #endif 35