Using Virtual Wind Tunnel for ultraFluidX

Use Virtual Wind Tunnel for ultraFluidX to perform an external aerodynamic analysis of a vehicle.

Before you begin, please review the following points:
  • Install the most recent version of ultraFluidX. If you are running VWT on a Windows system, you'll need to have a Linux installation of ultraFluidX available for running the solver. If you are running VWT on a Linux system with a supported GPU, no further configuration steps are necessary. The uFX solver is included in the installation package. If you wish to run a different version of the solver than the one that is shipped with the VWT package, the installation directory of the alternate solver installation can be set under File > Preferences > ultraFluidX.
  • The geometry of the vehicle is described by a surface mesh which is in Nastran or STL format. Unlike many other CFD solvers, the ultraFluidX package does not require a water tight surface mesh. This greatly reduces the pre-processing burden when simulating complex geometries.
  • The surface mesh of the vehicle is expected to be in meters [m]. If it is not, use the scale option to scale it to meters.
  • It is assumed that the wind tunnel has its inflow surface at the minimum x-coordinate of the wind tunnel and the flow is going in the positive x-direction. The y-direction is perpendicular to the flow direction and parallel to the wind tunnel ground. The z-direction is perpendicular to the ground of the wind tunnel.

Invoke Virtual Wind Tunnel for ultraFluidX

  1. From the Start menu, select Virtual Wind Tunnel for ultraFluidX.
    On Linux systems, VWT is launched by executing the VirtualWindTunnel_ultraFluidX script that is located in the top level installation directory of the software.
    Virtual Wind Tunnel for ultraFluidX opens, and an empty session is available to start working with.
  2. Invoke the Model Browser and Property Editor from the View menu.
    Both open on the left side of the modeling window.

Import the Surface Mesh Model

There are two files that need to be imported for this tutorial. The first is a surface mesh model in standard Nastran format. The second is an STL file used to model moving reference frames.

On Windows platforms, the model files are located at: <installation_directory>/hwx/help/VWT/Models/.

On Linux platforms, the model is located at: <installation_directory>/.altair/hwx/help/VWT/Models/.

  1. From the Home group, Files tool group, click the Open Model tool.
    Figure 1.
  2. In the Open File dialog, navigate to the model directory and select roadster.nas.
    The model is imported into Virtual Wind Tunnel for ultraFluidX and no data conversion (for example scaling or translation) is performed. The model is positioned in the same position as it was during export from the pre-processor.
  3. Next, you will need to import the file containing the MRF regions. To do this, click File > Import from the menu bar.
  4. In the Import File dialog, navigate to the same model directory and select mrfRegions.stl.
    The MRF regions are added to the model.
    The Model Browser on the left side of the workspace now shows the model structure with two assemblies and the corresponding part names.


    Figure 2.

Define Wind Tunnel Dimensions

  1. From the nanoFluidX ribbon, Setup group, click the Edit Tunnel tool.


    Figure 3.
    A tunnel is generated around the model.
  2. In the Property Editor, set the Inflow speed to 30.0 m/s.
    Tip: You can also double-click on the large arrow at the bottom of the wind tunnel to set the wind speed.
  3. In the section labeled Boundary Layer Suction, enable the check box next to Active and set Delta X to inflow to 10.0 m.
    Any portion of the wind tunnel falling upstream of the boundary layer suction location will be treated as a slip wall. Boundary layer development will not begin until the flow passes the location that is defined in the text box.
  4. Using either the Property Editor or the text boxes in the modeling window, modify the dimensions of the wind tunnel.
    1. Enter a value of 50.0 m for the length.
    2. Enter a value of 25.0 m for the width.
    3. Enter a value of 16.0 m for the height.


    Figure 4.
  5. Press Esc or right-click in empty space to exit the tool.

Identify Parts

Use the Identify Parts tool to define types of parts like wheels, heat exchangers or body panels, which require specific modeling techniques for the CFD run.

During import, all parts are identified as body by default. This applies a zero-velocity wall boundary condition for the CFD analysis. Besides the default identification, parts can be tagged as a heat exchanger or a wheel.

