Foil¶
Flow around a tapered NACA0025 hydrofoil: planar PIV measurements on a fixed cross-section, paired with matched numerical simulations.
Visualizations¶
Key stats¶
| Item | Value |
|---|---|
n_traj |
99 × 2 (paired real + numerical) |
n_frame |
3990 |
| \(\Delta t\) | \(2.5\times 10^{-3}\) s |
| Resolution (real) | 128×256 |
| Resolution (sim) | 128×256 |
| Modalities (real) | \(u,v\) |
| Modalities (sim) | \(u,v,p\) |
| Memory | 335.64 GB |
Note
We use n_traj = X × 2 to indicate paired trajectories: X real-world and X numerical trajectories for the same scenario.
Physical parameters¶
- Airfoil: NACA0025 tapered hydrofoil (root chord 100 mm, tip chord 20 mm)
- Measurement plane: cross-section at \(z=50\) mm
- Angles of attack: {0°, 5°, 10°, 15°, 20°}
- Reynolds numbers: 19 discrete values spanning 2968–17031
HF Datasets format¶
This scenario is distributed as Hugging Face Datasets (Arrow) under foil/hf_dataset/ using a lazy-slicing architecture.
Data organization¶
real/— Arrow dataset containing complete real-world trajectoriesnumerical/— Arrow dataset containing complete numerical trajectories{train|val|test}_index_{real|numerical}.json— Index files defining splits
Schema (high level)¶
Each Arrow row stores one complete trajectory (all 3990 frames):
sim_id(string): trajectory identifier (e.g.,0_2968.h5)u,v(bytes): float32 arrays of shape(3990, H, W)— complete time seriesp(bytes; numerical only): float32 array(3990, H, W)vo(bytes): float32 array(3990, H, W)— vorticityx(bytes): float32 array(H, W)— spatial x-coordinate grid (time-invariant)y(bytes): float32 array(H, W)— spatial y-coordinate grid (time-invariant)t(bytes): float32 array(3990,)— time stampsshape_t(int): complete trajectory length (3990)shape_h,shape_w(int): spatial dimensions
Train/val/test splits are defined by the index JSON files, which map sample indices to (sim_id, time_id) pairs.
Eval splits & subsets¶
We provide two layers of splitting:
- Dataset split (
train/val/test): defined by{split}_index_{type}.jsonfiles. - Eval subset (
test_mode): an optional filter insideval/testto select trajectories by parameter regime.
The subset membership is defined by JSON mapping files (downloaded as "metadata"):
foil/in_dist_test_params_real.jsonfoil/out_dist_test_params_real.jsonfoil/remain_params_real.jsonfoil/in_dist_test_params_numerical.jsonfoil/out_dist_test_params_numerical.jsonfoil/remain_params_numerical.json
How to interpret these files and test_mode:
in_dist: in-distribution parameter settings (held out for evaluation).out_dist: out-of-distribution / boundary parameter settings (OOD generalization).seen: parameter settings used for training (defined byremain_params_*).unseen: parameter settings not used for training (union ofin_dist+out_dist).
Download¶
See Getting Started for full setup. Quick commands: