xref: /petsc/include/petscdmadaptor.h (revision 87497f523770ea28bdc907071c6e8146b51bca00)
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