[petsc-users] Question about Nested matrices
Jed Brown
jed at jedbrown.org
Tue Jul 14 15:19:20 CDT 2015
Alejandro D Otero <aotero at fi.uba.ar> writes:
> Hi all,
> I am trying to nest to square matrices to form a rectangular one with dims
> 2n x n (with n the size of the square matrices)
> I want the two matrices to have interlaced rows so I passed the following 2
> list of indices to MatCreateNest:
>
> [[ 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46
> 48]
> [ 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47
> 49]]
>
> And we get the following error message:
> Global sizes (25,25) of nested submatrix (0,0) do not agree with space
> defined by index sets (50,25)
Looks like the isglobal.row[i] index set has dimension 50 instead of 25.
#if defined(PETSC_USE_DEBUG)
for (i=0; i<vs->nr; i++) {
for (j=0; j<vs->nc; j++) {
PetscInt m,n,M,N,mi,ni,Mi,Ni;
Mat B = vs->m[i][j];
if (!B) continue;
ierr = MatGetSize(B,&M,&N);CHKERRQ(ierr);
ierr = MatGetLocalSize(B,&m,&n);CHKERRQ(ierr);
ierr = ISGetSize(vs->isglobal.row[i],&Mi);CHKERRQ(ierr);
ierr = ISGetSize(vs->isglobal.col[j],&Ni);CHKERRQ(ierr);
ierr = ISGetLocalSize(vs->isglobal.row[i],&mi);CHKERRQ(ierr);
ierr = ISGetLocalSize(vs->isglobal.col[j],&ni);CHKERRQ(ierr);
if (M != Mi || N != Ni) SETERRQ6(PetscObjectComm((PetscObject)sub),PETSC_ERR_ARG_INCOMP,"Global sizes (%D,%D) of nested submatrix (%D,%D) do not agree with space defined by index sets (%D,%D)",M,N,i,j,Mi,Ni);
if (m != mi || n != ni) SETERRQ6(PetscObjectComm((PetscObject)sub),PETSC_ERR_ARG_INCOMP,"Local sizes (%D,%D) of nested submatrix (%D,%D) do not agree with space defined by index sets (%D,%D)",m,n,i,j,mi,ni);
}
}
#endif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150714/e838e6e0/attachment.pgp>
More information about the petsc-users
mailing list