<div dir="ltr"><div dir="ltr">On Tue, Apr 25, 2023 at 2:21 PM Suh, Hansol via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-7704376761502449398">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Actually, let me take that back , about inability to access LMVM.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
You can access LMVM Hessian mat after you are done with TaoSolve, but not within the iteration.</div></div></div></blockquote><div><br></div><div>Good catch. You could do this in the iteration with a monitor.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-7704376761502449398"><div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
See:</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
```</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
    PetscCall(TaoGetKSP(tao, &ksp));
<div>    PetscCall(KSPGetPC(ksp, &pc));</div>
<div>    PetscCall(PCLMVMGetMatLMVM(pc, &M));</div>
<div>    PetscCall(VecDuplicate(x, &in));</div>
<div>    PetscCall(VecDuplicate(x, &out));</div>
<div>    PetscCall(VecDuplicate(x, &out2));</div>
<div>    PetscCall(VecSet(in, 1.0));</div>
<div>    PetscCall(MatMult(M, in, out));</div>
<div>    PetscCall(MatSolve(M, out, out2));</div>
<div>    PetscCall(VecAXPY(out2, -1.0, in));</div>
    PetscCall(VecNorm(out2, NORM_2, &mult_solve_dist));<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
```</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
(tao/unconstrained/tutorials/rosenbrock1.c)</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hope this helps.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div id="m_-993579735741838112appendonsend"></div>
<hr style="display:inline-block;width:98%">
<div id="m_-993579735741838112divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> petsc-users <<a href="mailto:petsc-users-bounces@mcs.anl.gov" target="_blank">petsc-users-bounces@mcs.anl.gov</a>> on behalf of Suh, Hansol via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>><br>
<b>Sent:</b> Tuesday, April 25, 2023 12:56 PM<br>
<b>To:</b> <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a> <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>><br>
<b>Cc:</b> Isaac, Toby <<a href="mailto:tisaac@anl.gov" target="_blank">tisaac@anl.gov</a>>; <a href="mailto:stefano.carli@kuleuven.be" target="_blank">stefano.carli@kuleuven.be</a> <<a href="mailto:stefano.carli@kuleuven.be" target="_blank">stefano.carli@kuleuven.be</a>><br>
<b>Subject:</b> Re: [petsc-users] obtaining estimated Hessian in BQNLS</font>
<div> </div>
</div>

<div dir="ltr">
<div style="font-size:12pt;color:rgb(0,0,0)"><font face="-webkit-system-font, Helvetica Neue, Helvetica, sans-serif">petsc's QN routines uses limited-memory variable metric format, which means explicit hessian is not constructed.</font></div>
<div style="font-size:12pt;color:rgb(0,0,0)"><font face="-webkit-system-font, Helvetica Neue, Helvetica, sans-serif">Instead of creating explicit hessian, TAO uses MatSolve, and MatMult, to "access" the hessian. So you can have access to Hx, and H^{-1}x, but
 not H matrix by itself. </font></div>
<div style="font-size:12pt;color:rgb(0,0,0)">And as of right now, there isn't a way to access such Hx, and H^{-1}x. (which also means that even if the routines to access Hx, H^{-1}x were there, getting those at each iteration doesn't really show much information,
 I think.)</div>
<div style="font-size:12pt;color:rgb(0,0,0)"><br>
</div>
<div style="font-size:12pt;color:rgb(0,0,0)"><br>
</div>
<div style="font-size:12pt;color:rgb(0,0,0)"><font face="-webkit-system-font, Helvetica Neue, Helvetica, sans-serif"><span style="font-size:12pt">(Sorry for email reply-chain screw up..)</span></font></div>
<blockquote type="cite" style="font-size:15px;background-color:rgb(255,255,255)">
<div><span style="margin:0px"><span style="margin:0px;color:black"><b><br>
</b></span></span></div>
<div><span style="margin:0px"><span style="margin:0px;color:black"><b>From:<span> </span></b></span><span style="margin:0px">Stefano Carli <<a href="mailto:stefano.carli@kuleuven.be" target="_blank">stefano.carli@kuleuven.be</a>><br>
</span></span></div>
<div style="margin:0px"><span style="color:black"><b>Subject: </b></span><b style="font-family:inherit;font-size:inherit;font-style:inherit;font-variant-ligatures:inherit;font-variant-caps:inherit">[petsc-users] obtaining estimated Hessian in BQNLS</b><br>
</div>
<div style="margin:0px"><span style="margin:0px;color:black"><b>Date:<span> </span></b></span><span style="margin:0px">April 25, 2023 at 4:15:35 AM EDT<br>
</span></div>
<div style="margin:0px"><span style="margin:0px;color:black"><b>To:<span> </span></b></span><span style="margin:0px">"<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>" <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>><br>
</span></div>
<div style="margin:0px"><span style="margin:0px;color:black"><b>Message-Id:<span> </span></b></span><span style="margin:0px"><<a href="mailto:05357d86ee454f49a8499739c3654b3a@ICTS-S-EXMBX23.luna.kuleuven.be" target="_blank">05357d86ee454f49a8499739c3654b3a@ICTS-S-EXMBX23.luna.kuleuven.be</a>><br>
</span></div>
<br>
<div style="margin:0px">
<div style="font-size:18px;font-family:Helvetica;margin:0px;text-decoration:none">
<div style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span lang="en-US" style="margin:0px">Dear PETSc developers,</span></div>
<div style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span lang="en-US" style="margin:0px"> </span></div>
<div style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span lang="en-US" style="margin:0px">I’m using PETSc version 3.14.1 coupled to a Fortran code, and I was wondering if there is a way of obtaining in output, possibly at each iteration,
 the estimated Hessian matrix for the BQNLS method.</span></div>
<div style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span lang="en-US" style="margin:0px"> </span></div>
<div style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span lang="en-US" style="margin:0px">Thank you in advance and best regards,</span></div>
<span style="font-size:11pt;font-family:Calibri,sans-serif;margin:0px"><span lang="en-US" style="margin:0px">Stefano Carli</span></span></div>
</div>
</blockquote>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
</div>
</div>

</div></blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>