`pymor.operators.list`¶

Module Contents¶

class pymor.operators.list.LinearComplexifiedListVectorArrayOperatorBase[source]

Base `Operator` for complexified `ListVectorArrays`.

class pymor.operators.list.ListVectorArrayOperatorBase[source]

Methods

 `apply` Apply the operator to a `VectorArray`. `apply_adjoint` Apply the adjoint operator. `apply_inverse` Apply the inverse operator. `apply_inverse_adjoint` Apply the inverse adjoint operator.
apply(U, mu=None)[source]

Apply the operator to a `VectorArray`.

Parameters

U

`VectorArray` of vectors to which the operator is applied.

mu

The `parameter values` for which to evaluate the operator.

Returns

`VectorArray` of the operator evaluations.

For any given linear `Operator` `op`, `parameter values` `mu` and `VectorArrays` `U`, `V` in the `source` resp. `range` we have:

```op.apply_adjoint(V, mu).dot(U) == V.inner(op.apply(U, mu))
```

Thus, when `op` is represented by a matrix `M`, `apply_adjoint` is given by left-multiplication of (the complex conjugate of) `M` with `V`.

Parameters

V

`VectorArray` of vectors to which the adjoint operator is applied.

mu

The `parameter values` for which to apply the adjoint operator.

Returns

`VectorArray` of the adjoint operator evaluations.

apply_inverse(V, mu=None, initial_guess=None, least_squares=False)[source]

Apply the inverse operator.

Parameters

V

`VectorArray` of vectors to which the inverse operator is applied.

mu

The `parameter values` for which to evaluate the inverse operator.

initial_guess

`VectorArray` with the same length as `V` containing initial guesses for the solution. Some implementations of `apply_inverse` may ignore this parameter. If `None` a solver-dependent default is used.

least_squares

If `True`, solve the least squares problem:

```u = argmin ||op(u) - v||_2.
```

Since for an invertible operator the least squares solution agrees with the result of the application of the inverse operator, setting this option should, in general, have no effect on the result for those operators. However, note that when no appropriate `solver_options` are set for the operator, most implementations will choose a least squares solver by default which may be undesirable.

Returns

`VectorArray` of the inverse operator evaluations.

Raises

InversionError

The operator could not be inverted.

Parameters

U

`VectorArray` of vectors to which the inverse adjoint operator is applied.

mu

The `parameter values` for which to evaluate the inverse adjoint operator.

initial_guess

`VectorArray` with the same length as `U` containing initial guesses for the solution. Some implementations of `apply_inverse_adjoint` may ignore this parameter. If `None` a solver-dependent default is used.

least_squares

If `True`, solve the least squares problem:

```v = argmin ||op^*(v) - u||_2.
```

Since for an invertible operator the least squares solution agrees with the result of the application of the inverse operator, setting this option should, in general, have no effect on the result for those operators. However, note that when no appropriate `solver_options` are set for the operator, most operator implementations will choose a least squares solver by default which may be undesirable.

Returns

`VectorArray` of the inverse adjoint operator evaluations.

Raises

InversionError

The operator could not be inverted.

class pymor.operators.list.NumpyListVectorArrayMatrixOperator(matrix, source_id=None, range_id=None, solver_options=None, name=None)[source]

Variant of `NumpyMatrixOperator` using `ListVectorArray` instead of `NumpyVectorArray`.

This class is mainly intended for performance tests of `ListVectorArray`. In general `NumpyMatrixOperator` should be used instead of this class.

Parameters

matrix

The `NumPy array` which is to be wrapped.

source_id

The id of the operator’s `source` `VectorSpace`.

range_id

The id of the operator’s `range` `VectorSpace`.

solver_options

The `solver_options` for the operator.

name

Name of the operator.

Methods

 `apply_adjoint` Apply the adjoint operator. `apply_inverse_adjoint` Apply the inverse adjoint operator.

For any given linear `Operator` `op`, `parameter values` `mu` and `VectorArrays` `U`, `V` in the `source` resp. `range` we have:

```op.apply_adjoint(V, mu).dot(U) == V.inner(op.apply(U, mu))
```

Thus, when `op` is represented by a matrix `M`, `apply_adjoint` is given by left-multiplication of (the complex conjugate of) `M` with `V`.

Parameters

V

`VectorArray` of vectors to which the adjoint operator is applied.

mu

The `parameter values` for which to apply the adjoint operator.

Returns

`VectorArray` of the adjoint operator evaluations.

Parameters

U

`VectorArray` of vectors to which the inverse adjoint operator is applied.

mu

The `parameter values` for which to evaluate the inverse adjoint operator.

initial_guess

`VectorArray` with the same length as `U` containing initial guesses for the solution. Some implementations of `apply_inverse_adjoint` may ignore this parameter. If `None` a solver-dependent default is used.

least_squares

If `True`, solve the least squares problem:

```v = argmin ||op^*(v) - u||_2.
```

Since for an invertible operator the least squares solution agrees with the result of the application of the inverse operator, setting this option should, in general, have no effect on the result for those operators. However, note that when no appropriate `solver_options` are set for the operator, most operator implementations will choose a least squares solver by default which may be undesirable.

Returns

`VectorArray` of the inverse adjoint operator evaluations.

Raises

InversionError

The operator could not be inverted.