Alejandro D Otero <[email protected]> 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
signature.asc
Description: PGP signature
