pymor.reductors.bt

Module Contents

Classes

GenericBTReductor

Generic Balanced Truncation reductor.

BTReductor

Standard (Lyapunov) Balanced Truncation reductor.

FDBTReductor

Balanced Truncation reductor using frequency domain representation of Gramians.

LQGBTReductor

Linear Quadratic Gaussian (LQG) Balanced Truncation reductor.

BRBTReductor

Bounded Real (BR) Balanced Truncation reductor.

class pymor.reductors.bt.GenericBTReductor(fom, mu=None)[source]

Bases: pymor.core.base.BasicObject

Generic Balanced Truncation reductor.

Parameters

fom

The full-order LTIModel to reduce.

mu

Parameter values.

abstract _gramians(self)[source]

Return low-rank Cholesky factors of Gramians.

_sv_U_V(self)[source]

Return singular values and vectors.

abstract error_bounds(self)[source]

Returns error bounds for all possible reduced orders.

reduce(self, r=None, tol=None, projection='bfsr')[source]

Generic Balanced Truncation.

Parameters

r

Order of the reduced model if tol is None, maximum order if tol is specified.

tol

Tolerance for the error bound if r is None.

projection

Projection method used:

  • 'sr': square root method

  • 'bfsr': balancing-free square root method (default, since it avoids scaling by singular values and orthogonalizes the projection matrices, which might make it more accurate than the square root method)

  • 'biorth': like the balancing-free square root method, except it biorthogonalizes the projection matrices (using gram_schmidt_biorth)

Returns

rom

Reduced-order model.

reconstruct(self, u)[source]

Reconstruct high-dimensional vector from reduced vector u.

class pymor.reductors.bt.BTReductor(fom, mu=None)[source]

Bases: GenericBTReductor

Standard (Lyapunov) Balanced Truncation reductor.

See Section 7.3 in [Ant05].

Parameters

fom

The full-order LTIModel to reduce.

mu

Parameter values.

_gramians(self)[source]

Return low-rank Cholesky factors of Gramians.

error_bounds(self)[source]

Returns error bounds for all possible reduced orders.

class pymor.reductors.bt.FDBTReductor(fom, ast_pole_data=None, mu=None, solver_options=None)[source]

Bases: GenericBTReductor

Balanced Truncation reductor using frequency domain representation of Gramians.

See [ZSW99].

Parameters

fom

The full-order LTIModel to reduce.

ast_pole_data

Can be:

  • dictionary of parameters for eigs,

  • list of anti-stable eigenvalues (scalars),

  • tuple (lev, ew, rev) where ew contains the anti-stable eigenvalues and lev and rev are VectorArrays representing the eigenvectors.

  • None if anti-stable eigenvalues should be computed via dense methods.

mu

Parameter values.

_gramians(self)[source]

Return low-rank Cholesky factors of Gramians.

error_bounds(self)[source]

L-infinity error bounds for reduced order models.

class pymor.reductors.bt.LQGBTReductor(fom, mu=None, solver_options=None)[source]

Bases: GenericBTReductor

Linear Quadratic Gaussian (LQG) Balanced Truncation reductor.

See Section 3 in [MG91].

Parameters

fom

The full-order LTIModel to reduce.

mu

Parameter values.

solver_options

The solver options to use to solve the Riccati equations.

_gramians(self)[source]

Return low-rank Cholesky factors of Gramians.

error_bounds(self)[source]

Returns error bounds for all possible reduced orders.

class pymor.reductors.bt.BRBTReductor(fom, gamma=1, mu=None, solver_options=None)[source]

Bases: GenericBTReductor

Bounded Real (BR) Balanced Truncation reductor.

See [Ant05] (Section 7.5.3) and [OJ88].

Parameters

fom

The full-order LTIModel to reduce.

gamma

Upper bound for the \(\mathcal{H}_\infty\)-norm.

mu

Parameter values.

solver_options

The solver options to use to solve the positive Riccati equations.

_gramians(self)[source]

Return low-rank Cholesky factors of Gramians.

error_bounds(self)[source]

Returns error bounds for all possible reduced orders.