Hi, I've some trouble with matrix values that are set by MatSetValues, but are missing in the final matrix. I can reduce the problem to a 75x75 matrix that is created on four processors. I create it quite simple with:
MatCreateMPIAIJ(PETSC_COMM_WORLD, 12, 12, 75, 75, petscMatrix) on p0 MatCreateMPIAIJ(PETSC_COMM_WORLD, 18, 18, 75, 75, petscMatrix) on p1 MatCreateMPIAIJ(PETSC_COMM_WORLD, 18, 18, 75, 75, petscMatrix) on p2 MatCreateMPIAIJ(PETSC_COMM_WORLD, 27, 27, 75, 75, petscMatrix) on p3 On all processors, the values are set with the following command: MatSetValues(petscMatrix, 1, &rowIndex, cols.size(), &(cols[0]), &(values[0]), ADD_VALUES); where rowIndex is an integer, cols is of type std::vector<int> and values if of type std::vector<double>. Before MatSetValues is called, I run over the arrays and print all the entries that are added to the matrix. Finally, MatAssemblyBegin(petscMatrix, MAT_FINAL_ASSEMBLY); MatAssemblyEnd(petscMatrix, MAT_FINAL_ASSEMBLY); are called. To check the matrix, I use the option -mat_view_matlab. Okay, now some of the entries are missing and I've absolute no idea what I did wrong (i.e. entry row 48-col 69, which is only once by rank 3). What is the best way to debug the problem? I use petsc 3.0.0p11, which is compiled in debug mode. My code is also compiled in debug mode and valgrind does not report any errors. Thanks for any suggestions. Thomas
