xref: /petsc/include/petscdmadaptor.h (revision 3a336bb1c5354aa6a7f04f397c2159a565cb027a)
1 /*
2       Objects which encapsulate mesh adaptation operation
3 */
4 #pragma once
5 
6 #include <petscdm.h>
7 #include <petscsnestypes.h>
8 #include <petscdmadaptortypes.h>
9 
10 PETSC_EXTERN PetscClassId DMADAPTOR_CLASSID;
11 
12 /*J
13    DMAdaptorType - String with the name of a PETSc DMAdaptor type
14 
15    Level: beginner
16 
17    Note:
18    [](dm_adaptor_table) for a table of available matrix types
19 
20 .seealso: [](dm_adaptor_table), [](ch_unstructured), `DMAdaptorCreate()`, `DMAdaptor`, `DMAdaptorRegister()`
21 J*/
22 typedef const char *DMAdaptorType;
23 #define DMADAPTORGRADIENT "gradient"
24 #define DMADAPTORFLUX     "flux"
25 
26 PETSC_EXTERN PetscFunctionList DMAdaptorList;
27 
28 PETSC_EXTERN PetscErrorCode DMAdaptorCreate(MPI_Comm, DMAdaptor *);
29 PETSC_EXTERN PetscErrorCode DMAdaptorSetType(DMAdaptor, DMAdaptorType);
30 PETSC_EXTERN PetscErrorCode DMAdaptorGetType(DMAdaptor, DMAdaptorType *);
31 PETSC_EXTERN PetscErrorCode DMAdaptorRegister(const char[], PetscErrorCode (*)(DMAdaptor));
32 PETSC_EXTERN PetscErrorCode DMAdaptorRegisterAll(void);
33 PETSC_EXTERN PetscErrorCode DMAdaptorRegisterDestroy(void);
34 PETSC_EXTERN PetscErrorCode DMAdaptorSetFromOptions(DMAdaptor);
35 PETSC_EXTERN PetscErrorCode DMAdaptorSetUp(DMAdaptor);
36 PETSC_EXTERN PetscErrorCode DMAdaptorView(DMAdaptor, PetscViewer);
37 PETSC_EXTERN PetscErrorCode DMAdaptorDestroy(DMAdaptor *);
38 PETSC_EXTERN PetscErrorCode DMAdaptorGetSolver(DMAdaptor, SNES *);
39 PETSC_EXTERN PetscErrorCode DMAdaptorSetSolver(DMAdaptor, SNES);
40 PETSC_EXTERN PetscErrorCode DMAdaptorGetSequenceLength(DMAdaptor, PetscInt *);
41 PETSC_EXTERN PetscErrorCode DMAdaptorSetSequenceLength(DMAdaptor, PetscInt);
42 PETSC_EXTERN PetscErrorCode DMAdaptorGetTransferFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM, Vec, DM, Vec, void *));
43 PETSC_EXTERN PetscErrorCode DMAdaptorSetTransferFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM, Vec, DM, Vec, void *));
44 PETSC_EXTERN PetscErrorCode DMAdaptorGetMixedSetupFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM));
45 PETSC_EXTERN PetscErrorCode DMAdaptorSetMixedSetupFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM));
46 PETSC_EXTERN PetscErrorCode DMAdaptorAdapt(DMAdaptor, Vec, DMAdaptationStrategy, DM *, Vec *);
47