Specify the Heat Exchangers

  1. In order to better view the heat exchangers, first isolate the relevant parts.
    1. In the Model Browser, click to activate the Search and Filter toolbar.
    2. In the text field, enter rad.
    3. Select all the filtered parts.
    4. Right-click and select Isolate from the context menu or press I.
    Only the parts needed for specifying the heat exchangers are displayed.
    Figure 5.
  2. From the nanoFluidX ribbon, Setup group, Identify Parts tool group, click the Identify Heat Exchanger tool.


    Figure 6.
  3. Specify the inflow component for the first heat exchanger.
    1. From the secondary tool set, click the In arrow.
    2. Select rad_1_in in the modeling window.


      Figure 7.
  4. Specify the outflow component for the first heat exchanger.
    1. From the secondary tool set, click the Out arrow.
    2. Hold a middle mouse click and rotate the model to view the back side of the heat exchanger.
    3. Select rad_1_out in the modeling window.


      Figure 8.
    As soon as the inlet and outlet of the heat exchanger is defined, VWT automatically identifies rad_1_frame as the connecting wall between those two surface regions.
  5. Create a second heat exchanger by clicking in the Heat Exchangers dialog.
  6. Specify the inflow component for the second heat exchanger.
    1. From the Identify Heat Exchanger tool, click the In arrow.
    2. Hold a middle mouse click and rotate the model to return to the front side view of the heat exchanger.
    3. Select rad_2_in in the modeling window.


      Figure 9.
  7. Specify the outflow component for the second heat exchanger.
    1. From the Identify Heat Exchanger tool, click the Out arrow.
    2. Return to the back side view of the heat exchanger.
    3. Select rad_2_out in the modeling window.


      Figure 10.
    VWT automatically identifies rad_2_frame as the connecting wall between those two surface regions.
  8. Press Esc or right-click in empty space to exit the tool.
  9. Delete rad from the Search and Filter text box.
  10. Right-click in the modeling window and select Show All Parts from the context menu or press A to return to the full model view.
Tip: If needed, the resistance coefficients of heat exchangers can be set using the Property Editor.

Specify the Wheels

When modeling a wheel, a wall boundary condition is prescribed and a rotational velocity is applied.

You need to select the parts forming the wheel, for example tire and rim. All other parameters like center of rotation, axis of rotation, and the angular velocity (in RPM) are computed automatically. If multiple parts are selected, VWT will group the parts into one or more wheels. For example, if you select the brake disc, the rim and the tire of the left front wheel, all three parts will be identified as wheel_1. If you also select the rim and the tire of the left rear wheel, those parts will be grouped into wheel_2.

  1. In order to view all the parts that make up the wheels, you will need to hide the MRF regions.
    1. In the Model Browser, select all the MRF parts in Assembly_2.
    2. Right-click and select Hide or press H to hide the selected MRF geometry.
  2. From the nanoFluidX ribbon, Setup group, Identify Parts tool group, click the Identify Wheels tool.


    Figure 11.
  3. From the secondary tool set, click the Identify Wheel tool.


    Figure 12.
  4. Select the tire, rim, hub, and brake disk of the front-left wheel.


    Figure 13.
    Note: You may need to rotate and zoom the model to get a better view of the wheel hub.
  5. Repeat the above step for the front-right wheel.
  6. For the back wheels, select just the rim and tire.


    Figure 14.
  7. Click on the parts now identified as wheels in the Model Browser.
  8. In the Property Editor, ensure that Auto Calculate is enabled for Wheel Rpm and that the Angular velocity is approximately 933 rpm.
  9. Press Esc or right-click in empty space to exit the tool once all the wheels have been identified.

Specify the MRF Regions

