<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
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);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
You can access LMVM Hessian mat after you are done with TaoSolve, but not within the iteration.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
See:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
```</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
    PetscCall(TaoGetKSP(tao, &ksp));
<div class="ContentPasted0">    PetscCall(KSPGetPC(ksp, &pc));</div>
<div class="ContentPasted0">    PetscCall(PCLMVMGetMatLMVM(pc, &M));</div>
<div class="ContentPasted0">    PetscCall(VecDuplicate(x, &in));</div>
<div class="ContentPasted0">    PetscCall(VecDuplicate(x, &out));</div>
<div class="ContentPasted0">    PetscCall(VecDuplicate(x, &out2));</div>
<div class="ContentPasted0">    PetscCall(VecSet(in, 1.0));</div>
<div class="ContentPasted0">    PetscCall(MatMult(M, in, out));</div>
<div class="ContentPasted0">    PetscCall(MatSolve(M, out, out2));</div>
<div class="ContentPasted0">    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);" class="elementToProof ContentPasted0">
```</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
(tao/unconstrained/tutorials/rosenbrock1.c)</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
Hope this helps.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> petsc-users <petsc-users-bounces@mcs.anl.gov> on behalf of Suh, Hansol via petsc-users <petsc-users@mcs.anl.gov><br>
<b>Sent:</b> Tuesday, April 25, 2023 12:56 PM<br>
<b>To:</b> petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov><br>
<b>Cc:</b> Isaac, Toby <tisaac@anl.gov>; stefano.carli@kuleuven.be <stefano.carli@kuleuven.be><br>
<b>Subject:</b> Re: [petsc-users] obtaining estimated Hessian in BQNLS</font>
<div> </div>
</div>
<style type="text/css" style="display:none">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<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 <stefano.carli@kuleuven.be><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">"petsc-users@mcs.anl.gov" <petsc-users@mcs.anl.gov><br>
</span></div>
<div style="margin:0px"><span style="margin:0px; color:black"><b>Message-Id:<span> </span></b></span><span style="margin:0px"><05357d86ee454f49a8499739c3654b3a@ICTS-S-EXMBX23.luna.kuleuven.be><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 class="x_elementToProof" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
</div>
</body>
</html>