Back to all tutorials

Car - CFD Simulation SimFlow Tutorial


1. Introduction

This tutorial presents a typical approach to external aerodynamic analysis. It considers a steady-state analysis for car body aerodynamic performance. The simulation includes symmetry conditions to reduce the size of the domain, modeling of turbulence, boundary conditions, and baseline postprocessing features.

2. Download SimFlow

SimFlow is a general purpose CFD Software

To follow this tutorial, you will need SimFlow free version, you may download it via the following link:
Download SimFlow

3. Create Case

Open SimFlow and create a new case named car

  1. Click New
  2. Provide name car
  3. Click Create to open a new case

4. Import Geometry

Firstly we need to Download GeometryCar_body

  1. Click Import Geometry
  2. Select geometry file car_body.stl
  3. Click Open
car 2 import geometry

5. Imported Geometry Units

The STL geometry format does not store the unit in which the geometry was created. Geometry size shows the overall size of the model in each direction, what should help to choose the correct unit. In ours case, the default unit meter is correct.

  1. To confirm default unit meter, press OK
car 2 unit

6. Geometry - Car Body

After importing geometry, it will appear in the 3D window

  1. Click Fit View to zoom in on the geometry
car 3 geometry car body

7. Meshing Properties - Car Body

After geometry is loaded, we can proceed to define meshing properties. To better resolve the flow around the car body, we want to refine mesh near the car geometry by specifying minimum and maximum refinement levels.

  1. Go to Hex Meshing panel
  2. Select car_body geometry
  3. Enable Meshing Geometry
  4. Refine mesh near the surface of the car_body
    Refinement Min 3 Max 5
car 4 hex meshing geometry

8. Base Mesh

Base Mesh is a domain mesh of our simulation from which the final mesh will be created by carving out the geometry of the car.

  1. Go to Base tab
  2. Define base mesh parameters accordingly
    Min \({\sf [m]}\)-600
    Max \({\sf [m]}\)1468
  3. Set the division of the base mesh
car 5 hex meshing base

9. Base Mesh Boundaries

We need to assign individual names to each side of the base mesh in order to be later able to define different conditions on each side.

  1. Define boundary names accordingly
    X- inlet
    X+ outlet
    Y- bottom
    Y+ top
    Z- symmetry
    Z+ right
  2. 3 Define boundary types accordingly
    Y- wall
    Z- symmetry
car 6 initial boundary conditions

10. Material Point

Material Point tells the meshing algorithm on which side of the geometry the mesh is to be retained. We are modeling car aerodynamics so our material point needs to be located inside the Base Mesh but outside the car body.

  1. Go to Point tab
  2. Specify location inside base mesh but outside car geometry
    Material Point032
car 7 material point

11. Start Meshing

Everything is now set up for meshing

  1. Go to Mesh tab
  2. Press Mesh button to start meshing process
car 8 meshing

12. Mesh

After meshing is finished, the new mesh will be displayed in the graphics window. To show the mesh of the car body we can use the Graphics Object List.

  1. Click Graphics Object List icon
  2. Select Mesh to show meshes list
car 9 mesh

13. Mesh - Toggle Visibility

You can hide domain boundaries to inspect the mesh on the car body.

  1. 2 Hide the following objects
car 10 toggle visibility

14. Select Solver - SIMPLE

We want to analyze incompressible turbulent flow around the car body. For this purpose, we will use the SIMPLE (simpleFoam) solver.

  1. Go to Setup panel
  2. Enable Steady State filter
  3. Enable Incompressible filter
  4. Select SIMPLE (simpleFoam) solver
  5. Select solver
car 11 select solver

15. Turbulence

We are going to use the standard \(k{-}\omega \; SST\) model to handle turbulence. This model gives very good agreement with experimental data and is commonly used for aerodynamics applications.

  1. Go to Turbulence panel
  2. Select turbulence model
    Turbulence Modelling RANS
  3. Change default turbulence model
    Model \(k{-}\omega \; SST\)
car 12 turbulence

16. Boundary Conditions - Bottom (Flow)

We are simulating a car moving on a road. In this reference frame, the road has to move with respect to the car. We can achieve this by applying fixed velocity boundary condition on the bottom of the domain.

  1. Go to Boundary Conditions panel
  2. Select bottom boundary
  3. 4 Set velocity
    UTypeFixed Value
    UValue \({\sf [m/s]}\)2000
car 13 boundary conditions bottom flow

17. Boundary Conditions - Inlet (Flow)

On the inlet, we are going to apply constant velocity, similarly to the bottom .

  1. Select inlet boundary
  2. Change boundary character
    inlet Velocity Inlet
  3. Define inlet velocity
    UReference Value \({\sf [m/s]}\)20
