Hello,

In my code I have

call KSPSetComputeOperators(ksp_u, compute_matrix_u, PETSC_NULL_OBJECT, ierr)

later I have something like

  call KSPSolve(ksp_u, RHS_u_vec, u3_vec, ierr)
  call DMCreateMatrix(da_u, B, ierr)
  call compute_matrix_u(ksp_u, B, B, PETSC_NULL_INTEGER, ierr)
  call KSPGetOperators(ksp_u, A, PETSC_NULL_OBJECT, ierr)
  call MatEqual(A, B, flg, ierr)

inside a loop.

On the first iteration 'flg' is set to PETSC_TRUE but after that it is set to PETSC_FALSE. Why is that?

My code includes a hand-crafted iterative solver and I want to be able to evaluate the residual norm of the aproximate solution it produces using the matrix of an analogous PETSc solver. I am trying to determine the best way to obtain this matrix. In this case KSPSolve will not have been called and I want to know if I can obtain it using compute_matrix_u.

David

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

Reply via email to