pymor.algorithms.lrradi
¶
Module Contents¶
- pymor.algorithms.lrradi.hamiltonian_shifts(A, E, B, R, K, Z, shift_options)[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.- shift_options
The shift options to use (see
ricc_lrcf_solver_options
).
Returns
- shifts
A
NumPy array
containing a set of stable shift parameters.
- pymor.algorithms.lrradi.hamiltonian_shifts_init(A, E, B, C, shift_options)[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.- shift_options
The shift options to use (see
ricc_lrcf_solver_options
).
Returns
- shifts
A
NumPy array
containing a set of stable shift parameters.
- pymor.algorithms.lrradi.ricc_lrcf_solver_options(lrradi_tol=1e-10, lrradi_maxiter=500, lrradi_shifts='hamiltonian_shifts', hamiltonian_shifts_init_maxiter=20, hamiltonian_shifts_subspace_columns=6)[source]¶
Returns available Riccati equation solvers with default solver options.
Parameters
- lrradi_tol
See
solve_ricc_lrcf
.- lrradi_maxiter
See
solve_ricc_lrcf
.- lrradi_shifts
See
solve_ricc_lrcf
.- hamiltonian_shifts_init_maxiter
- hamiltonian_shifts_subspace_columns
See
hamiltonian_shifts
.
Returns
A dict of available solvers with default solver options.
- pymor.algorithms.lrradi.solve_ricc_lrcf(A, E, B, C, R=None, S=None, trans=False, options=None)[source]¶
Compute an approximate low-rank solution of a Riccati equation.
See
pymor.algorithms.riccati.solve_ricc_lrcf
for a general description.This function is an implementation of Algorithm 2 in [BBujanovicKurschnerS18].
Parameters
- A
The
Operator
A.- E
The
Operator
E orNone
.- B
The operator B as a
VectorArray
fromA.source
.- C
The operator C as a
VectorArray
fromA.source
.- R
The matrix R as a 2D
NumPy array
orNone
.- S
The operator S as a
VectorArray
fromA.source
orNone
.- trans
Whether the first
Operator
in the Riccati equation is transposed.- options
The solver options to use. (see
ricc_lrcf_solver_options
)
Returns
- Z
Low-rank Cholesky factor of the Riccati equation solution,
VectorArray
fromA.source
.