Actual source code: dmforestimpl.h
1: #ifndef _FORESTIMPL_H
2: #define _FORESTIMPL_H
4: #include <petscmat.h>
5: #include <petscdmforest.h>
6: #include <petscbt.h>
7: #include <petsc/private/dmimpl.h>
9: typedef struct {
10: PetscInt refct;
11: void *data;
12: PetscErrorCode (*clearadaptivityforest)(DM);
13: PetscErrorCode (*getadaptivitysuccess)(DM, PetscBool *);
14: PetscErrorCode (*transfervec)(DM, Vec, DM, Vec, PetscBool, PetscReal);
15: PetscErrorCode (*transfervecfrombase)(DM, Vec, Vec);
16: PetscErrorCode (*createcellchart)(DM, PetscInt *, PetscInt *);
17: PetscErrorCode (*createcellsf)(DM, PetscSF *);
18: PetscErrorCode (*destroy)(DM);
19: PetscErrorCode (*ftemplate)(DM, DM);
20: PetscBool computeAdaptSF;
21: PetscErrorCode (*mapcoordinates)(DM, PetscInt, PetscInt, const PetscReal[], PetscReal[], void *);
22: void *mapcoordinatesctx;
23: DMForestTopology topology;
24: DM base;
25: DM adapt;
26: DMAdaptFlag adaptPurpose;
27: PetscInt adjDim;
28: PetscInt overlap;
29: PetscInt minRefinement;
30: PetscInt maxRefinement;
31: PetscInt initRefinement;
32: PetscInt cStart;
33: PetscInt cEnd;
34: PetscSF cellSF;
35: PetscSF preCoarseToFine;
36: PetscSF coarseToPreFine;
37: DMLabel adaptLabel;
38: DMForestAdaptivityStrategy adaptStrategy;
39: PetscInt gradeFactor;
40: PetscReal *cellWeights;
41: PetscCopyMode cellWeightsCopyMode;
42: PetscReal weightsFactor;
43: PetscReal weightCapacity;
44: } DM_Forest;
46: PETSC_EXTERN PetscErrorCode DMCreate_Forest(DM);
47: PETSC_EXTERN PetscErrorCode DMClone_Forest(DM, DM *);
48: PETSC_EXTERN PetscErrorCode DMSetFromOptions_Forest(DM, PetscOptionItems *);
49: PETSC_INTERN PetscErrorCode DMAdaptLabel_Forest(DM, Vec, DMLabel, DMLabel, DM *);
51: #endif /* _FORESTIMPL_H */