PETSc type that represents a complex number with precision matching that of PetscReal.


#include <petscsys.h>
PetscComplex number = 1. + 2.*PETSC_i;


For MPI calls that require datatypes, use MPIU_COMPLEX as the datatype for PetscComplex and MPIU_SUM etc for operations. They will automatically work correctly regardless of the size of PetscComplex.

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.

See Also#

PetscReal, PetscScalar, PetscComplex, PetscInt, MPIU_REAL, MPIU_SCALAR, MPIU_COMPLEX, MPIU_INT, PETSC_i





Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages