[petsc-users] DMCreateMatrix error with Composite (no getlocaltoglobalmapping)

Mark Adams mfadams at lbl.gov
Wed Aug 6 11:23:21 CDT 2014


adding a subject ...


On Wed, Aug 6, 2014 at 12:00 PM, Mark Adams <mfadams at lbl.gov> wrote:

> I am moving my code to have the DM create the matrix and am hitting this
> error in DMGetLocalToGlobalMapping:
>
> if (!dm->ops->getlocaltoglobalmapping)
> SETERRQ(PetscObjectComm((PetscObject)dm),PETSC_ERR_SUP,"DM can not create
> LocalToGlobalMapping");
>
> This happens when I create the matrix like this:
>
>   call DMCompositeCreate(comm,solver%da,ierr)
>   call DMSetOptionsPrefix(solver%da,'fsa_',ierr)
>   call DMCompositeAddDM(solver%da,solver%daphi,ierr)
>   call DMCompositeAddDM(solver%da,solver%dalam,ierr)
>   call DMSetFromOptions(solver%da,ierr)
>   call DMCreateMatrix(solver%da,solver%KKTmat,ierr)
>
> I am using DMShell and create them like so:
>
>   ! phi DM
>   call VecCreate(comm,x1Vec,ierr)
>   call VecSetSizes(x1Vec,N1loc,N1Glob,ierr)
>   call VecSetFromOptions(x1Vec,ierr)
>
>   call DMShellCreate(comm,solver%daphi,ierr)
>   call DMShellSetGlobalVector(solver%daphi,x1Vec,ierr)
>   call DMShellSetMatrix(solver%daphi,solver%A0Mat,ierr)
>   call VecDestroy(x1Vec,ierr)
>   call DMSetOptionsPrefix(solver%daphi,'phi_',ierr)
>   call DMSetFromOptions(solver%daphi,ierr)
>
>   call VecCreate(PETSC_COMM_SELF,x1Vecloc,ierr)
>   call VecSetSizes(x1Vecloc,N1loc,N1loc,ierr)
>   call VecSetFromOptions(x1Vecloc,ierr)
>   call DMShellSetLocalVector(solver%daphi,x1Vecloc,ierr)
>   call VecDestroy(x1Vecloc,ierr)
>
> All the examples that I see use DMDAs.  I am able to create a global
> vector with this DM.
>
> Any ideas?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140806/8301b49a/attachment.html>


More information about the petsc-users mailing list