1 2 #if !defined(_SWARMIMPL_H) 3 #define _SWARMIMPL_H 4 5 #include <petscvec.h> /*I "petscvec.h" I*/ 6 #include <petscmat.h> /*I "petscmat.h" I*/ 7 #include <petscdmswarm.h> /*I "petscdmswarm.h" I*/ 8 #include <petsc/private/dmimpl.h> 9 10 typedef struct _p_DataField* DataField; 11 typedef struct _p_DataBucket* DataBucket; 12 13 typedef struct { 14 DataBucket db; 15 16 PetscBool field_registration_initialized; 17 PetscBool field_registration_finalized; 18 /* DMSwarmProjectMethod *swarm_project;*/ /* swarm, geometry, result */ 19 20 /* PetscInt overlap; */ 21 /* PetscErrorCode (*update_overlap)(void); */ 22 23 char vec_field_name[PETSC_MAX_PATH_LEN]; 24 PetscBool vec_field_set; 25 PetscInt vec_field_bs,vec_field_nlocal; 26 27 PetscBool issetup; 28 DMSwarmType swarm_type; 29 DMSwarmMigrateType migrate_type; 30 DMSwarmCollectType collect_type; 31 32 DM dmcell; 33 34 PetscBool migrate_error_on_missing_point; 35 36 PetscBool collect_view_active; 37 PetscInt collect_view_reset_nlocal; 38 39 } DM_Swarm; 40 41 PETSC_INTERN PetscErrorCode DMSwarmMigrate_Push_Basic(DM, PetscBool); 42 PETSC_INTERN PetscErrorCode DMSwarmMigrate_CellDMScatter(DM,PetscBool); 43 PETSC_INTERN PetscErrorCode DMSwarmMigrate_CellDMExact(DM,PetscBool); 44 45 #endif /* _SWARMIMPL_H */ 46