Proper orthogonal decomposition

The Proper Orthogonal Decomposition is a numerical method commonly applied to the field of Finite Element Simulation.
It enables to reduce the complexity of compute intensive simulation such as Computational Fluid Dynamics and Structural Analysis (like Crash Simulation). 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:
formula_1
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:
formula_2 with n spatial elements, and p time samples
The next step is to compute the covariance matrix C
formula_3
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 Φ:
formula_4