Portfolio

Project writeups - Aerodynamics, Cooling and CFD Workflow Development at Monash Motorsport.

Dulvin Bandara dulvinb@gmail.com LinkedIn
Project 01

Accumulator cooling — ducting design and CFD

Monash Motorsport · Senior Aerodynamics Engineer, Head of Cooling subsection · Ansys Fluent 25R1, PyFluent, M3 MASSIVE HPC · 2026

The M26 accumulator is a 120s1p, 6.38 kWh air-cooled pack. Cooling exists so the pack can run a full endurance duty cycle at reduced capacity. PACSIM simulations showed a 4.8 kWh pack matching the endurance performance of a heavier uncooled pack, corresponding to 9.4 kg of cell mass. With mass a high-sensitivity parameter in the points model, the cooled system is a significant net gain in car performance.

The catch is that airflow has to be drawn from somewhere on the car, and the ducting competes for volume with the side diffuser and undertray. The first cooling configuration made that cost visible: side diffuser CLA fell from 1.369 to 0.963 and undertray from 0.980 to 0.686 against a sealed-duct reference. The enclosed duct was choking the underfloor rather than simply adding drag.

Reworking the ducting

I replaced the enclosed duct with a more open arrangement, using turning vanes to guide air into the cooling circuit rather than forcing it through a constricted passage. Across the design iteration the cooling package went from 4.406 to 5.174 CLA — around 17% — with aero balance landing on 50.0% and CDA slightly down. Guiding air in via vanes rather than forcing it through a duct also reduces water ingress into the accumulator, without the external hardware a mesh screen would have required.

+0.768CLA, initial to final cooling configuration
+0.367Side diffuser CLA recovered
+0.189Undertray CLA recovered
50.0%Aero balance, final configuration

Side diffuser and undertray account for roughly 72% of that recovery, which is where an enclosed duct would be expected to hurt. Remaining configuration differences — rad fan operation and the inverter shelf — mean the gain is attributable to the design iteration as a whole rather than to the vanes in isolation.

Flow through the monocoque

A separate result came from comparing the sealed-duct reference against the flowing configuration on otherwise identical geometry. Monocoque CLA moved from −0.269 sealed to −0.028 with air passing through it, a gain of 0.241 on that component alone.

Sealed, the duct inlet is a stagnation region — air arrives at a dead end and spills into the surrounding flow field, loading the monocoque unfavourably. Opening the circuit lets that flow be swallowed and routed instead of pushed out. It is a useful counter to the assumption that cooling ducts are purely an aero cost: on this car the flow path pays back part of what it takes.

Internal cooling design

Inter-cell duct width was selected by intersecting system pressure-drop curves with the fan curve across candidate air gaps. Narrower gaps raise thermal performance but push the operating point past what the fan can deliver; the 5 mm gap sits where the fan curve and system curve cross at a usable mass flow. Segment-level and whole-accumulator models validated the packaged design against the team's thermal targets, with CFD pressure drop tracking hand-calculated predictions to within 20%.

<20%CFD vs hand-calc pressure drop agreement
5 mmSelected inter-cell air gap
2.81 K/WCell surface to air, at operating point
0.197 W/KTotal pack cooling, against 0.2 target

Simulation setup

Half-car model with symmetry, ground effect and rotating wheels, 35.5M cells in the final configuration. Three internal fan circuits — radiator, rear brake heat and accumulator internal — are represented by pressure-jump boundary conditions rather than resolved blade geometry. I derived those polynomials from manufacturer fan curves and confirmed stable operating points by hand before committing HPC time, then brought the fans up through a staged α-ramp, scaling all polynomial coefficients together so the equilibrium root is preserved while the surrounding field develops. [Turbulence model — add here.]

Scope: the thermal resistance modelling and cooling-method trade study (cell body vs tab vs PCM) were produced by teammates in the electrical powertrain group, and the mesh independence study by a peer. My contribution was the duct design, the CFD setup and boundary conditions, and the meshing and solver debugging.

Project 02

Production CFD pipeline — PyFluent on HPC

Monash Motorsport · Ansys Fluent 25R1, PyFluent, SLURM, M3 MASSIVE cluster · 2026

[Describe the pipeline in 2–3 sentences: what it automates, why it exists, and what it replaced. The migration from journal files to version-controlled PyFluent, scripted case setup, batch submission through SLURM, and automated post-processing.]

Integrating cooling into this pipeline required deriving fan boundary conditions as a pressure-jump polynomial from the manufacturer fan curve, so fan discs could be represented without resolving blade geometry.

238Cases per campaign
35.5MMesh cell count, typical case
54%Runtime reduction

Getting it to mesh

The pipeline repeatedly failed at volume meshing: tetrahedral initialisation died across all partitions, followed by a segmentation fault — an unhelpful failure mode, since the crash is well downstream of the cause.

Working back through the transcript, the intersection warnings clustered at y = 0.000000 exactly, inside the radiator fan region. The cause was topological rather than dimensional: the fan and superwall geometry and the main car had been wrapped independently, producing two different triangulations occupying the same plane at symmetry with no shared nodes. A tet mesher cannot initialise through non-conformal coincident surfaces.

Matching the wrap resolutions would not have fixed this, and refining them would have produced more intersection events, not fewer. The fix was to make the interface conformal — joining the coincident face zones and merging duplicate nodes — keeping the duct sealed at the centreline rather than trading the problem for a leak path or a band of sliver cells.

Project 03

Wind tunnel testing — ACSA

[Context] · [Dates]

[What was tested, your role in it, and what the CFD-to-tunnel correlation showed. State the configurations run, what was instrumented, and where CFD and tunnel agreed or diverged — divergence you can explain is more convincing than agreement you can't.]

Project 04

Rear wing — FSAE-A

Monash Motorsport · [Year]

[The design brief and constraints, your contribution, and how the ClA 3.14 figure translated to the 10.27-point dynamic event gain. Note co-design scope explicitly.]

3.14ClA
10.27Dynamic event points gained
Tools

CFD and simulation

Ansys Fluent 25R1 · PyFluent scripting · SLURM / HPC batch workflows · mesh generation and convergence · boundary condition derivation · MATLAB post-processing

Thermal

Conjugate heat transfer setup · duct and internal flow · fan curve and system curve matching · CFD-to-rig-test validation

Design and CAD

Siemens NX · duct and packaging geometry · cooling system integration into vehicle architecture