xref: /petsc/include/petscdmadaptor.h (revision bfe80ac4a46d58cb7760074b25f5e81b2f541d8a)
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 /* SUBMANSEC = DM */
11 
12 PETSC_EXTERN PetscClassId DMADAPTOR_CLASSID;
13 
14 /*J
15    DMAdaptorType - String with the name of a PETSc DMAdaptor type
16 
17    Level: beginner
18 
19    Note:
20    [](dm_adaptor_table) for a table of available matrix types
21 
22 .seealso: [](dm_adaptor_table), [](ch_unstructured), `DMAdaptorCreate()`, `DMAdaptor`, `DMAdaptorRegister()`
23 J*/
24 typedef const char *DMAdaptorType;
25 #define DMADAPTORGRADIENT "gradient"
26 #define DMADAPTORFLUX     "flux"
27 
28 PETSC_EXTERN PetscFunctionList DMAdaptorList;
29 PETSC_EXTERN PetscFunctionList DMAdaptorMonitorList;
30 PETSC_EXTERN PetscFunctionList DMAdaptorMonitorCreateList;
31 PETSC_EXTERN PetscFunctionList DMAdaptorMonitorDestroyList;
32 
33 PETSC_EXTERN PetscErrorCode DMAdaptorCreate(MPI_Comm, DMAdaptor *);
34 PETSC_EXTERN PetscErrorCode DMAdaptorSetType(DMAdaptor, DMAdaptorType);
35 PETSC_EXTERN PetscErrorCode DMAdaptorGetType(DMAdaptor, DMAdaptorType *);
36 PETSC_EXTERN PetscErrorCode DMAdaptorRegister(const char[], PetscErrorCode (*)(DMAdaptor));
37 PETSC_EXTERN PetscErrorCode DMAdaptorRegisterAll(void);
38 PETSC_EXTERN PetscErrorCode DMAdaptorRegisterDestroy(void);
39 PETSC_EXTERN PetscErrorCode DMAdaptorSetOptionsPrefix(DMAdaptor, const char[]);
40 PETSC_EXTERN PetscErrorCode DMAdaptorSetFromOptions(DMAdaptor);
41 PETSC_EXTERN PetscErrorCode DMAdaptorSetUp(DMAdaptor);
42 PETSC_EXTERN PetscErrorCode DMAdaptorView(DMAdaptor, PetscViewer);
43 PETSC_EXTERN PetscErrorCode DMAdaptorDestroy(DMAdaptor *);
44 PETSC_EXTERN PetscErrorCode DMAdaptorGetSolver(DMAdaptor, SNES *);
45 PETSC_EXTERN PetscErrorCode DMAdaptorSetSolver(DMAdaptor, SNES);
46 PETSC_EXTERN PetscErrorCode DMAdaptorGetSequenceLength(DMAdaptor, PetscInt *);
47 PETSC_EXTERN PetscErrorCode DMAdaptorSetSequenceLength(DMAdaptor, PetscInt);
48 PETSC_EXTERN PetscErrorCode DMAdaptorGetTransferFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM, Vec, DM, Vec, void *));
49 PETSC_EXTERN PetscErrorCode DMAdaptorSetTransferFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM, Vec, DM, Vec, void *));
50 PETSC_EXTERN PetscErrorCode DMAdaptorGetMixedSetupFunction(DMAdaptor, PetscErrorCode (**)(DMAdaptor, DM));
51 PETSC_EXTERN PetscErrorCode DMAdaptorSetMixedSetupFunction(DMAdaptor, PetscErrorCode (*)(DMAdaptor, DM));
52 PETSC_EXTERN PetscErrorCode DMAdaptorAdapt(DMAdaptor, Vec, DMAdaptationStrategy, DM *, Vec *);
53 PETSC_EXTERN PetscErrorCode DMAdaptorGetCriterion(DMAdaptor, DMAdaptationCriterion *);
54 PETSC_EXTERN PetscErrorCode DMAdaptorSetCriterion(DMAdaptor, DMAdaptationCriterion);
55 
56 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorRegister(const char[], PetscViewerType, PetscViewerFormat, PetscErrorCode (*)(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *), PetscErrorCode (*)(PetscViewer, PetscViewerFormat, void *, PetscViewerAndFormat **), PetscErrorCode (*)(PetscViewerAndFormat **));
57 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorRegisterAll(void);
58 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorRegisterDestroy(void);
59 PETSC_EXTERN PetscErrorCode DMAdaptorMonitor(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec);
60 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorSet(DMAdaptor, PetscErrorCode (*)(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, void *), void *, PetscCtxDestroyFn *);
61 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorSetFromOptions(DMAdaptor, const char[], const char[], void *);
62 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorCancel(DMAdaptor);
63 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorSize(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *);
64 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorError(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *);
65 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorErrorDraw(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *);
66 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorErrorDrawLGCreate(PetscViewer, PetscViewerFormat, void *, PetscViewerAndFormat **);
67 PETSC_EXTERN PetscErrorCode DMAdaptorMonitorErrorDrawLG(DMAdaptor, PetscInt, DM, DM, PetscInt, PetscReal[], Vec, PetscViewerAndFormat *);
68