ReducedHessian

class kona.linalg.matrices.hessian.ReducedHessian(vector_factories, optns=None)[source]

Bases: kona.linalg.matrices.hessian.basic.BaseHessian

Reduced-space approximation of the Hessian-vector product using a 2nd order adjoint formulation.

Note

Insert inexact-Hessian paper reference here

Variables:
  • product_fact (float) – Solution tolerance for 2nd order adjoints.
  • lamb (float) –

    ???

  • scale (float) –

    ???

  • quasi_newton (QuasiNewtonApproximation -like) – QN Hessian object to be used as preconditioner.
linearize(at_design, at_state, at_adjoint, scale=1.0)[source]

An abstracted “linearization” method for the matrix.

This method does not actually factor any real matrices. It also does not perform expensive linear or non-linear solves. It is used to update internal vector references and perform basic calculations using only cheap matrix-vector products.

Parameters:
  • at_design (DesignVector) – Design point at which the product is evaluated.
  • at_state (StateVector) – State point at which the product is evaluated.
  • at_dual (DualVector) – Lagrange multipliers at which the product is evaluated.
  • at_adjoint (StateVector) – 1st order adjoint variables at which the product is evaluated.
product(in_vec, out_vec)[source]

Matrix-vector product for the reduced KKT system.

Parameters:
set_krylov_solver(krylov_solver)[source]
set_quasi_newton(quasi_newton)[source]
solve(rhs, solution, rel_tol=None)[source]

Solve the linear system defined by this matrix using the embedded krylov solver.

Parameters:
  • rhs (DesignVector) – Right hand side vector for the system.
  • solution (PrimalVector) – Solution of the system.
  • rel_tol (float, optional) – Relative tolerance for the krylov solver.