<div dir="ltr">Hi Petsc,<div><br></div><div>I'm attempting to implement a "hookstep" for the SNES trust region solver. Essentially what I'm trying to do is replace the solution of the least squares problem at the end of each GMRES solve with a modified solution with a norm that is constrained to be within the size of the trust region.</div><div><br></div><div>In order to do this I need to perform an SVD on the Hessenberg matrix, which copying the function <font face="courier new, monospace">KSPComputeExtremeSingularValues()</font>, I'm trying to do by accessing the LAPACK function <font face="courier new, monospace">dgesvd()</font> via the <font face="courier new, monospace">PetscStackCallBLAS()</font> machinery. One thing I'm confused about however is the ordering of the 2D arrays into and out of this function, given that that C and FORTRAN arrays use reverse indexing, ie: <font face="courier new, monospace">C[j+1][i+1] = F[i,j]</font>.</div><div><br></div><div>Given that the Hessenberg matrix has k+1 rows and k columns, should I be still be initializing this as <font face="courier new, monospace">H[row][col]</font> and passing this into </div><div><span style="font-family:"courier new",monospace">PetscStackCallBLAS("LAPACKgesvd",LAPACKgrsvd_(...))</span></div><div><font face="arial, sans-serif">or should I be transposing this before passing it in?</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Also for the left and right singular vector matrices that are returned by this function, should I be transposing these before I interpret them as C arrays?</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">I've attached my modified version of </font><font face="courier new, monospace">gmres.c</font><font face="arial, sans-serif"> in case this is helpful. If you grep for DRL (my initials) then you'll see my changes to the code.</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Cheers, Dave.</font></div></div>