Freestream ──────────────────────────────────────►
┌─────────────────────────────────────┐
│ Fluid Domain │
└─────────────────────────────────────┘
500 K ──────► 600 K ──────► 700 K
●══════════════════════════●
Leading Trailing
Edge Edge
Compressible turbulent flat plate CFD simulation using the SU2 Python wrapper to impose a spatially varying wall temperature — demonstrating dynamic boundary condition control during runtime.
Typical CFD simulations use a constant wall temperature.
In this study, the temperature changes continuously along the plate.
The wall temperature is defined as:
where
| 📍 Plate Position | 🌡️ Temperature | 📊 Gradient |
|---|---|---|
| Leading Edge | 500 K | ░░░░░░░░░░ |
| Middle | 600 K | ░░░░░█████ |
| Trailing Edge | 700 K | ██████████ |
This represents a heated plate with increasing temperature downstream, similar to many thermal engineering and aerospace applications.
| ⚙️ Parameter | 📋 Value |
|---|---|
| Solver | RANS |
| Turbulence Model | k–ω SST |
| Flow Type | Compressible |
| Mach Number | 0.03059 |
| Freestream Temperature | 293.15 K |
| Freestream Pressure | 101,325 Pa |
Instead of defining wall temperature in the .cfg file, the Python wrapper updates the boundary condition every time step:
s = float(iVertex) / float(nVertex_CHTMarker)
WallTemp = 500.0 + 200.0 * s
SU2Driver.SetMarkerCustomTemperature(CHTMarkerID, iVertex, WallTemp)Every node on the plate receives a different temperature value depending on its location — enabling fully dynamic boundary condition control at runtime.
SU2 Time Step Begins
│
▼
Python loops over all wall nodes
│
▼
Computes s = iVertex / nVertex (0 → 1)
│
▼
WallTemp = 500 + 200 × s
│
▼
SetMarkerCustomTemperature(node, WallTemp)
│
▼
SU2 solves with updated BCs
│
▼
Next Time Step ──────────────► repeat
Flat plate mesh generated using quadrilateral elements with expected boundary layer formation along the plate.
Freestream
──────────────────────────────────►
┌──────────────────────────────────┐
│ │
│ Fluid Domain │
│ │
└──────────────────────────────────┘
════════════════════════════════════
Flat Plate
500 K ──────────────► 700 K
python launch_unsteady_CHT_FlatPlate.py -f unsteady_CHT_FlatPlate_Conf.cfg| 🔍 Observation | 💡 Description |
|---|---|
| 📏 Boundary Layer | Develops continuously along the flat plate |
| 🌡️ Temperature Gradient | Induces heat transfer along the surface |
| 🌀 Turbulence Capture | SST model accurately captures near-wall behavior |
| 🐍 Python Control | Wrapper enables dynamic boundary condition updates per step |
This type of simulation is useful for:
| 🏭 Field | 🎯 Application |
|---|---|
| 🚀 Rocket Engineering | Nozzle cooling analysis |
| Turbine blade thermal studies | |
| 🛸 Hypersonics | Vehicle surface heating prediction |
| 🔁 Heat Transfer | Conjugate heat transfer studies |
| 🔧 Tool | 💡 Purpose |
|---|---|
| SU2 | CFD solver |
| Python | Boundary condition control at runtime |
| ParaView | Flow field visualization |
Mechanical Engineering
🛩️ Aerodynamics | 💻 CFD | 🚀 Rocket Propulsion | ⚡ High-Performance Simulation
Based on the SU2 Python wrapper tutorial example from the SU2 Foundation.
🌡️ From 500 K to 700 K — one plate, one gradient, infinite possibilities.
Built with ❤️ using SU2 + Python | Dynamic Boundary Condition Control via Python Wrapper