Building a POD Reduced-Order Model
Compress a set of simulation snapshots into a handful of proper-orthogonal-decomposition modes and quantify the energy each mode captures.
Problem
Proper orthogonal decomposition (POD) finds an optimal low-dimensional basis for a collection of high-dimensional snapshots. Projecting the governing equations onto a few dominant modes yields a reduced model that runs orders of magnitude faster than the full simulation.
Snapshots to modes
Stack snapshot vectors as columns of a matrix A. The singular value decomposition A = U S V' gives POD modes in the columns of U, ranked by singular value. The squared singular values measure how much variance, or energy, each mode captures.
import numpy as np
rng=np.random.default_rng(2)
# 50-dim field, 30 snapshots dominated by 2 spatial patterns
t=np.linspace(0,1,30); x=np.linspace(0,1,50)
m1=np.sin(np.pi*x)[:,None]*np.cos(2*t)[None,:]
m2=np.sin(2*np.pi*x)[:,None]*np.sin(3*t)[None,:]
A=m1+0.5*m2+0.01*rng.normal(size=(50,30))
U,S,Vt=np.linalg.svd(A,full_matrices=False)
energy=S**2/np.sum(S**2)
print(np.round(energy[:4],4)) # first two dominate
Result
The first two singular values hold nearly all the energy, matching the two physical patterns we planted. Keeping two modes reconstructs the field to within the noise floor, so a reduced model with two coordinates replaces the 50-dimensional state. The reconstruction error equals the sum of the discarded squared singular values.
- POD is optimal in the least-squares sense: no linear basis of the same size captures more snapshot energy.
- The method is data-driven and blind to physics, so extrapolating outside the snapshot regime is risky.
- Kronos uses POD surrogates of expensive transport and equilibrium runs to explore parameter space cheaply before committing to full simulations.