# Proper orthogonal decomposition

The proper orthogonal decomposition is a numerical method that enables a reduction in the complexity of computer intensive simulations such as computational fluid dynamics and structural analysis (like crash simulations). Typically in fluid Dynamics and turbulences analysis, it is used to replace the Navier-Stokes equations by simpler models to solve.

It belongs to a class of algorithms called model order reduction (or in short model reduction). What it essentially does is to train a model based on simulation data. To this extent, it can be associated with the field of machine learning.

## POD and PCA

The main use of POD is to decompose a physical field (like pressure, temperature in fluid dynamics or stress and deformation in structural analysis), depending on the different variables that influence its physical behaviors. As its name hints, it's operating an Orthogonal Decomposition along with the Principal Components of the field. As such it is assimilated with the Principal Component Analysis from Pearson in the field of statistics, or the Singular Value Decomposition in linear algebra because it refers to eigenvalues and eigenvectors of a physical field. In those domains, it is associated with the research of Karhunen and Loève, and their Karhunen–Loève theorem.

## Mathematical expression

The first idea behind the Proper Orthogonal Decomposition (POD), as it was originally formulated in the domain of fluid dynamics to analyze turbulences, is to decompose a random vector field u(x, t) into a set of deterministic spatial functions Φk(x) modulated by random time coefficients ak(t) so that:

$u(x,t)=\sum _{k=1}^{\infty }a_{k}(t)\phi _{k}(x)$

The first step is to sample the vector field over a period of time in what we call snapshots (as display in the image of the POD snapshots). This snapshot method is averaging the samples over the space dimension n, and correlating them with each other along the time samples p:

$U={\begin{pmatrix}u(x_{1},t_{1})&...&u(x_{n},t_{1})\\...&&...\\u(x_{1},t_{p})&...&u(x_{n},t_{p})\end{pmatrix}}$  with n spatial elements, and p time samples

The next step is to compute the covariance matrix C

$C={\frac {1}{(p-1)}}U^{T}U$

We then compute the eigenvalues and eigenvectors of C and we order them from the largest eigenvalue to the smallest.

We obtain n eigenvalues λ1...λn and a set of n eigenvectors arranged as columns in an n × n matrix Φ:

$\phi ={\begin{pmatrix}\phi _{1,1}&...&\phi _{1,n}\\...&&...\\\phi _{n,1}&...&\phi _{n,n}\end{pmatrix}}$