xref: /petsc/include/petscdmswarm.h (revision e2d107db826654ae5ceb41f42932c0068b201924)
13d5c7219SDave May #if !defined(__PETSCDMSWARM_H)
23d5c7219SDave May #define __PETSCDMSWARM_H
33d5c7219SDave May 
43d5c7219SDave May #include <petscdm.h>
53d5c7219SDave May 
6480eef7bSDave May typedef enum {
7480eef7bSDave May   DMSWARM_BASIC=0,
8480eef7bSDave May   DMSWARM_PIC
9480eef7bSDave May } DMSwarmType;
10480eef7bSDave May 
11480eef7bSDave May typedef enum {
12480eef7bSDave May   DMSWARM_MIGRATE_BASIC=0,
13853ec3c6SDave May   DMSWARM_MIGRATE_DMCELLNSCATTER,
14853ec3c6SDave May   DMSWARM_MIGRATE_DMCELLEXACT,
15853ec3c6SDave May   DMSWARM_MIGRATE_USER
16480eef7bSDave May } DMSwarmMigrateType;
17480eef7bSDave May 
18480eef7bSDave May typedef enum {
19480eef7bSDave May   DMSWARM_COLLECT_BASIC=0,
20480eef7bSDave May   DMSWARM_COLLECT_DMDABOUNDINGBOX,
21853ec3c6SDave May   DMSWARM_COLLECT_GENERAL,
22853ec3c6SDave May   DMSWARM_COLLECT_USER
23480eef7bSDave May } DMSwarmCollectType;
24480eef7bSDave May 
25*e2d107dbSDave May typedef enum {
26*e2d107dbSDave May   DMSWARMPIC_LAYOUT_REGULAR=0,
27*e2d107dbSDave May   DMSWARMPIC_LAYOUT_GAUSS,
28*e2d107dbSDave May   DMSWARMPIC_LAYOUT_SUBDIVISION,
29*e2d107dbSDave May } DMSwarmPICLayoutType;
30*e2d107dbSDave May 
31853ec3c6SDave May PETSC_EXTERN const char* DMSwarmTypeNames[];
32853ec3c6SDave May PETSC_EXTERN const char* DMSwarmMigrateTypeNames[];
33853ec3c6SDave May PETSC_EXTERN const char* DMSwarmCollectTypeNames[];
34853ec3c6SDave May 
35853ec3c6SDave May PETSC_EXTERN const char DMSwarmField_pid[];
36853ec3c6SDave May PETSC_EXTERN const char DMSwarmField_rank[];
37853ec3c6SDave May PETSC_EXTERN const char DMSwarmPICField_coor[];
38*e2d107dbSDave May PETSC_EXTERN const char DMSwarmPICField_cellid[];
39853ec3c6SDave May 
40934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmCreateGlobalVectorFromField(DM,const char[],Vec*);
41934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmDestroyGlobalVectorFromField(DM,const char[],Vec*);
42fb1bcc12SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmCreateLocalVectorFromField(DM,const char[],Vec*);
43fb1bcc12SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmDestroyLocalVectorFromField(DM,const char[],Vec*);
44853ec3c6SDave May 
45934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmInitializeFieldRegister(DM);
46934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmFinalizeFieldRegister(DM);
47934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmSetLocalSizes(DM,PetscInt,PetscInt);
48934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmRegisterPetscDatatypeField(DM,const char[],PetscInt,PetscDataType);
49934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmRegisterUserStructField(DM,const char[],size_t);
50934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmRegisterUserDatatypeField(DM,const char[],size_t,PetscInt);
51934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmGetField(DM,const char[],PetscInt*,PetscDataType*,void**);
52934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmRestoreField(DM,const char[],PetscInt*,PetscDataType*,void**);
53934315b8SMatthew G. Knepley 
54934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmVectorDefineField(DM,const char[]);
55934315b8SMatthew G. Knepley 
56934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmAddPoint(DM);
57934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmAddNPoints(DM,PetscInt);
58934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmRemovePoint(DM);
59934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmRemovePointAtIndex(DM,PetscInt);
60934315b8SMatthew G. Knepley 
61934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmGetLocalSize(DM,PetscInt*);
62934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmGetSize(DM,PetscInt*);
63934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmMigrate(DM,PetscBool);
64934315b8SMatthew G. Knepley 
65934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmCollectViewCreate(DM);
66934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmCollectViewDestroy(DM);
67934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmSetCellDM(DM,DM);
68934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmGetCellDM(DM,DM*);
69934315b8SMatthew G. Knepley 
70934315b8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode DMSwarmSetType(DM,DMSwarmType);
71934315b8SMatthew G. Knepley 
723d5c7219SDave May #endif
733d5c7219SDave May 
74