[petsc-users] ISLocalToGlobalMappingApplyIS switches communicator?

Matthew Knepley knepley at gmail.com
Mon Feb 24 09:10:21 CST 2014

On Mon, Feb 24, 2014 at 6:57 AM, De Groof, Vincent Frans Maria <
Vincent.De-Groof at uibk.ac.at> wrote:

>  Hi,
>  I have an IS object, which lists per process certain DOFs in local
> numbering. I want to get the global numbering, so I apply
> ISLocalToGlobalMappingApplyIS. However, while I can view them in local
> numbering using the ISView(ISLocal, PETSC_VIEWER_STDOUT_WORLD), I cannot
> view them in global numbering using ISView(ISGlobal, VIEWER_STDOUT_WORLD).
> It complains that "Arguments must have same communicators".
>  Is this normal? Can someone explain what is happening? I assumed that
> the ISLocalToGlobalMappingApplyIS would just copy the communicator from the
> local IS.

This is a bug. IS used to be purely serial, but then it evolved parallel
abilities (it was bitten by a radioactive spider), so there
are some PETSC_COMM_SELFs hidden in the code. I will fix this, but you can
just change the creation line in
src/vec/is/utils/isltog.c:ISLocalToGlobalMappingApplyIS() to use
PetscObjectComm((PetscObject) is) instead.



> Code snippet:
>  IS ISLocal, ISGlobal;
> ierr = ISCreateGeneral(PETSC_COMM_WORLD, nvtx, vtx_idx, PETSC_COPY_VALUES,
> &ISLocal); CHKERRQ(ierr);
> ierr = ISLocalToGlobalMappingApplyIS(ISg2lMap, ISLocal, &ISGlobal);
> CHKERRQ(ierr);
> ISView(ISGlobal, PETSC_VIEWER_STDOUT_WORLD);   <-- returns the error.
>  thanks,
> Vincent

What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140224/f5e3a3d6/attachment.html>

More information about the petsc-users mailing list