[petsc-users] how is snes_test_jacobian_view computing the matrix difference?

Matteo Semplice matteo.semplice at uninsubria.it
Mon Mar 2 09:09:45 CST 2026


Dear all,

     the following output from -snes_test_jacobian_view lokks clear 
enough to pinpoint my mistake (I must be putting jacobian elements in 
the wrong place), but it nevertheless left me suprised.

0 SNES Function norm 2.945516399303e-01
   ---------- Testing Jacobian -------------
   Testing hand-coded Jacobian, if (for double precision runs) ||J - 
Jfd||_F/||J||_F is
     O(1.e-8), the hand-coded Jacobian is probably correct.
   ||J - Jfd||_F/||J||_F = 0.000121529, ||J - Jfd||_F = 0.395752
   Hand-coded Jacobian ----------
Mat Object: 4 MPI processes
   row 84:     (84, 60.)      (85, 0.) (3446, -80.)     (3447, 0.)     
(6808, 20.)   (6809, 0.)
   row 85:     (84, 0.00914434)      (85, 1.)      (3446, 0.) (3447, 
0.)      (6808, 0.)      (6809, 0.)

    Finite difference Jacobian ----------
Mat Object: 4 MPI processes
   type: mpiaij
   row 84:   (84, 60.) (1806, -80.) (3528, 20.)
   row 85:   (85, 0.999971)

   Hand-coded minus finite-difference Jacobian with tolerance 1e-05 
----------
Mat Object: 4 MPI processes
   type: mpiaij
row 84:
   row 85:   (84, 0.00914434)    (85, 2.9293e-05)

The difference of the two matrices shoudl be nonzero in row 84 for all 
elements 1806, 3528, 3446, 6808. Is it intended that the difference is 
shown only for matrix elements that are present in both the hand-coded 
and the FD jacobian?

I would have expected an output like

row 84: (1806,80.)   (3446,-80.), etc

(This was on PETSc Release Version 3.24.2)

Thanks

     Matteo

-- 
Prof. Matteo Semplice
Università degli Studi dell’Insubria
Dipartimento di Scienza e Alta Tecnologia – DiSAT
Professore Associato
Via Valleggio, 11 – 22100 Como (CO) – Italia
tel.: +39 031 2386316
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20260302/dbcc222a/attachment.html>


More information about the petsc-users mailing list