MRF regions define a volume in which the governing equations are solved in a rotating reference frame. This transformation of the equations can lead to higher accuracy for rotating bodies due the addition of centrifugal and Coriolis forces.

  1. Right-click on Assembly_2 in the Model Browser and select Show.
    The MRF geometry that was hidden in the previous step is now visible.
  2. From the nanoFluidX ribbon, Setup group, Identify Parts tool group, click the Identify Wheels tool.


    Figure 15.
  3. From the secondary tool set, click the MRF tool.


    Figure 16.
    A guide bar appears below the tool. Wheel should be highlighted by default.
  4. Click the tire on the front-left wheel.
    The entire wheel group is selected. To double-check, you can hide MRF-left_front and observe the parts you selected as the wheel in the previous step.
  5. On the guide bar, click MRF.
  6. Select the grey disk on the front-left wheel as the MRF region.
    The region is highlighted blue.


    Figure 17.
  7. Click on the guide bar to confirm your selection.
  8. Click Wheel on the guide bar then select the tire on the front-right wheel.
  9. Click MRF then select the tire's associated MRF region.
  10. Repeat the above process for the rear wheels.


    Figure 18.

    The angular velocity and center of rotation of the rotating frames are extracted from the wheel definitions.

Tip: Click on the guide bar to clear a selection.

Review Identified Parts

  1. From the nanoFluidX ribbon, Setup group, Identify Parts tool group, click the Parts tool.


    Figure 19.
  2. In the Parts dialog, check that you identified the correct parts as wheels and heat exchangers.


    Figure 20.
  3. Optional: Click to export the part definitions as an .xml template file for use with later simulations.
Tip: View the Group column by right-clicking on a column name, selecting Group from the options dialog and clicking OK.

Define the Mesh Controls

Use the Mesh Controls tool to define regions with a user-defined volume element size.

Important: All other mesh controls in the model are defined relative to the far field size, and must be a power of 2 of the far field size. For example, if you define a far field mesh size of 1 m, the available refinement sizes will be 0.5, 0.25, 0.125, etc.

Set the Far Field Element Size

  1. From the nanoFluidX ribbon, Setup tools, click the Mesh Controls tool.


    Figure 21.
  2. From the secondary tool set, click the Far Field tool.


    Figure 22.
  3. Check that the element size value is set to 0.2 m.

Generate Box Refinement Zones Around the Body

  1. From the nanoFluidX ribbon, Setup group, click the Mesh Controls tool.


    Figure 23.
  2. From the secondary tool set, click the body of the Box tool.


    Figure 24.
  3. Select any location on the model body.
    A new refinement zone is generated around the body.
  4. Enter a value of 3 for Level and press Enter.
    The element size is changed to 0.0250 m.


    Figure 25.
  5. In the Property Editor, edit the dimensions of the refinement zone so that the length is 5.0 m, the width is 2.0 m, the height is 2.0 m, and X Min extent is -1.0 m.


    Figure 26.
  6. In the microdialog, click .
    A second box refinement zone is generated.
  7. Enter a value of 2 for Level and press Enter.
    The element size is changed to 0.0500 m.
  8. In the Property Editor, edit the dimensions of the refinement zone so that the length is 7.0 m, the width is 3.0 m, the height is 2.5 m, and the X Min extent is -1.0 m.
  9. Click once more.
    A third box refinement zone is generated.
  10. Enter a value of 1 for Level and press Enter.
    The element size is changed to 0.100 m.
  11. In the Property Editor, edit the dimensions of the refinement zone so that the length is 9.0 m, the width is 4.0 m, the height is 3.0 m, and the X Min extent is -1.0 m.


    Figure 27.

Generate Box Refinement Zones Around Parts

  1. From the nanoFluidX ribbon, Setup group, click the Mesh Controls tool.


    Figure 28.
  2. From the secondary tool set, click wheel of the Box tool.


    Figure 29.
  3. Select the left mirror housing in the modeling window.
    A box refinement zone is generated around the part.
  4. In the microdialog, enter a value of 5 for Level.
    The element size is changed to 0.00625 m.
  5. Modify the refinement zone's dimensions.
    1. In the microdialog, click .
    2. Enter a value of 0.50 m for length.
    3. Enter a value of 0.20 m for width.
    4. Enter a value of 0.15 m for height.


    Figure 30.
  6. Generate a box refinement zone around the opposite mirror housing using the same dimensions for level, length, width, and height.

Generate a Body-Fitted Refinement Zone

As opposed to the Box tool, which creates a box-shaped refinement zone, the mesh refinement patterns of the Offset tool follow the contour of the body itself. This creates refinement around the body where it is needed most, eliminating unnecessary refinement that may result from a box-shaped zone.
  1. From the nanoFluidX ribbon, Setup group, click the Mesh Controls tool.


    Figure 31.
  2. From the secondary tool set, click the body of the Offset tool.


    Figure 32.
  3. Select a point on the model body.
  4. In the microdialog, use the drop-down menu to change the method from Distance to Layers.
  5. Enter a value of 4 for Level.
    The element size is changed to 0.0125 m.
  6. Set the number of layers to 8.


    Figure 33.
Tip: You can also change the distance or number of layers by interactively dragging the slider in the modeling window.

Generate Part-Fitted Refinement Zones

As opposed to creating a body-fitted refinement zone on the entire body, it is also possible to create a body-fitted refinement zone around a single part, or a collection of parts. This creates refinement around parts where it is needed most, eliminating unnecessary regions.
  1. From the nanoFluidX ribbon, Setup group, click the Mesh Controls tool.


    Figure 34.
  2. From the secondary tool set, click the wheel of the Offset tool.


    Figure 35.
  3. Hold Ctrl and left-click on all four sets of tires and rims in the modeling window.
  4. In the microdialog, use the drop-down menu to change the method from Distance to Layers.
  5. Enter a value of 5 for Level.
    The element size is changed to 0.00625 m.
  6. Set the number of layers to 5.


    Figure 36.
  7. Click .
    A second part-fitted refinement zone is created around the four wheels.
  8. Enter a value of 4 for Level.
    The element size is changed to 0.0125 m.
  9. Set the number of layers to 10.


    Figure 37.
  10. Press Esc or right-click in empty space to exit the tool.
Tip: You can also change the distance or number of layers by interactively dragging the slider in the modeling window.

Review Mesh Controls

  1. From the nanoFluidX ribbon, Setup group, Mesh Controls tool group, click the Zones tool.
    Figure 38.
  2. Double-check the refinement zones and make sure they match what's displayed in the image below.


    Figure 39.
  3. Optional: Click to export the mesh control definitions as an .xml template file for use with later simulations.
  4. Click Close to exit the dialog.

Define the Belt System

  1. From the nanoFluidX ribbon, Setup group, click the Belt System tool.


    Figure 40.
    By default, five patches are created on the wind tunnel ground for modeling the belt system.


    Figure 41.
  2. Accept the default parameters for the belts.
Tip: The properties belts can be modified in the Property Editor
.

Define the Output Frequency

  1. From the nanoFluidX ribbon, Output group, click the General Output tool.


    Figure 42.
    The ultraFluidX Output Controls dialog opens.
  2. In the ultraFluidX Output Controls dialog, enter 100 for the output frequency.

Submit Job

  1. From the nanoFluidX ribbon, Run group, click the Run VWT tool.


    Figure 43.
  2. In the Write to ultraFluidX dialog, enter a name for the run.
  3. Click Results to view more options.
  4. Accept all other default parameters.


    Figure 44.
  5. Click Run.
    If you are running VWT on a Linux system with a supported GPU, no further configuration steps are necessary. If you are running VWT on a Windows system, you'll need to have a Linux installation of ultraFluidX available for running the solver. To run the solver from Windows:
    1. Click Export.
    2. Copy the .stl and .xml files that are created in the run directory over to Linux.
    3. Launch the solver by executing the ufxRun script, located in the installation directory at .altair/unity/bin/linux64/ufx/scripts.
      Use the "ufxRun -h" option to view the help page.

Plot Aero Coefficients

  1. From the nanoFluidX ribbon, Run group, click the Plot Aero Coefficients tool.


    Figure 45.
  2. Browse to the path you defined as the default run directory and select uFX_coefficients_Inst.txt .
    A graph of the instantaneous lift, drag, and side force coefficients is displayed.


    Figure 46.
  3. Browse to the default directory once more and select uFX_coefficients_Avg.txt .
    A graph of the time averaged lift, drag, and side force coefficients is displayed.


    Figure 47.
  4. Middle-mouse scroll to zoom in on points of interest in the plot.
    Note: Other plots, including coefficients for each part individually are also available in the output directory.
Tip: Right-click on the legends, axes, or individual plots to edit the display properties.