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} PetscDataType;
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.
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: Add PETSC_INT32 and remove use of improper PETSC_ENUM