About Internships Research Projects Contact Resume
Back to Research

Undergraduate Research / Ongoing / Johns Hopkins University

Ship Wake CFD &
Dimensionality Reduction

AIRO Lab / LCSR / JHU Prof. Joseph Moore
OpenFOAM CFD POD / ROM Python SVD UAV Autonomy

Key Takeaways

The Problem

Landing a UAV on a moving ship is brutal. The superstructure creates turbulent wake, vortices, and unsteady pressure fields that destabilize the vehicle on final approach. Controllers need disturbance models, but ship-wake data is expensive and hard to get.

My research: generate high-fidelity CFD of ship wake flows, then compress them into models small enough for real-time control.

CFD wake simulation

CFD Pipeline

Everything runs in OpenFOAM. Ship geometry imported as STL, fluid domain built and refined around it.

blockMeshBase domain
snappyHexMeshRefinement
pimpleFoamLES transient
ExportVelocity fields
PODReduction

Solver: pimpleFoam with Large Eddy Simulation for unsteady turbulence. Mesh: ~2M hex-dominant cells, refined near hull and wake region. Numerics: Courant ≤ 0.5, adaptive timestep, parallelized across 13 cores.

Why Raw CFD Doesn't Work

The scale problem

Each run exports ~100 timesteps × 3 velocity components × 1M spatial points. That's 300 million numbers per simulation. Real-time control needs microsecond evaluations. The solution: extract the essential physics into a compact form.

POD: Proper Orthogonal Decomposition

POD decomposes flow fields into orthogonal spatial modes ranked by energy. The first few modes capture dominant physics; the rest can usually be dropped.

POD Decomposition
u(x,t) = ū(x) + Σk ak(t) · φk(x)

Where ū(x) is the mean flow, φk(x) are spatial modes, and ak(t) are temporal coefficients. Computed via SVD of the snapshot matrix. Typically, the first handful of modes capture >95% of flow energy, compressing down from millions of spatial vectors to dozens of coefficients.

Process: Stack velocity snapshots into matrix → subtract mean → SVD → keep top r modes → project onto reduced basis.

Verification

Key check: as wind speed (Reynolds number) increases, turbulence intensifies and more modes should be needed. I ran POD at multiple speeds and confirmed higher Re flows required more modes, matching the physics of turbulent energy distribution across scales.

Next Steps