Simulating
Now that we have a mesh, we can setup the actual simulation. This is where we input what we know about the problem and let the computer solve for the unknown values within the domain.
Materials
In the navigation panel, locate Materials (Should be right below the mesh settings, we’ll fill out most settings in order from top to bottom) and add one by clicking on the plus sign to the right of it. Select Air, then Apply, and in the panel that pops up ensure that this material is assigned to the BoundingVolume. Save by clicking on the check mark near the top right of that panel.
The default density and viscosity should be fine, although if you want to be more precise you could look up density and viscosity values at racing temperatures and use those.
Initial Conditions
Initial conditions are the starting values in the domain. The closer the initial conditions are to the result values, the less time the simulation will take to solve. You should have an idea of what values you’re expecting but if you don’t know or don’t care to estimate them, you can leave the default values as they are. Expand the Initial conditions section by clicking the plus sign in a box on the left. Gauge pressure can probably be left as zero. For velocity most of our simulations were run at 20 m/s (but if you are interested in a different speed simply use your speed instead). This means that most of the domain will have air moving close to a speed of 20 m/s, with some regions with faster moving air and other regions with slower moving air. So I use an initial velocity of -20 m/s in the z direction. For κ and ω, there are ways to estimate these values that can be found online. The first estimate that I found gave values of 0.303 m2/s2 and 2.871 s-1, however I have also seen an estimate that gives values closer to 4e-4 m2/s2 and 20 s-1. Both sets of values work, although the 2nd set of values are supposedly more appropriate for external aerodynamics, according to the source that published them.
Boundary Conditions
Boundary conditions are conditions that stay constant during the simulation. Every surface needs a boundary condition to solve the system, so we’ll create 6. Create a Velocity inlet, a Pressure outlet, 3 Walls, and a Symmetry condition.
Velocity inlet 1: Set Uz = -20 m/s and assign it to the Zmax domain face (in front of the car).
Pressure outlet 2: Keep P = 0 and assign it to the Zmin face (behind the car).
Wall 3: This is the road. Change the Velocity from No-slip to Moving wall, set Uz = -20 m/s, and assign it to the Ymin face (below car).
Wall 4: This wall condition is going to be used for the face above the car and the face beside the car. I’ve seen this done in several different ways, but the way I’ll include here is to use a Slip wall (Change the Velocity setting from No-slip to Slip). Assign it to the Ymax and Xmax faces.
Wall 5: This is the car itself. This will be left as a No-slip wall, since we want to include the effects of the boundary layer. This is also where you can choose between Wall functions or Full resolution. The mesh I created in this guide was intended for wall function modelling, so that setting can be left as is. Assign this condition to all of the car faces.
Symmetry 6: This is the symmetry plane, all that needs to be done is assign it to the Xmin face (the face running down the center of the car).
It should be noted that, like the initial conditions, there are default boundary condition settings. These aren’t explicitly shown but running a simulation without assigning a boundary condition to a face will cause that face to be treated as a no-slip wall.
Advanced Concepts and Numerics
Advanced concepts aren’t needed for simple simulations. These will only be needed for rotating wheels, ventilation fans, or other complicated features.
Numerics is another section that I would consider as advanced settings. The defaults are selected to work for a broad range of simulations, and you shouldn’t need to make changes often.
Simulation Control
Simulation control is where we tell the program how long to run the simulation for, along with a few other things. An End time of about 1000 s is usually okay, for a lot of simulations I used 750 s or 800 s to get results faster. The Write interval can usually be matched to the End time, unless you want to see the results at multiple time points. 2e+4 s or 2.5e+4 s should be fine for the Maximum runtime. If it takes a little longer, that’s also fine. I have always used Potential flow initialization, as I have had simulations diverge frequently without it. With that being said, I tested this feature a while ago and I’ve changed several things since then so it may not be needed anymore. The rest of the settings can stay as defaults.
Result Control
This is where we tell the program what quantities to save and report. Add a Forces and moments control and assign it to the car faces. We’re more interested in the total forces acting on the car than the moments acting on the car so don’t worry about setting an accurate center of mass. Of course if you have a good estimate for the center of mass, feel free to add it as that will give you a better estimate of the moments acting on the vehicle. The default write settings should be fine. Now add a Wall shear stress control under Field calculations. This is to help measure viscous forces on the car. You could also add any other controls if you’re interested in those results.
Simulation Runs
Now add a simulation run. If you anticipate running multiple simulation runs, try to give each run a descriptive name. The simulation usually takes a few hours to complete.
Now how do you know if a simulation is complete? It doesn’t really matter how long a simulation has been running or how many iterations it has completed. What matters is the convergence of the simulation. A common way to track convergence is to plot the simulation residuals at each iteration. SimScale automatically generates this plot and it can be found in the navigation panel, under the run that you started, then under Convergence plots. The goal is to have residuals that are as close to zero as possible. They will not actually reach zero though, so you have to end the simulation when you've achieved sufficient convergence. At most, your residuals should be 1e-3 to have any confidence that your results are realistic, ideally they should be in the 1e-4 to 1e-6 range. At residuals of 1e-5 to 1e-6 you can have moderate confidence that your predicted drag and lift values will match the real values (Assuming the rest of the simulation was set up appropriately).
SimScale also has several other convergence plots for different regions of the simulation (domain, inlet, outlet, and walls), good convergence is indicated in these plots by achieving stable values that don’t change very much.
After the simulation finishes, you’ll want to process the results to make them easier to understand and interpret.