CFD for a better tomorrow

Recently, I had the pleasure of meeting the guys behind Yonah, a start up aiming to revolutionize healthcare in rural areas. As electric motor makers pack increasingly more power into smaller packages, a new class of hybrid VTOL/fixed wing UAVs have emerged in recent years. The concept is simple, slap on 4 VTOL propellers to a fixed wing aircraft to remove the dependence on runways, then transit to forward fixed wing flight as normal. Since the motors are small and light, they carry little penalty. The guys aim to use this technology to deliver medical supplies to remote villages where no run ways exist for conventional planes, and the terrain makes driving there long and arduous. You can check out their interview on Channel NewsAsia.

I really like the drive and enthusiasm showed by the team – If you wake up everyday knowing you are working towards improving the lives of others, who wouldn’t have that drive? – and decided to chip in with my limited knowledge.

Since they have access to the National Supercomputing Centre (NSCC),  I decided to characterize their aircraft on OpenFOAM, which was available there, and see what insights we can obtain. I was also pretty excited to be able to use the NSCC, which is such a computing behemoth.


The first order of business was to clean up the geometry and generate a mesh. As with all real engineering projects, the given geometry was very dirty with many small unnoticeable gaps. With my experience, I learn that some times it is better to keep only the large features/surfaces and delete everything else, then reconstruct the geometry from there.

Once we have a nice water tight geometry, the mesh was generated on Ansys Mesher. Care was taken to ensure the first layer was of the correct height using a y+ calculator, and we want to make sure we export the mesh in ASCII format.

OpenFOAM set up

Here comes the tricky bit. The learning curve with OpenFOAM is notoriously steep, which is the price you pay for a free software. However, I believe in understanding every single input one puts into a CFD analysis. Sometimes using commercial software without practicing mindfulness causes one to treat it like a black box and we lose touch with the fundamentals.

For me the trickiest part is in setting the correct boundary conditions. Since the domain is an external flow problem, we can use the freestream boundary for velocity and the matching freestreamPressure for pressure. The freestream boundary look at the local flow conditions and decide whether to impose a velocity (if inflow) or zero gradient (if outflow). It is actually inletOutlet under the hood.

As we are using a high y+ mesh to save on cell count, one needs to use the wall functions. We are also using k-omega SST turbulence model. Typically one sets the turbulence intensity (I) and turbulent viscosity (\nu_t) ratio at the boundaries. A turbulence intensity of 1% is a good value to use for external flow and from there,

    \begin{align*} I=\frac{u'}{U}=\frac{\sqrt{\frac{1}{3}\left(u'_x^2+u'_y^2+u'_z^2\right)}}{\sqrt{U_x^2+U_y^2+U_z^2}} \quad \Rightarrow \quad k = \frac{1}{2}\left(u'_x^2+u'_y^2+u'_z^2\right) = \frac{3}{2}\left(IU\right)^2 \end{align*}

Since \nu_t=k/\omega, the specific dissipation rate at the boundary is calculated with:

    \begin{align*} \omega=\frac{k/\nu}{\nu_t/\nu} \end{align*}

With a typical \nu_t/\nu value of 10, one easily obtains k and \omega value at the boundaries. The quoted I=1\% and \nu_t/\nu=10 were taken from Fluent’s gudelines. Similar to the freestream boundary for velocity, we use inletOutlet for both k and \omega.

Now, at the walls, we have to use kqRWallFunction and omegaWallFunction to invoke the wall functions for our high y+ mesh. However, one still needs to set an initial value. For k, it is straight forward. Since it is a no slip wall, k_{wall}=0. As for \omega, the following relation was found for the viscous sublayer:

    \begin{align*} \omega_{visc}=\frac{6\nu}{\beta y^2} \end{align*}

Where y is the centroid distance to the wall and \beta is a constant of 0.075. As we get closer and closer to the wall, \omega_{visc} approaches infinity, and we can just put a very large number for it.


Thanks to the amazing power of the NSCC, I was able to get an entire polar within a couple of hours. We were able to gain some insights into the design as explained in the project page.

Leave a reply

Your email address will not be published.