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");

Reply via email to