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