[petsc-users] MatPermuteSparsify hanging

Kelly Fermoyle kjf198 at cse.psu.edu
Mon Nov 29 13:15:42 CST 2010


Hi,

I'm having a problem with MatPermuteSparsify. The function is hanging
indefinitely, but does not give an error of any kind. Below is my relevant
code. It definitely gets through MatGetOrdering fine, but never prints the
line following MatPermuteSparsify. I tried it in the debugger, and it said
that aprun was calling poll(), I don't know what that means.

Thanks!

Kelly



PetscInitialize(&argc, &argv, (char*)0,
      "Loads a linear system and solves it with given solver options.\n");

  PetscViewer mat_view;
  PetscViewerBinaryOpen(PETSC_COMM_WORLD, mat_file, FILE_MODE_READ,
&mat_view);
  MatLoad(mat_view, MATSEQAIJ, &A);
  PetscViewerDestroy(mat_view);

  PetscViewer vec_view;
  PetscViewerBinaryOpen(PETSC_COMM_WORLD, vec_file, FILE_MODE_READ,
&vec_view);
  VecLoad(vec_view, VECSEQ, &b);
  PetscViewerDestroy(vec_view);
  ierr = VecDuplicate(b, &x); CHKERRQ(ierr);

  if(strcmp(reordering, "1wd") == 0){
    type = MATORDERING_1WD;
  } else if(strcmp(reordering, "natural") == 0) {
    type = MATORDERING_NATURAL;
  } else if(strcmp(reordering, "nd") == 0) {
    type = MATORDERING_ND;
  } else if(strcmp(reordering, "qmd") == 0) {
    type = MATORDERING_QMD;
  } else if(strcmp(reordering, "rcm") == 0) {
    type = MATORDERING_RCM;
  } else {
    printf("%s is not a valid reordering!\n", reordering);
    exit(-1);
  }
  MatGetOrdering(A, type, &rowp, &colp);
  MatPermuteSparsify(A, -1, 0, threshold, rowp, colp, &P);
  printf("Got sparse version.\n");



More information about the petsc-users mailing list