PetscDataType#
Used for handling different basic data types.
Synopsis#
typedef enum {
  PETSC_DATATYPE_UNKNOWN = 0,
  PETSC_DOUBLE           = 1,
  PETSC_COMPLEX          = 2,
  PETSC_LONG             = 3,
  PETSC_SHORT            = 4,
  PETSC_FLOAT            = 5,
  PETSC_CHAR             = 6,
  PETSC_BIT_LOGICAL      = 7,
  PETSC_ENUM             = 8,
  PETSC_BOOL             = 9,
  PETSC___FLOAT128       = 10,
  PETSC_OBJECT           = 11,
  PETSC_FUNCTION         = 12,
  PETSC_STRING           = 13,
  PETSC___FP16           = 14,
  PETSC_STRUCT           = 15,
  PETSC_INT              = 16,
  PETSC_INT64            = 17,
  PETSC_COUNT            = 18,
  PETSC_INT32            = 19,
} PetscDataType;
Notes#
Use of this should be avoided if one can directly use MPI_Datatype instead.
PETSC_INT is the datatype for a PetscInt, regardless of whether it is 4 or 8 bytes.
PETSC_REAL, PETSC_COMPLEX and PETSC_SCALAR are the datatypes for PetscReal, PetscComplex and PetscScalar, regardless of their sizes.
Developer Notes#
It would be nice if we could always just use MPI Datatypes, why can we not?
If you change any values in PetscDatatype make sure you update their usage in
share/petsc/matlab/PetscBagRead.m and share/petsc/matlab/@PetscOpenSocket/read/write.m
TODO#
Remove use of improper PETSC_ENUM
See Also#
PetscBinaryRead(), PetscBinaryWrite(), PetscDataTypeToMPIDataType(),
PetscDataTypeGetSize()
Level#
beginner
Location#
Examples#
src/dm/impls/swarm/tutorials/ex1f90.F90
src/dm/field/tutorials/ex1.c
src/sys/tutorials/ex5.c
src/dm/impls/swarm/tutorials/ex1.c
Examples#
Examples#
Examples#
Examples#
src/ts/tutorials/ex30.c
src/vec/vec/tutorials/ex6.c
src/snes/tutorials/ex63.c
src/dm/tutorials/swarm_ex3.c
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages