[petsc-users] MatZeroRowsColumnsLocalIS support for MATIS object

Alp Kalpalp alpkalpalp at gmail.com
Sat Dec 6 17:04:46 CST 2014


In ex59 which is about pcbddc;
there is a code block for applying dirichlet boundaries;
 if (dd.DBC_zerorows) {
  ierr = ComputeSpecialBoundaryIndices(dd,&dirichletIS,NULL);CHKERRQ(ierr);
  ierr =
MatSetOption(local_mat,MAT_KEEP_NONZERO_PATTERN,PETSC_TRUE);CHKERRQ(ierr);
  ierr = MatZeroRowsLocalIS(*A,dirichletIS,1.0,NULL,NULL);CHKERRQ(ierr);
  ierr = ISDestroy(&dirichletIS);CHKERRQ(ierr);
 }

I replaced MatZeroRowsLocalIS function with MatZeroRowsColumnsLocalIS, but
got following error;
"Need to provide local to global mapping to matrix first" from this line of
code in MatZeroRowsColumnsLocal;

  if (!mat->cmap->mapping)
SETERRQ(PetscObjectComm((PetscObject)mat),PETSC_ERR_ARG_WRONGSTATE,"Need to
provide local to global mapping to matrix first");

As you know MatIS object is created by suppliying an ISLocalToGlobalMapping
so it has this info.

I think MatIS should be revised in order to be used for
MatZeroRowsColumnsLocalIS, I am a newby so dont know how to fix this.

Regards,

Alp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20141207/cdff16e2/attachment-0001.html>


More information about the petsc-users mailing list