Skip to main content
`Ctrl`+`K`

# PetscComplex

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

## Synopsis

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

## Notes

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`

## Level

beginner

## Location

include/petscsystypes.h

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