xref: /petsc/include/petscdmadaptor.h (revision d5b43468fb8780a8feea140ccd6fa3e6a50411cc)
1 /*
2       Objects which encapsulate mesh adaptation operation
3 */
4 #ifndef PETSCDMADAPTOR_H
5 #define PETSCDMADAPTOR_H
6 
7 #include <petscdm.h>
8 #include <petscconvest.h>
9 
10 /* SUBMANSEC = DM */
11 
12 /*S
13   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
14 
15   Level: developer
16 
17 .seealso: `DMAdaptorCreate()`, `DMAdaptorSetSolver()`, `DMAdaptorGetSolver()`, `DMAdaptorSetSequenceLength()`, `DMAdaptorGetSequenceLength()`, `DMAdaptorSetFromOptions()`,
18           `DMAdaptorSetUp()`, `DMAdaptorAdapt()`, `DMAdaptorDestroy()`, `DMAdaptorGetTransferFunction()`, `PetscConvEstCreate()`, `PetscConvEstDestroy()`
19 S*/
20 typedef struct _p_DMAdaptor *DMAdaptor;
21 
22 PETSC_EXTERN PetscErrorCode DMAdaptorCreate(MPI_Comm, DMAdaptor *);
23 PETSC_EXTERN PetscErrorCode DMAdaptorDestroy(DMAdaptor *);
24 PETSC_EXTERN PetscErrorCode DMAdaptorView(DMAdaptor, PetscViewer);
25 PETSC_EXTERN PetscErrorCode DMAdaptorSetFromOptions(DMAdaptor);
26 PETSC_EXTERN PetscErrorCode DMAdaptorGetSolver(DMAdaptor, SNES *);
27 PETSC_EXTERN PetscErrorCode DMAdaptorSetSolver(DMAdaptor, SNES);
28 PETSC_EXTERN PetscErrorCode DMAdaptorGetSequenceLength(DMAdaptor, PetscInt *);
29 PETSC_EXTERN PetscErrorCode DMAdaptorSetSequenceLength(DMAdaptor, PetscInt);
30 PETSC_EXTERN PetscErrorCode DMAdaptorSetUp(DMAdaptor);
31 PETSC_EXTERN PetscErrorCode DMAdaptorGetTransferFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM, Vec, DM, Vec, void *));
32 PETSC_EXTERN PetscErrorCode DMAdaptorSetTransferFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM, Vec, DM, Vec, void *));
33 PETSC_EXTERN PetscErrorCode DMAdaptorAdapt(DMAdaptor, Vec, DMAdaptationStrategy, DM *, Vec *);
34 
35 #endif
36