<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>It's indeed a DMDA (with 2 dofs per point), but the code is run
      with</p>
    <p>-snes_test_jacobian -snes_test_jacobian_view</p>
    <p>Would the hand-coded and the f.d. jacobian be different matrix
      type in this case?</p>
    <p>Matteo</p>
    <div class="moz-cite-prefix">Il 02/03/26 21:32, Stefano Zampini ha
      scritto:<br>
    </div>
    <blockquote type="cite" cite="mid:CAGPUisiMN2k2A-2VVhokn6uaDxmDYFcpgZ_cMka=z3gU8Wj-XQ@mail.gmail.com">
      
      <div dir="ltr">Maybe you are using a DMDA, with one matrix coming
        from it and the other not? DMDA changes the View to dump in
        natural ordering. </div>
      <br>
      <div class="gmail_quote gmail_quote_container">
        <div dir="ltr" class="gmail_attr">Il giorno lun 2 mar 2026 alle
          ore 18:10 Matteo Semplice via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" moz-do-not-send="true" class="moz-txt-link-freetext">petsc-users@mcs.anl.gov</a>>
          ha scritto:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <p>Dear all,</p>
            <p>    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.</p>
            <font face="monospace">0 SNES Function norm
              2.945516399303e-01<br>
                ---------- Testing Jacobian -------------<br>
                Testing hand-coded Jacobian, if (for double precision
              runs) ||J - Jfd||_F/||J||_F is<br>
                  O(1.e-8), the hand-coded Jacobian is probably correct.<br>
                ||J - Jfd||_F/||J||_F = 0.000121529, ||J - Jfd||_F =
              0.395752<br>
                Hand-coded Jacobian ----------<br>
              Mat Object: 4 MPI processes<br>
                row 84:     (84, 60.)      (85, 0.)      <font color="#ed5c57">(3446, -80.) </font>     (3447, 0.)  <font color="#ed5c57">    (6808, 20.)   </font>   (6809, 0.) 
                 <br>
                row 85:     (84, 0.00914434)      (85, 1.)      (3446,
              0.)      (3447, 0.)      (6808, 0.)      (6809, 0.)    <br>
                  <br>
                 Finite difference Jacobian ----------<br>
              Mat Object: 4 MPI processes<br>
                type: mpiaij<br>
                row 84:   (84, 60.)    <font color="#ed5c57">(1806,
                -80.) </font>  <font color="#ed5c57"> (3528, 20.) </font>
               <br>
                row 85:   (85, 0.999971)<br>
              <br>
                Hand-coded minus finite-difference Jacobian with
              tolerance 1e-05 ----------<br>
              Mat Object: 4 MPI processes<br>
                type: mpiaij<br>
                <font color="#ed5c57">row 84:</font>  <br>
                row 85:   (84, 0.00914434)    (85, 2.9293e-05)</font>
            <p>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?</p>
            <p>I would have expected an output like</p>
            <p>row 84: (1806,80.)   (3446,-80.), etc</p>
            <p>(This was on  <span style="font-family:monospace"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">PETSc Release
                  Version 3.24.2</span>)</span> </p>
            <p>Thanks</p>
            <p>    Matteo</p>
            <pre cols="72">-- 
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</pre>
          </div>
        </blockquote>
      </div>
      <div><br clear="all">
      </div>
      <div><br>
      </div>
      <span class="gmail_signature_prefix">-- </span><br>
      <div dir="ltr" class="gmail_signature">Stefano</div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
---
Professore Associato in Analisi Numerica
Dipartimento di Scienza e Alta Tecnologia
Università degli Studi dell'Insubria
Via Valleggio, 11 - Como</pre>
  </body>
</html>