car 14 boundary conditions inlet flow

18. Boundary Conditions - Inlet (Turbulence)

We are simulating a car moving in otherwise stationary air. Therefore, we specify low turbulence intensity on the inlet.

  1. Go to Turbulence boundary conditions tab
  2. 3 Set the following parameters accordingly
    kIntensity \({\sf [-]}\)5e-03
    \(\omega\)Mixing Length \({\sf [m]}\)1e-03
car 15 boundary conditions inlet turbulence

19. Boundary Conditions - Right (Flow)

On the right and top boundary, we are going to force velocity to be tangent to the boundary.

  1. Select right boundary condition
  2. Go to Flow tab
  3. 4 Define slip wall condition
    TypepZero Gradient
car 16 boundary conditions right flow

20. Boundary Conditions - Right (Turbulence)

  1. Go to Turbulence tab
  2. 3 Change turbulent kinetic energy and frequency types to
    TypekZero Gradient
    Type\(\omega\)Zero Gradient
car 17 boundary conditions right turbulence

21. Boundary Conditions - Top (Flow)

We need to repeat the same steps to the top boundary condition

  1. Select top boundary condition
  2. Go to Flow tab
  3. 4 Define slip wall condition
    TypepZero Gradient
car 18 boundary conditions top flow

22. Boundary Conditions - Top (Turbulence)

  1. Go to Turbulence tab
  2. 3 Change turbulent kinetic energy and frequency types
    TypekZero Gradient
    Type\(\omega\)Zero Gradient
car 19 boundary conditions top turbulence

23. Monitors - Forces

We want to monitor the simulation process by observing plots of the aerodynamic forces on the car

  1. Go to Monitors panel
  2. Go to Forces tab
  3. Enable observing forces on the car_body boundary
    Monitored Boundaries car_body
car 20 monitors forces

24. Run Simulation

  1. Go to Run panel
  2. Set maximal number of iteration that solver can perform before stopping
    Number of Iterations200
  3. Click Run Simulation button

Estimated computation time: 2 minutes

car 21 run simulation

25. Monitor Forces

During the simulation, we can observe whether forces on the car body stabilize which will mean that our simulation converges

car 22 monitor solution

26. Postprocessing - ParaView

After the simulation is finished, we can proceed to post-processing

  1. Go to Postprocessing panel
  2. Start ParaView
car 23 paraview postprocessing

27. ParaView - Load Results

  1. Make sure you have your case selected car.foam
  2. Click Apply to load results
car 24 paraview load results

28. ParaView - Set View Direction

After loading results, we have to rotate the domain or change view direction to see the car.

  1. Click Set view direction to +Z
car 25 paraview set view direction

29. ParaView - Display Velocity

We will now display velocity (U) contours.

  1. Load latest results by clicking Last Frame icon
  2. Select U (velocity) from the dropdown menu
  3. Click Rescale to data range
car 26 paraview display velocity

30. ParaView - Coloring (I)

We can change the coloring scheme in ParaView to have nicer colors.

  1. Click Edit Color Map from the menu placed on the left side, if the panel is not already shown.
  2. Select Choose Preset from the Color Map Editor placed by default on the right side of the ParaView
car 27 paraview coloring 1

31. ParaView - Coloring (II)

We can now select a new Color Preset.

  1. Select jet preset
  2. Apply changes
  3. Close the window
car 28 paraview coloring 2

32. ParaView - Coloring (III)

Now we can see the results with the new preset applied. We can also modify the number of displayed colors to see the results better.

  1. Decrease color scale resolution to make velocity regions more distinguishable (non-smooth color transition)
    Number of Table Values 20
car 29 paraview coloring 3

33. ParaView - Import Geometry

To display results on the original geometry, we can import the geometry directly into ParaView.

  1. Click Open and select the original car_body.stl geometry to import it into ParaView.
  2. Click on the Visibility icon to show the geometry.
car 30 paraview import geometry

34. ParaView - Final Results

Now we can see the final results with the original geometry.

car 31 final results

35. Advanced Postprocessing with ParaView

This concludes the tutorial, covering all the aspects we intended to showcase. For a finely tuned presentation of the results, you may take advantage of the more advanced features.

In ParaView, you can display streamlines, contour plots, vector fields, line or time plots, calculating volume or surface integrals and create animations.

To familiarize yourself with the ParaView capabilities, it’s worth checking out our video tutorial, Paraview CFD Tutorial - Advanced Postprocessing in ParaView, in which we demonstrate some of the most commonly used post-processing techniques.