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
} 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#
Add PETSC_INT32 and remove use of improper PETSC_ENUM
See Also#
PetscBinaryRead()
, PetscBinaryWrite()
, PetscDataTypeToMPIDataType()
,
PetscDataTypeGetSize()
Level#
beginner
Location#
Examples#
src/dm/tutorials/ex20.c
src/dm/tutorials/swarm_ex3.c
src/snes/tutorials/ex63.c
src/sys/tutorials/ex5.c
src/vec/vec/tutorials/ex6.c
src/vec/vec/tutorials/ex6f.F90
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages