diff --git a/src/mat/impls/aij/mpi/mpiaij.c b/src/mat/impls/aij/mpi/mpiaij.c index 7303317..88d7cf3 100644 --- a/src/mat/impls/aij/mpi/mpiaij.c +++ b/src/mat/impls/aij/mpi/mpiaij.c @@ -1383,6 +1383,7 @@ PetscErrorCode MatView_MPIAIJ_ASCIIorDraworSocket(Mat mat,PetscViewer viewer) Mat_SeqAIJ *Aloc; PetscInt M = mat->rmap->N,N = mat->cmap->N,m,*ai,*aj,row,*cols,i,*ct; MatScalar *a; + const char *matname; ierr = MatCreate(PetscObjectComm((PetscObject)mat),&A);CHKERRQ(ierr); if (!rank) { @@ -1429,9 +1430,8 @@ PetscErrorCode MatView_MPIAIJ_ASCIIorDraworSocket(Mat mat,PetscViewer viewer) synchronized across all processors that share the PetscDraw object */ ierr = PetscViewerGetSingleton(viewer,&sviewer);CHKERRQ(ierr); + ierr = PetscObjectGetName((PetscObject)mat,&matname);CHKERRQ(ierr); if (!rank) { - const char *matname; - ierr = PetscObjectGetName((PetscObject)mat,&matname);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject)((Mat_MPIAIJ*)(A->data))->A,matname);CHKERRQ(ierr); ierr = MatView_SeqAIJ(((Mat_MPIAIJ*)(A->data))->A,sviewer);CHKERRQ(ierr); } diff --git a/src/mat/impls/baij/mpi/mpibaij.c b/src/mat/impls/baij/mpi/mpibaij.c index 9e6f354..111c346 100644 --- a/src/mat/impls/baij/mpi/mpibaij.c +++ b/src/mat/impls/baij/mpi/mpibaij.c @@ -989,6 +989,7 @@ static PetscErrorCode MatView_MPIBAIJ_ASCIIorDraworSocket(Mat mat,PetscViewer vi Mat_SeqBAIJ *Aloc; PetscInt M = mat->rmap->N,N = mat->cmap->N,*ai,*aj,col,i,j,k,*rvals,mbs = baij->mbs; MatScalar *a; + const char *matname; /* Here we are creating a temporary matrix, so will assume MPIBAIJ is acceptable */ /* Perhaps this should be the type of mat? */ @@ -1041,9 +1042,8 @@ static PetscErrorCode MatView_MPIBAIJ_ASCIIorDraworSocket(Mat mat,PetscViewer vi synchronized across all processors that share the PetscDraw object */ ierr = PetscViewerGetSingleton(viewer,&sviewer);CHKERRQ(ierr); + ierr = PetscObjectGetName((PetscObject)mat,&matname);CHKERRQ(ierr); if (!rank) { - const char *matname; - ierr = PetscObjectGetName((PetscObject)mat,&matname);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject)((Mat_MPIBAIJ*)(A->data))->A,matname);CHKERRQ(ierr); ierr = MatView_SeqBAIJ(((Mat_MPIBAIJ*)(A->data))->A,sviewer);CHKERRQ(ierr); } diff --git a/src/mat/impls/sbaij/mpi/mpisbaij.c b/src/mat/impls/sbaij/mpi/mpisbaij.c index c618ba8..a48dac0 100644 --- a/src/mat/impls/sbaij/mpi/mpisbaij.c +++ b/src/mat/impls/sbaij/mpi/mpisbaij.c @@ -658,6 +658,7 @@ static PetscErrorCode MatView_MPISBAIJ_ASCIIorDraworSocket(Mat mat,PetscViewer v Mat_SeqBAIJ *Bloc; PetscInt M = mat->rmap->N,N = mat->cmap->N,*ai,*aj,col,i,j,k,*rvals,mbs = baij->mbs; MatScalar *a; + const char *matname; /* Should this be the same type as mat? */ ierr = MatCreate(PetscObjectComm((PetscObject)mat),&A);CHKERRQ(ierr); @@ -712,9 +713,8 @@ static PetscErrorCode MatView_MPISBAIJ_ASCIIorDraworSocket(Mat mat,PetscViewer v synchronized across all processors that share the PetscDraw object */ ierr = PetscViewerGetSingleton(viewer,&sviewer);CHKERRQ(ierr); + ierr = PetscObjectGetName((PetscObject)mat,&matname);CHKERRQ(ierr); if (!rank) { - const char *matname; - ierr = PetscObjectGetName((PetscObject)mat,&matname);CHKERRQ(ierr); ierr = PetscObjectSetName((PetscObject)((Mat_MPISBAIJ*)(A->data))->A,matname);CHKERRQ(ierr); ierr = MatView_SeqSBAIJ_ASCII(((Mat_MPISBAIJ*)(A->data))->A,sviewer);CHKERRQ(ierr); }