The whole purpose of computational fluid dynamics (CFD) is to increase design efficiency and innovation. It’s about being able to test more designs, more easily and accurately, in less time than with traditional methods.
In other words, CFD simulation run times are very important. More speed and power means you can try out more designs and create a better product.
You can see where I’m going with this: not all CFD solutions are equal. The faster and more capable the system, the better the value to design teams.
This time, I want to share a motorcycle design simulation use case, similar to that previously benchmarked, to put those reasons in perspective.
Faster CFD makes faster vehicles
Vehicle simulation is often the first application CFD newcomers think of. A motorcycle or car becomes more efficient as it produces less drag. Designers, therefore, need to iterate and test vehicle body designs many times, to reduce drag as much as possible.
Faster CFD simulation allows design teams to test more iterations – and OpenFOAM on POWER8 has proved much faster than on Intel-based x86 servers. Up to 3 times faster in IBM Japan’s benchmark in fact, which compared OpenFOAM 2.3.0 running on:
- A POWER8 server with 3.4 GHz, 10-core P8 processor, 128 GB RAM, and 230 Gb/s memory bandwidth per socket
- An x86 server with 2.8 GHz, 15-core Intel Xeon E7-4890 v2 (Ivybridge) processor, 96 GB RAM, and 85 Gb/s memory bandwidth per socket
- And x86 server with 2.3 GHz, 18-core Intel Xeon E5-2699 v3 (Haswell) processor, 384 GB RAM, and 68 Gb/s memory bandwidth per socket
POWER8’s runtime advantage was achieved in spite of its fewer processor cores per socket.
A mesh of up to 100 million data points
For vehicle makers, OpenFOAM enables designers to easily convert their design models into meshes of geometric shapes for use in aerodynamic simulation.
Tools such as surfaceFeatureExtract, blockMesh, decomposePar, and snappyHexMesh are used in the first stage of simulation to ready the design for testing.
With the motorcycle design broken down into thousands of tiny finite elements, CFD simulation can be run on each element separately, and the results combined afterwards. Designers can choose mesh detail levels of between 1,000 and 100 million points, with more detail offering more accurate solutions but slower runtimes.
With a solution from OCF, tools can also be customised to fit a team’s workflow and other unique requirements – so processes are even more efficient.
Running the CFD simulations
After the mesh is created designers can use simpleFoam, one of the primary solving tools within OpenFOAM, to simulate flow and find the aerodynamic coefficients of the motorcycle at various velocities and pressures.
simpleFOAM is just one of several solving tools available as part of the open-source OpenFOAM platform. Another is pisoFOAM, which simulates transient behaviour, while the software’s developer community is continuously creating new plugins that add and improve functionality.
That’s the beauty of open-source and is probably a big reason OpenFOAM is so widely used throughout industry and academia.
OpenFOAM on POWER8 is up to 3 times faster
Results show OpenFOAM + POWER8 was between 1.5 and 3 times faster in solving various CFD problems than the two x86 systems.
POWER8’s advantage comes from its huge memory bandwidth, bigger cache, and simultaneous multi-threaded (SMT) processing.
Results also showed performance scales well on POWER8. As the number of server nodes increases so does processing efficiency.
A team designing motorcycles would, therefore, be able to test up to 3 times as many different models in the same time period, leading to more-evolved designs. Alternatively, they could choose to reduce time to market, simulating the same number of design iterations in less time.
Either way, the choice is clear. OpenFOAM on POWER8 provides faster, more open CFD. If you’d like to know more, read our OpenFOAM on POWER8 white paper.
Motorbike benchmark conducted by Tsuyoshi Kamenoue, IBM Japan
Motorbike simulation images source: http://www.rccm.co.jp/icem/pukiwiki/index.php?SnappyHexMesh