2. POD for Proper Orthogonal Decomposition

2.1. What is it?

The Proper Orthogonal Decomposition (POD) is a technique used to decompose a matrix and characterize it by its principal components which are called modes [AnindyaChatterjee2000]. To approximate a function \(z(x,t)\), only a finite sum of terms is required:

\[z(x,t) \simeq \sum_{k=1}^{m} a_k(t) \phi_k(x).\]

The function \(\phi_{k}(x)\) have an infinite representation. It can be chosen as a Fourier series or Chebyshev polynomials, etc. For a chosen basis of function, a set of unique time-functions \(a_k(t)\) arise. In case of the POD, the basis function are orthonormal. Meaning that:

\[\begin{split}\int_{x} \phi_{k_1} \phi_{k_2} dx &= \left\{\begin{array}{rcl} 1 & \text{if} & k_1 = k_2 \\ 0 & \text{if} & k_1 \neq k_2\end{array}\right. ,\\ a_k (t) &= \int_{x} z(x,t) \phi_k(x) dx.\end{split}\]

The principle of the POD is to choose \(\phi_k(x)\) such that the approximation of \(z(x,t)\) is the best in a least squares sense. These orthonormal functions are called the proper orthogonal modes of the function.

When dealing with CFD simulations, the size of the domain \(m\) is usually smaller than the number of measures, snapshots, \(n\). Hence, from the existing decomposition methods, the Singular Value Decomposition (SVD) is used. It is the snapshots methods [Cordier2006].

The Singular Value Decomposition (SVD) is a factorization operation of a matrix expressed as:

\[A = U \Sigma V^T,\]

with \(V\) diagonalizes \(A^TA\), \(U\) diagonalizes \(AA^T\) and \(\Sigma\) is the singular value matrix which diagonal is composed by the singular values of \(A\). Knowing that a singular value is the square root of an eigen value. \(u_i\) and \(v_i\) are eigen vectors of respectively \(U\) and \(V\) which form an orthonormal basis. Thus, the initial matrix can be rewritten:

\[A = \sum_{i=1}^{r} \sigma_i u_i v_i^T,\]

\(r\) being the rank of the matrix. If taken \(k < r\), an approximation of the initial matrix can be constructed. This allows to compress the data as only an extract of \(u\) and \(v\) need to be stored.