A comparative CFD study using OpenFOAM 12 (foamRun / incompressibleFluid) to evaluate two sheet insert geometries — chevron and teardrop — for mitigating flow maldistribution in a laminar channel flow.
Flow maldistribution (non-uniform velocity across a cross-section) reduces the effectiveness of heat exchangers, reactors, and filtration systems. This study evaluates surface-mounted protrusions on a thin sheet as passive flow distributors.
| Case | Insert Geometry | Description |
|---|---|---|
laminar_sheet_chevron |
Triangular chevron | Sharp apex pointing upstream, 120 mm wide × 200 mm long × 10 mm tall |
laminar_sheet_teardrop |
Biconvex teardrop | Streamlined lens shape (intersection of 2 circles r=145 mm), 10 mm tall |
Both cases share identical flow conditions:
- Channel: 200 mm × 1000 mm, height 97 mm
- Fluid: Air, ν = 1.563 × 10⁻⁵ m²/s
- Inlet: Uniform U = 0.5 m/s
- Re ≈ 3.2 (deeply laminar)
- Mesh: ~142,000 cells (snappyHexMesh, surface refinement level 2)
- End time: 10 s
| Metric | Chevron | Teardrop | Winner |
|---|---|---|---|
| Velocity Uniformity Index (γ) | 0.7263 | 0.7269 | Teardrop |
| Coefficient of Variation (CoV) | 0.4510 | 0.4496 | Teardrop |
| Stagnation fraction | 7.55% | 5.39% | Teardrop −29% |
| Max lateral spread (Ux) | 0.099 m/s | 0.157 m/s | Teardrop +58% |
| Max vertical mixing (Uz) | 0.092 m/s | 0.137 m/s | Teardrop +50% |
| Pressure drop | 0.122 Pa | 0.113 Pa | Teardrop −7.4% |
→ Teardrop wins 6–1. The streamlined biconvex shape avoids the blunt-body separation wake that the sharp chevron creates, resulting in better lateral redistribution, less stagnation, and lower pressure penalty.
See cfd_maldistribution_report.md for detailed analysis including velocity distributions, pressure field stats, physical interpretation, and design recommendations.
The insert geometries are defined in OpenSCAD:
├── laminar_sheet_chevron/ # Chevron insert case
│ ├── 0/ # Initial conditions (U, p, T)
│ ├── constant/ # Physical properties, mesh
│ ├── system/ # controlDict, fvSchemes, fvSolution, snappyHexMeshDict
│ └── sheet_chevron.scad # Insert geometry (OpenSCAD)
├── laminar_sheet_teardrop/ # Teardrop insert case
│ ├── 0/ # Initial conditions (U, p, T)
│ ├── constant/ # Physical properties, mesh
│ ├── system/ # controlDict, fvSchemes, fvSolution, snappyHexMeshDict
│ └── teardrop.scad # Insert geometry (OpenSCAD)
├── cfd_maldistribution_report.md # Detailed postprocessing report
├── cfd_maldistribution_analysis.png # Comparative plots
└── README.md
Note: Time-step field data (U, p, phi) and zip archives are excluded via
.gitignoredue to file size.
- OpenFOAM 12
- OpenSCAD (geometry generation)
goatnath — 2026
