# `pymor.algorithms.pod`¶

## Module Contents¶

pymor.algorithms.pod.pod(A, product=None, modes=None, rtol=1e-07, atol=0.0, l2_err=0.0, method='method_of_snapshots', orth_tol=1e-10)[source]

Proper orthogonal decomposition of `A`.

Viewing the `VectorArray` `A` as a `A.dim` x `len(A)` matrix, the return values of this method are the `VectorArray` of left singular vectors and a `NumPy array` of singular values of the singular value decomposition of `A`, where the inner product on R^(`dim(A)`) is given by `product` and the inner product on R^(`len(A)`) is the Euclidean inner product.

Parameters

A

The `VectorArray` for which the POD is to be computed.

product

Inner product `Operator` w.r.t. which the POD is computed.

modes

If not `None`, at most the first `modes` POD modes (singular vectors) are returned.

rtol

Singular values smaller than this value multiplied by the largest singular value are ignored.

atol

Singular values smaller than this value are ignored.

l2_err

Do not return more modes than needed to bound the l2-approximation error by this value. I.e. the number of returned modes is at most

```argmin_N { sum_{n=N+1}^{infty} s_n^2 <= l2_err^2 }
```

where `s_n` denotes the n-th singular value.

method

Which SVD method from `svd_va` to use (`'method_of_snapshots'` or `'qr_svd'`).

orth_tol

POD modes are reorthogonalized if the orthogonality error is above this value.

Returns

POD

`VectorArray` of POD modes.

SVALS

One-dimensional `NumPy array` of singular values.