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, return_reduced_coefficients=False)[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. If desired, also the right singular vectors, which correspond to the reduced coefficients of A w.r.t. the left singular vectors and singular values, are returned.

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.

  • return_reduced_coefficients – Determines whether or not to also return the right singular vectors, which determine the reduced coefficients.

Returns:

  • PODVectorArray of POD modes.

  • SVALS – One-dimensional NumPy array of singular values.

  • COEFFS – If return_reduced_coefficients is True, a NumPy array of right singular vectors as conjugated rows.