[petsc-dev] coding style
Oxberry, Geoffrey Malcolm
oxberry1 at llnl.gov
Fri Aug 19 13:47:41 CDT 2016
> On Aug 19, 2016, at 10:36 AM, Munson, Todd <tmunson at mcs.anl.gov> wrote:
>>>> As far as I know, the only information needed in the Hilbert space approach is matrices denoting inner products and norms.
>>> The norms are not a problem, especially just the norm you use to decide if you have "converged". The trickier issue is "the inner products", which ones and what it actually means to switch it from the usual l2 within an algorithm.
>> Agreed. For Hilbert spaces, there are natural inner products that act like l2; I mainly worked off the TaoGradientNorm function when I built up the API in PR #506. CG can be posed in terms of inner products, and generalized to an abstract inner product space setting. Given the current implementation, the “inner product” could always be switched back to the usual l2, possibly at the cost of retarded convergence due to worse conditioning.
>> I don’t know how to generalize beyond that setting to, say, an abstract Krylov subspace method and a normed vector space equipped with a duality pairing. I have a tiny bit of intuition, but I defer to people who have more expertise in the area and welcome the discussion. References would be helpful, too.
>> There is a really excellent short book about this that SIAM just published. Its by Strakos and Marek.
> Maybe I simply need to be better informed, but I am not sure the Hilbert space support
> in LMVM and the rest of the unconstrained optimization codes in TAO is correct.
I agree; I don’t think the LMVM support was intended to support Hilbert spaces by adding inner products. I think what Patrick did was instead to add an option to supply a preconditioner — the Riesz map — that accomplishes something similar. My intent in adding Patrick to all of these e-mails was to solicit his perspective, since he gave an excellent talk at the IMA Frontiers in PDE-constrained Optimization workshop. He has also expressed interest in seeing more general constrained optimization algorithms added to TAO so that they can be interfaced with dolfin-adjoint.
> From what I have read, you need an adjoint operator and then need to redefine the
> quasi-Newton approximation using the correct inner products and the line search
> also needs to use the correct inner products. I think the strong Wolfe conditions
> and More'-Thuente line search might then be okay and the Hilbert-space BFGS or
> DFP matrix should satisfy appropriate properties.
Yes, that is my understanding as well.
> Using Hilbert spaces should be okay, but it seems some thought needs to be put
> into the solvers. It does not seem to always be a simple global search
> and replace to change the norms and inner product.
I agree. I do not think the global search is simple, but I do think that in many cases, like with FEM discretizations, users would be able to supply the inner product or duality pairing information, and this information could be used profitably to achieve mesh-independent convergence.
More information about the petsc-dev