15675c177SMatthew G. Knepley /* 25675c177SMatthew G. Knepley Objects which encapsulate mesh adaptation operation 35675c177SMatthew G. Knepley */ 426bd1501SBarry Smith #if !defined(PETSCDMADAPTOR_H) 526bd1501SBarry Smith #define PETSCDMADAPTOR_H 6ac09b921SBarry Smith 75675c177SMatthew G. Knepley #include <petscdm.h> 85675c177SMatthew G. Knepley #include <petscconvest.h> 95675c177SMatthew G. Knepley 10ac09b921SBarry Smith /* SUBMANSEC = DM */ 11ac09b921SBarry Smith 125675c177SMatthew G. Knepley /*S 13*87497f52SBarry Smith 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 145675c177SMatthew G. Knepley 155675c177SMatthew G. Knepley Level: developer 165675c177SMatthew G. Knepley 17*87497f52SBarry Smith .seealso: `DMAdaptorCreate()`, `DMAdaptorSetSolver()`, `DMAdaptorGetSolver()`, `DMAdaptorSetSequenceLength()`, `DMAdaptorGetSequenceLength()`, `DMAdaptorSetFromOptions()`, 18*87497f52SBarry Smith `DMAdaptorSetUp()`, `DMAdaptorAdapt()`, `DMAdaptorDestroy()`, `DMAdaptorGetTransferFunction()`, `PetscConvEstCreate()`, `PetscConvEstDestroy()` 195675c177SMatthew G. Knepley S*/ 205675c177SMatthew G. Knepley typedef struct _p_DMAdaptor *DMAdaptor; 215675c177SMatthew G. Knepley 225675c177SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorCreate(MPI_Comm, DMAdaptor *); 235675c177SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorDestroy(DMAdaptor *); 245675c177SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorView(DMAdaptor, PetscViewer); 255675c177SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorSetFromOptions(DMAdaptor); 265675c177SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorGetSolver(DMAdaptor, SNES *); 275675c177SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorSetSolver(DMAdaptor, SNES); 28ad7f8140SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorGetSequenceLength(DMAdaptor, PetscInt *); 29ad7f8140SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorSetSequenceLength(DMAdaptor, PetscInt); 305675c177SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorSetUp(DMAdaptor); 318e21cdf6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorGetTransferFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM, Vec, DM, Vec, void *)); 328e21cdf6SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorSetTransferFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM, Vec, DM, Vec, void *)); 33174e7490SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMAdaptorAdapt(DMAdaptor, Vec, DMAdaptationStrategy, DM *, Vec *); 345675c177SMatthew G. Knepley 355675c177SMatthew G. Knepley #endif 36