pymor.solvers.matrix_equations.lrradi

Module Contents

class pymor.solvers.matrix_equations.lrradi.LRRADIRiccatiSolverLRCF(lrradi_tol=1e-10, lrradi_maxiter=500, lrradi_shifts='hamiltonian_shifts', shifted_system_solver=None, hamiltonian_shifts_init_maxiter=20, hamiltonian_shifts_subspace_columns=6)[source]

Bases: pymor.solvers.matrix_equations.interface.RiccatiSolverLRCF

Compute an approximate low-rank solution of a RiccatiEquation.

This is an implementation of Algorithm 2 in [BBujanovicKurschnerS18].

Parameters:
  • lrradi_tol – Convergence tolerance for the RADI iteration.

  • lrradi_maxiter – Maximum number of RADI steps. A real shift counts as one step, a complex-conjugate shift pair as two.

  • lrradi_shifts – Strategy for computing the RADI shift parameters. Currently only 'hamiltonian_shifts' is supported.

  • shifted_system_solver – The Solver for the shifted systems.

  • hamiltonian_shifts_init_maxiter – Maximum number of attempts to generate stable initial shifts before an error is raised. See hamiltonian_shifts_init.

  • hamiltonian_shifts_subspace_columns – Number of trailing columns of the solution factor \(Z\) used to span the Galerkin subspace for the subsequent shifts. See hamiltonian_shifts.

Methods

hamiltonian_shifts

Compute further shift parameters for low-rank RADI iteration.

hamiltonian_shifts_init

Compute initial shift parameters for low-rank RADI iteration.

hamiltonian_shifts(A, E, B, R, K, Z)[source]

Compute further shift parameters for low-rank RADI iteration.

Compute Galerkin projection of Hamiltonian matrix on space spanned by last few columns of \(Z\) and return the eigenvalue of the projected Hamiltonian with the most impact on convergence as the next shift parameter.

See [BBujanovicKurschnerS18], pp. 318-321.

Parameters:
  • A – The Operator A from the corresponding Riccati equation.

  • E – The Operator E from the corresponding Riccati equation.

  • B – The VectorArray B from the corresponding Riccati equation.

  • R – A VectorArray representing the currently computed residual factor.

  • K – A VectorArray representing the currently computed iterate.

  • Z – A VectorArray representing the currently computed solution factor.

Returns:

shifts – A NumPy array containing a set of stable shift parameters.

hamiltonian_shifts_init(A, E, B, C)[source]

Compute initial shift parameters for low-rank RADI iteration.

Compute Galerkin projection of Hamiltonian matrix on space spanned by \(C\) and return the eigenvalue of the projected Hamiltonian with the most impact on convergence as the next shift parameter.

See [BBujanovicKurschnerS18], pp. 318-321.

Parameters:
  • A – The Operator A from the corresponding Riccati equation.

  • E – The Operator E from the corresponding Riccati equation.

  • B – The VectorArray B from the corresponding Riccati equation.

  • C – The VectorArray C from the corresponding Riccati equation.

Returns:

shifts – A NumPy array containing a set of stable shift parameters.