← Project library

Overview

I extended DualSPHysics, an open-source smoothed particle hydrodynamics (SPH) solver, in C++/CUDA. The project introduced surface-tension and aerodynamic-drag effects for GPU-accelerated automotive rainwater simulations.

The work formed part of a collaboration between SAIC Volkswagen and Northwestern Polytechnical University. I led a team of four, working on model implementation and code structure, with academic supervision from Prof. Zhe Ji.

Engineering problem

Rainwater can travel along a vehicle surface and enter areas where it causes an unwanted experience. One example is opening a wet trunk after rainfall. Predicting this motion helps engineers assess water-management behavior during design.

Simulated water paths on a vehicle body

Water trajectories over the vehicle body.

Aerodynamic drag

The air-drag extension enabled one-way air–water coupling. The implementation calculates particle drag using the exposed area and the local flow information. The algorithm includes a treatment of occluded area when estimating the area exposed to the surrounding air.

Algorithm for computing drag force on SPH particles

Particle drag calculation, including exposed area and occlusion.

The comparisons below examine the effect of including air drag in a falling droplet and an injected water jet.

Comparison of falling-droplet velocity with and without air drag

Droplet velocity and terminal-velocity comparison. Comparison of an injected water jet with and without air drag

Water-jet trajectories with and without air drag.

Surface tension and wetting

I also implemented surface-tension effects and calibrated contact angles using a droplet-on-plate case. These tests check the wetting behavior before applying the model to a vehicle surface.

60° contact angle90° contact angle120° contact angle
Droplet at 60 degreesDroplet at 90 degreesDroplet at 120 degrees

Water movement during trunk opening

Water movement on the trunk surface during opening.

Methods

DualSPHysics, C++, CUDA, SPH, surface tension, wetting, and particle drag. The figures document the implementation and its test cases.

Back to project library