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
OperatorA from the corresponding Riccati equation.E – The
OperatorE from the corresponding Riccati equation.B – The
VectorArrayB from the corresponding Riccati equation.R – A
VectorArrayrepresenting the currently computed residual factor.K – A
VectorArrayrepresenting the currently computed iterate.Z – A
VectorArrayrepresenting the currently computed solution factor.shift_options – The shift options to use (see
ricc_lrcf_solver_options).
- Returns:
shifts – A
NumPy arraycontaining 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
OperatorA from the corresponding Riccati equation.E – The
OperatorE from the corresponding Riccati equation.B – The
VectorArrayB from the corresponding Riccati equation.C – The
VectorArrayC from the corresponding Riccati equation.shift_options – The shift options to use (see
ricc_lrcf_solver_options).
- Returns:
shifts – A
NumPy arraycontaining a set of stable shift parameters.
- pymor.algorithms.lrradi.ricc_lrcf_solver_options(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]¶
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.shifted_system_solver – The
Solverfor the shifted systems.hamiltonian_shifts_init_maxiter – See
hamiltonian_shifts_init.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_lrcffor a general description.This function is an implementation of Algorithm 2 in [BBujanovicKurschnerS18].
- Parameters:
A – The
OperatorA.E – The
OperatorE orNone.B – The operator B as a
VectorArrayfromA.source.C – The operator C as a
VectorArrayfromA.source.R – The matrix R as a 2D
NumPy arrayorNone.S – The operator S as a
VectorArrayfromA.sourceorNone.trans – Whether the first
Operatorin 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,
VectorArrayfromA.source.