Skip to content

Commit

Permalink
Fix Matlab viewer for parallel complex vectors
Browse files Browse the repository at this point in the history
In complex vectors, the output of the Matlab viewer was different
for sequential or parallel vectors. In parallel vectors, there was
a whitespace between the imaginary part and the imaginary unit "i"
hence causing problems when loading in Matlab.
  • Loading branch information
joseeroman committed Dec 20, 2013
1 parent 077a9f7 commit e0b9482
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/vec/vec/impls/mpi/pdvec.c
Expand Up @@ -81,9 +81,9 @@ PetscErrorCode VecView_MPI_ASCII(Vec xin,PetscViewer viewer)
for (i=0; i<n; i++) {
#if defined(PETSC_USE_COMPLEX)
if (PetscImaginaryPart(values[i]) > 0.0) {
ierr = PetscViewerASCIIPrintf(viewer,"%18.16e + %18.16e i\n",PetscRealPart(values[i]),PetscImaginaryPart(values[i]));CHKERRQ(ierr);
ierr = PetscViewerASCIIPrintf(viewer,"%18.16e + %18.16ei\n",PetscRealPart(values[i]),PetscImaginaryPart(values[i]));CHKERRQ(ierr);
} else if (PetscImaginaryPart(values[i]) < 0.0) {
ierr = PetscViewerASCIIPrintf(viewer,"%18.16e - %18.16e i\n",PetscRealPart(values[i]),-PetscImaginaryPart(values[i]));CHKERRQ(ierr);
ierr = PetscViewerASCIIPrintf(viewer,"%18.16e - %18.16ei\n",PetscRealPart(values[i]),-PetscImaginaryPart(values[i]));CHKERRQ(ierr);
} else {
ierr = PetscViewerASCIIPrintf(viewer,"%18.16e\n",PetscRealPart(values[i]));CHKERRQ(ierr);
}
Expand Down

0 comments on commit e0b9482

Please sign in to comment.