pymor.reductors.interpolation

Module Contents

Classes

GenericBHIReductor

Generic bitangential Hermite interpolation reductor.

LTIBHIReductor

Bitangential Hermite interpolation for LTIModels.

SOBHIReductor

Bitangential Hermite interpolation for SecondOrderModels.

DelayBHIReductor

Bitangential Hermite interpolation for LinearDelayModels.

TFBHIReductor

Loewner bitangential Hermite interpolation reductor.

class pymor.reductors.interpolation.GenericBHIReductor(fom, mu=None)[source]

Bases: pymor.core.base.BasicObject

Generic bitangential Hermite interpolation reductor.

This is a generic reductor for reducing any linear InputStateOutputModel with the transfer function which can be written in the generalized coprime factorization \(H(s) = \mathcal{C}(s) \mathcal{K}(s)^{-1} \mathcal{B}(s)\) as in [BG09]. The interpolation here is limited to only up to the first derivative. Interpolation points are assumed to be pairwise distinct.

In particular, given interpolation points \(\sigma_i\), right tangential directions \(b_i\), and left tangential directions \(c_i\), for \(i = 1, 2, \ldots, r\), which are closed under conjugation (if \(\sigma_i\) is real, then so are \(b_i\) and \(c_i\); if \(\sigma_i\) is complex, there is \(\sigma_j\) such that \(\sigma_j = \overline{\sigma_i}\), \(b_j = \overline{b_i}\), \(c_j = \overline{c_i}\)), this reductor finds a transfer function \(\hat{H}\) such that

\[\begin{split}H(\sigma_i) b_i & = \hat{H}(\sigma_i) b_i, \\ c_i^T H(\sigma_i) & = c_i^T \hat{H}(\sigma_i) b_i, \ - \widehat{y}\ c_i^T H'(\sigma_i) b_i & = c_i^T \hat{H}'(\sigma_i) b_i,\end{split}\]

for all \(i = 1, 2, \ldots, r\).

Parameters

fom

The full-order Model to reduce.

mu

Parameter values.

_PGReductor[source]
abstract _B_apply(self, s, V)[source]
abstract _C_apply_adjoint(self, s, V)[source]
abstract _K_apply_inverse(self, s, V)[source]
abstract _K_apply_inverse_adjoint(self, s, V)[source]
abstract _fom_assemble(self)[source]
reduce(self, sigma, b, c, projection='orth')[source]

Bitangential Hermite interpolation.

Parameters

sigma

Interpolation points (closed under conjugation), sequence of length r.

b

Right tangential directions, NumPy array of shape (r, fom.dim_input).

c

Left tangential directions, NumPy array of shape (r, fom.dim_output).

projection

Projection method:

  • 'orth': projection matrices are orthogonalized with respect to the Euclidean inner product

  • 'biorth': projection matrices are biorthogolized with respect to the E product

Returns

rom

Reduced-order model.

reconstruct(self, u)[source]

Reconstruct high-dimensional vector from reduced vector u.

class pymor.reductors.interpolation.LTIBHIReductor(fom, mu=None)[source]

Bases: GenericBHIReductor

Bitangential Hermite interpolation for LTIModels.

Parameters

fom

The full-order LTIModel to reduce.

mu

Parameter values.

_PGReductor[source]
_B_apply(self, s, V)[source]
_C_apply_adjoint(self, s, V)[source]
_K_apply_inverse(self, s, V)[source]
_K_apply_inverse_adjoint(self, s, V)[source]
_fom_assemble(self)[source]
reduce(self, sigma, b, c, projection='orth')[source]

Bitangential Hermite interpolation.

Parameters

sigma

Interpolation points (closed under conjugation), sequence of length r.

b

Right tangential directions, NumPy array of shape (r, fom.dim_input).

c

Left tangential directions, NumPy array of shape (r, fom.dim_output).

projection

Projection method:

  • 'orth': projection matrices are orthogonalized with respect to the Euclidean inner product

  • 'biorth': projection matrices are biorthogolized with respect to the E product

  • 'arnoldi': projection matrices are orthogonalized using the rational Arnoldi process (available only for SISO systems).

Returns

rom

Reduced-order model.

class pymor.reductors.interpolation.SOBHIReductor(fom, mu=None)[source]

Bases: GenericBHIReductor

Bitangential Hermite interpolation for SecondOrderModels.

Parameters

fom

The full-order SecondOrderModel to reduce.

mu

Parameter values.

_PGReductor[source]
_B_apply(self, s, V)[source]
_C_apply_adjoint(self, s, V)[source]
_K_apply_inverse(self, s, V)[source]
_K_apply_inverse_adjoint(self, s, V)[source]
_fom_assemble(self)[source]
class pymor.reductors.interpolation.DelayBHIReductor(fom, mu=None)[source]

Bases: GenericBHIReductor

Bitangential Hermite interpolation for LinearDelayModels.

Parameters

fom

The full-order LinearDelayModel to reduce.

mu

Parameter values.

_PGReductor[source]
_B_apply(self, s, V)[source]
_C_apply_adjoint(self, s, V)[source]
_K_apply_inverse(self, s, V)[source]
_K_apply_inverse_adjoint(self, s, V)[source]
_fom_assemble(self)[source]
class pymor.reductors.interpolation.TFBHIReductor(fom, mu=None)[source]

Bases: pymor.core.base.BasicObject

Loewner bitangential Hermite interpolation reductor.

See [BG12].

Parameters

fom

The Model with eval_tf and eval_dtf methods.

mu

Parameter values.

reduce(self, sigma, b, c)[source]

Realization-independent tangential Hermite interpolation.

Parameters

sigma

Interpolation points (closed under conjugation), sequence of length r.

b

Right tangential directions, NumPy array of shape (r, fom.dim_input).

c

Left tangential directions, NumPy array of shape (r, fom.dim_output).

Returns

lti

The reduced-order LTIModel interpolating the transfer function of fom.

reconstruct(self, u)[source]

Reconstruct high-dimensional vector from reduced vector u.