1 #if !defined(__PETSCDMSWARM_H) 2 #define __PETSCDMSWARM_H 3 4 #include <petscdm.h> 5 6 PETSC_EXTERN PetscErrorCode DMSwarmCreateGlobalVectorFromField(DM dm,const char fieldname[],Vec *vec); 7 PETSC_EXTERN PetscErrorCode DMSwarmDestroyGlobalVectorFromField(DM dm,const char fieldname[],Vec *vec); 8 9 PETSC_EXTERN PetscErrorCode DMSwarmInitializeFieldRegister(DM dm); 10 PETSC_EXTERN PetscErrorCode DMSwarmFinalizeFieldRegister(DM dm); 11 PETSC_EXTERN PetscErrorCode DMSwarmSetLocalSizes(DM dm,PetscInt nlocal,PetscInt buffer); 12 PETSC_EXTERN PetscErrorCode DMSwarmRegisterPetscDatatypeField(DM dm,const char fieldname[],PetscInt blocksize,PetscDataType type); 13 PETSC_EXTERN PetscErrorCode DMSwarmRegisterUserStructField(DM dm,const char fieldname[],size_t size); 14 PETSC_EXTERN PetscErrorCode DMSwarmRegisterUserDatatypeField(DM dm,const char fieldname[],size_t size); 15 PETSC_EXTERN PetscErrorCode DMSwarmGetField(DM dm,const char fieldname[],PetscInt *blocksize,PetscDataType *type,void **data); 16 PETSC_EXTERN PetscErrorCode DMSwarmRestoreField(DM dm,const char fieldname[],PetscInt *blocksize,PetscDataType *type,void **data); 17 18 PETSC_EXTERN PetscErrorCode DMSwarmVectorDefineField(DM dm,const char fieldname[]); 19 20 PETSC_EXTERN PetscErrorCode DMSwarmAddPoint(DM dm); 21 PETSC_EXTERN PetscErrorCode DMSwarmAddNPoints(DM dm,PetscInt npoints); 22 PETSC_EXTERN PetscErrorCode DMSwarmRemovePoint(DM dm); 23 PETSC_EXTERN PetscErrorCode DMSwarmRemovePointAtIndex(DM dm,PetscInt idx); 24 25 PETSC_EXTERN PetscErrorCode DMSwarmGetLocalSize(DM dm,PetscInt *nlocal); 26 PETSC_EXTERN PetscErrorCode DMSwarmGetSize(DM dm,PetscInt *n); 27 PETSC_EXTERN PetscErrorCode DMSwarmMigrate(DM dm,PetscBool remove_sent_points); 28 29 PETSC_EXTERN PetscErrorCode DMSwarmCollectViewCreate(DM dm); 30 PETSC_EXTERN PetscErrorCode DMSwarmCollectViewDestroy(DM dm); 31 PETSC_EXTERN PetscErrorCode DMSwarmSetCellDM(DM dm,DM dmcell); 32 PETSC_EXTERN PetscErrorCode DMSwarmGetCellDM(DM dm,DM *dmcell); 33 34 #endif 35 36