#include <petscsys.h> PetscComplex number = 1. + 2.*PETSC_i;
See PetscScalar for details on how to ./configure the size of PetscReal
Complex numbers are automatically available if PETSc was able to find a working complex implementation
Petsc has a 'fix' for complex numbers to support expressions such as std::complex<PetscReal> + PetscInt, which are not supported by the standard C++ library, but are convenient for petsc users. If the C++ compiler is able to compile code in petsccxxcomplexfix.h (This is checked by configure), we include petsccxxcomplexfix.h to provide this convenience.
If the fix causes conflicts, or one really does not want this fix for a particular C++ file, one can define PETSC_SKIP_CXX_COMPLEX_FIX at the beginning of the C++ file to skip the fix.