Automotive External Aerodynamics Tutorial
Use HyperMesh CFD to perform an aerodynamic analysis of a vehicle.
Solution and Environment Selection

Model Transfer to the Case Setup Environment
- Go to Aurora.hmcfd. and select the HMCFD model
-
Click the Data Transfer Tool. In the guide bar, select
Parts (selected by default). Select all parts in the
model, check the Clear Existing Setup box, and click
Transfer.
Figure 2. -
The selected part groups are copied to the Case Setup environment.
Note:
- Alternatively, you may use Part Groups selection. When invoking Part Groups selection, if a part belongs to more than one part group, it will be copied to the Case Setup environment only as part of the first group to which it was assigned. Only actual part groups are transferred. Parts which are not assigned to a part group will be ignored on transfer.
- When invoking Part selection, all selected parts are
transferred.Tip: You may also import mesh and CAD files directly from the HMCFD Case Setup environment through . You may manually switch to the Case Setup environment, by selecting Case Setup from the drop-down to the right of View.
Case Environment Setup
-
Invoke the Model Browser and Property
Editor from the View menu.
Both open on the left side of the modeling window.
-
Change the model projection to Orthographic.
Figure 3.
Body Coordinate System
When parts are imported into the Case Setup environment, whether directly or through the Data Transfer tool, they are placed in their original position in the global coordinate system. Any transformations or rotations applied to the model within the Case Setup environment will not be applied upon import. To apply these, you must create a coordinate system that will be affected by these transformations and rotations. When a part is imported, you may then assign this coordinate system to the part from the
and this assignment will apply the corresponding transformations and rotations on the part.-
Click on the Systems tool in the
Setup ribbon.
Figure 4. - Create a part-specific coordinate system by clicking on the part to which it will be assigned (in this case, click on the model’s windshield to select the Body_Exterior part).
- From the coordinate system’s property editor, notice that Body_Exterior is set as the value for .
- Check the box under .
- Rename the coordinate system Body_CSYS.
- Press Esc to exit the tool.
- Select the coordinate system and hide it with the H shortcut key.
Baffles
Parts represented by surfaces with no thickness where both parts of the surface are exposed to the flow must be identified as baffles. Alternatively, they may be thickened in the Geometry Repair environment. The Geometry Repair environment offers multiple tools to find baffle parts/surfaces/elements in a model.
- In the Model Browser, click on the magnifying glass to open the search bar.
- Type “Baffle”.
- Click on the Underbody_Shield_Rear_Baffle part.
- In the Property Editor, check the box under .
- Clear the search bar in the Model Browser to show all parts.
Model Organization
- From the Model Browser, type Porous_Media in the search bar.
- Highlight all shown parts, then right-click and select New Assembly.
- Rename the newly created assembly as Porous_Media.
- Clear the search bar in the Model Browser.
- Repeat steps 1 to 4 for Body_Exterior, Chassis, Cooling_Module, Electronics_Module, Patch (rename as Patches), Steering (rename as Steering Module), Suspension (rename as Suspension_Module), Underbody, VREV (rename as VREVs), Monitor_Surface (rename as Monitor_Surfaces), Wheel (rename as Wheels, only select those parts which are not inside another assembly).
- In the Model Browser, right-click on the Model assembly and select New Assembly.
- Rename the newly created assembly as Main.
-
Collapse all other assemblies, then select, drag, and drop them into the
Main assembly.
Note: When dealing with many parts, this process may be slow. In that case, try dragging the assemblies one at a time into the Main assembly.
- From the Model Browser, type RL7 in the search bar.
-
Highlight all shown parts, then right-click and select New
Assembly.
An assembly is created within the Underbody assembly.
- Rename the newly created assembly as RL07.
- Right-click on the Main assembly and click Isolate to isolate the parts contained within the Main assembly.
Model Dimensions
The ultraFluidX 2023.0 Setup guidelines for vehicle aerodynamics, provides various setup recommendations which rely on the model dimensions and position. HMCFD’s Case Setup environment allows you to gather this information through the GUI and the Python Window.
Python Window
- Open the Python Window by going to or pressing F4 on your keyboard.
-
Execute the following:
- from hwx import inspire
- model = inspire.getActiveModel()
-
model.axisAlignedBoundingBox
Output: Box(x=4.96514, y=2.1354, z=1.42625)
-
model.axisAlignedBoundingBox.minMax
Output: (Point (-0.9074339866638184, -1.0676989555358887, -0.010730000212788582),
Point (4.057706832885742, 1.0676989555358887, 1.415518045425415))
GUI
- Select all parts in the viewer.
-
Click on the Measure tool.
Figure 5. A bounding box fitted to the selected parts will show along with its X, Y, Z dimensions. - Given that z-min is zero, the vehicle’s centerline is at y = 0, and the vehicle can be assumed to be symmetric about the Y plane, we can derive the Y and Z mins and maxes from this data. One way to find x-min is to use the RL Box creation tool.
- Click on the .
- Click on any surface of the body.
- From the Length to 4.07 (shown by the Measure tool). , set the
- Orient your model to the Right view.
- Drag the box along X until the front and rear of the box appear to be just touching the front and rear surfaces of the model respectively.
- Note the x-min and x-max values in the .
- Delete the box by right-clicking on the part in the .
Define Wind Tunnel
-
From the Setup ribbon, click the Edit Tunnel tool.
Figure 6. A tunnel is generated around the model. The tunnel size is automatically set based on the best practices for vehicle simulations. -
In the Property Editor, go to and set the inflow speed to 38.889
m/s.
Tip: Tip You can also double-click on the large arrow at the bottom of the wind tunnel to set the wind speed.
-
From either Tunnel Extents in the Property
Editor or the micro-dialogs in the modeling window, modify the
dimensions of the wind tunnel.
- Enter a value of 79.44 m for the Length.
- Enter a value of 53.375 m for the Width.
- Enter a value of 29.945 m for the Height.
Advanced Tunnel Setup (Belts & Patch)
The “standard” external aerodynamics wind tunnel setup calls for a full moving ground configuration. Modelling setups which emulate those in wind tunnels are possible using the Belts Tool together with the Ground Patch as described below.
-
From the Property Editor, enable the checkbox under
.Note: Enabling Boundary Layer Suction sets the boundary condition of the ground upstream of the boundary layer suction line (blue dotted line) to a slip wall boundary condition. Enabling boundary layer suction is recommended whenever static ground conditions apply to the simulation. This includes moving belts surrounded by a static ground region.
-
From the Property Editor, enable the checkbox under
.Note: Enabling Ground Patch sets the boundary condition of a region of the ground – which extends from the center of the vehicle to upstream, downstream, and to each side a pre-set distance away from the vehicle based on the vehicle’s dimensions and belt dimensions in whenever applicable – to a zero-velocity non-slip wall boundary. Enabling the ground patch is recommended whenever static ground conditions apply to the simulation. This includes moving belts surrounded by a static ground region.
Figure 7. - Press Esc or right-click in empty space to exit the tool.
- Select the Wind Tunnel and hide it with the H shortcut key.
Adjust Heave
-
From the Setup ribbon, click the Adjust Heave
Tool. The Adjust Heave micro-dialog opens
and the z-distance of each axle axis to z = 0 is displayed in the viewer.
Figure 8. - Click on the distance value for the front axle. The Height input micro-dialog appears. Set the Height value to 0.35 m.
- Click on the distance value for the rear axle. The Height input micro-dialog appears. Set the Height value to 0.35 m.
- Exit the Adjust Heave Tool by clicking on the green checkmark on the Adjust Heave micro-dialog.
Define the Belt System (Advanced)
Once the wheels are defined, the belt tool will automatically create belt patches to fit the body and wheels of the vehicle.
-
From the Setup ribbon, click the Belt
System tool. By default, five patches are created on the wind
tunnel floor to model the belt system.
Figure 9. - From , rename the belts as Belt_Front_Left, Belt_Rear_Left, Belt_Front_Right, Belt_Rear_Right, and Belt_Center accordingly.
- You may edit the size and parameters for the belts from the Property Editor.
- From Belt_Center. , select
- From the Property Editor, uncheck the box for .
- Copy the value in .
- From the Model Browser, click on the Wind Tunnel.
- From the Property Editor, activate , change the reference to Origin, and paste the copied value into . This will set the Wall Boundary Condition of the ground upstream of that location to Slip Wall.
- Make sure is also enabled.
- Click on the icon to hide the belts.
Define the Outputs
-
From the Setup ribbon, Run group,
click the Run tool.
Figure 10. The Run dialog opens. - From the Run dialog, verify the value is set to 38.889 m/s as per Step 2.
-
Click on the lightning bolt button for .
Note: The value of is linked to the value of as they represent the same value in two different units: timesteps and seconds, respectively.This automatically sets the value to the time it would take for flow traveling at the inflow speed to traverse the length of the vehicle 30 times as per the ultraFluidX 2023.0 Setup guidelines for vehicle aerodynamics
- Note the value of for future use.
- Close the Run dialog.
-
From the Setup ribbon, Output group,
click the General Output Tool.
Figure 11. The ultraFluidX Output Controls dialog opens. -
From the ultraFluidX Output Controls dialog, click on the
lightning bolt button for .
This automatically sets the value to the time it would take for flow traveling at the inflow speed to traverse the length of the vehicle 15 times as per the ultraFluidX 2023.0 Setup guidelines for vehicle aerodynamics.
-
Set the value for
to 0.174091 s and that of to 229.Note: Ideally, we want to synchronize the output frequency with the averaging window size and averaging start time. In this case, a total runtime of 5,038 timesteps (3.83 s) can be factored into 22 * 229, leaving 2,519 timesteps (1.915 s) for the first 15 flow-passes and 2,519 timesteps for averaging. The final 15 flow-passes may be further divided into 11 windows of 229 timesteps (0.174091 s).
-
Click on the hamburger menu of .
The General Output Field Variables dialog opens.
- From the General Output Field Variables dialog, set the value of Start iteration to 2519.
- If the OSM approach for the wheels from Wheels is being used and the filetype for the results is Ensight, enable the displacement and field variables.
- Close the General Output Field Variables dialog.
-
From the ultraFluidX Output Controls dialog, set the value
of to 2.
This will limit the number of saved frames for the Full and Surface datasets to 2 by overwriting the earliest written frame as a new one is output as per the output frequency starting at the start iteration.
- Enable (and Y and Z) and set the value of each to 100.
- In the dialog, enter 100 for the output frequency. This instructs the solver to write simulation results every 100 iterations.
- Close the ultraFluidX Output Controls dialog.
Section Cuts
-
From the Setup ribbon, click the
Output tool.
Figure 12. -
From the secondary tool set, click the Section Cut
tool.
Figure 13. The Section tool micro-dialog opens and the X, Y, and Z planes are highlighted in the viewer. -
Click on the Y-Plane.
The Plane Dialog opens.
- From the Plane dialog, use the pulldown menu to change the start method from Start Iteration to Start Time, and set the start time value to 3.73 s to capture the last 0.1 s of the simulation.
- From the Plane dialog, use the pulldown menu to change the output method from Output interval to Hz, and set the Target frequency value to 1000 Hz.
- Click on the hamburger menu on the upper right corner of the Plane dialog to open the list of output variables and uncheck all time-averaged variables.
- Click on the expand icon on the upper right corner of the Plane dialog to show the Length and Width fields. Set the Length value to 8 m.
- Click on the move tool icon on the upper right corner of the Plane dialog to open the move tool. Drag the plane along the X-Axis by 1.043 m and along the Z-Axis by 0.188 m.
- Close the Section Cut tool by pressing on the green checkmark button on the Section Cut micro-dialog.
-
From the
, rename the newly created Section Cut to
Section_Cut_Y_Center and hide it.Tip: Double click the edges of the section cut in the modeling window to resize the plane.
Probes
Surface Probes
- From the Model Browser, multi-select all parts within the assembly. Press I on your keyboard to isolate the selected parts.
- From the Setup ribbon, click the Output Tool.
-
From the secondary tool set, click the Surface Probes
Tool.
Figure 14. The Surface Probes micro-dialog opens. -
From the viewer window, rubber-band select all the
displayed parts.
The Probes dialog opens.
- From the Probes dialog, set the Start iteration value to 2519.
-
On the upper left corner of the viewer window, a list of surface probes sets
will show. Right-click on the set that was just created
(there should only be one) and click on Probes table.
The Probes Table opens.
-
Press the open icon on the Probes Table, navigate to the
Surface_Probes.csv file provided, and click Open.
The probes are imported to the selected set.
- Close the Probes Table.
- Close the Surface Probes Tool by pressing on the green checkmark button on the Surface Probes micro-dialog.
- From the , rename the newly created Surface Probe set to Surface_Probes and hide it.
- From the Model Viewer, isolate the Main assembly to show the full vehicle model.
Volume Probes
- From the Setup ribbon, click the Output Tool.
-
From the secondary tool set, click the Volume Probes
Tool.
Figure 15. The Volume Probes micro-dialog opens. -
From the viewer window, click on any point in space.
A volume probe is created and the Probes Dialog opens.
- From the Probes dialog, set the Start iteration value to 2519.
-
On the upper left corner of the viewer window a list of volume probes sets will
show. Right-click on the set that was just created (there should only be one)
and click on Probes table.
The Probes Table opens.
-
Press the open icon on the Probes
Table, navigate to the Volume_Probes.csv
file provided, and click Open.
The probes are imported to the selected set.
- Delete the first row in the Probes Table as this was the one created by randomly clicking in space.
- Close the Probes Table.
- Close the Volume Probes Tool by pressing on the green checkmark button on the Volume Probes micro-dialog.
- From the , rename the newly created Volume Probe to Volume_Probes and hide it.
Monitor Surfaces
- From the Setup ribbon, click the Output Tool.
-
From the secondary tool set, click the Monitor Surface
Tool.
Figure 16. The Monitor Surface micro-dialog opens. -
From the viewer window, click on the
Monitor_Surface_Grille part. Tip:
Tip: Isolate the part before selecting for easier access.The part is assigned as Monitor Surface and Monitor Surface dialog opens.
- From the Monitor Surface dialog, set the Start iteration value to 2519 and the Output interval to 229.
- Close the Monitor Surface Tool by pressing on the green checkmark button on the Monitor Surface micro-dialog.
- From the rename the newly created Monitor Surface to Monitor_Surface_Grille and hide it. ,
Turbulent Sources
Turbulence generators (TGs) are used to force laminar to turbulent behavior of the boundary layer. They may be used to calibrate the turbulent boundary layer thickness in the wind-tunnel and force laminar-turbulent transition on flat surfaces.
Ground (Advanced)
When not using the “Standard” ground setup of full moving ground, the use of turbulence generators near the boundary layer suction region is recommended.
-
From the Setup ribbon, click the Turbulence
Source Tool.The
Turbulence Source micro-dialog opens.
-
From the viewer window, click on any part.
A turbulence source is created and the Turbulence Source dialog opens.
- From click on the newly created Turbulence Source. ,
- From the Property Editor, set the value to Turbulence_Source_Ground to rename the newly created Turbulence Source.
- Set the values to 7.477 m, 3.2 m, and 0.024 m respectively.
- Set the values to -2.159 m, -1.608 m, and 0 m respectively.
- Deactivate Auto Calculate for and .
- Set to 0.01, 0.012 m and 800 respectively.
- Close the Turbulence Source Tool by pressing on the green checkmark button on the Turbulence Source micro-dialog.
-
Hide the Turbulence_Source_Ground part.
Note: Parameter values specified for the ground turbulence source were calculated as per the ultraFluidX 2023.0 Setup guidelines for vehicle aerodynamics. This region is intended to accurately develop the boundary layer in the areas of the static ground near the vehicle downstream of the boundary layer suction.
Bulk (Optional)
For flat surfaces and certain smooth designs, the boundary layer might remain artificially pseudo-laminar. In such case, TGs may be added in the bulk and in front of the flat surface to force the laminar-turbulent transition and obtain a more realistic boundary layer development.
-
From the Setup ribbon, click the Turbulence
Source Tool.
The Turbulence Source micro-dialog opens.
-
From the viewer window, click on the hood of the
vehicle.
A turbulence source is created, and the Turbulence Source dialog opens.
-
Click on the expand icon on the upper right corner of
the Turbulence Source dialog to show the Length, Width, and
Height fields.
- Set the Length, Width, and Height values to 1 m, 1.906 m, and 1 m respectively.
- Click on the hamburger menu on the upper right corner of the Turbulence Source dialog to expose additional parameters and set the value of Number of Eddies to 800.
- From Turbulence Source. , click on the newly created
- From the Property Editor, set the value to Turbulence_Source_Front to rename the newly created Turbulence Source.
- Set the values to -1.1 m and 0 m respectively.
- Close the Turbulence Source Tool by pressing on the green checkmark button on the Turbulence Source micro-dialog.
- Hide the Turbulence_Source_Front part.
Export Solver Deck
-
From the Setup ribbon, Run group,
click the Run tool.
The Run Dialog opens.
- From the Run dialog, set the value of Name of run to Aurora.
- Set the Run path to a path of your choosing.
-
Click on the Export button.
One XML, one STL, one ZIP, one INFO, and two CSV files are created. The ZIP file is a compressed version of the STL file. All but the INFO and STL files are required as solver input.
Submit Job
- Follow Steps 1-3.
-
Click Run.
Note: If you are running HyperMesh CFD on a Linux system with a supported GPU, a solver run is started. If you are running HyperMesh CFD on a Windows system, you'll need a Linux installation of ultraFluidX available for running the solver.Note: To run the solver from Windows:
- Click Export. This generates an stl and xml file in the run directory.
- Copy the stl and xml files to the Linux machine.
- Launch the solver by executing the ufxRun script, located in the
installation directory at
<installation_directory>/altair/scripts.
Run "
ufxRun -h
" to view the command options.
Visualize Results
-
From the Setup ribbon, Run group, click the Show Analysis Results
Tool.
Figure 17. A file menu to select the results files is presented. -
Select the files and accept.
The results will be loaded into the Post Processing environment.