An introduction to SimWorks
SimWorks has a free CFD software version and a commercial version and is available to download here. SimWorks is designed to be user friendly and includes a fully integrated CFD process from geometry import to results. The pre-processor helps you setup the simulations parameters and boundary conditions for any imported geometry. The meshing and solving are done using OpenFOAM(c), which is automatically installed during the initial SimWorks setup. The post-processing and results analysis are integrated in the SimWorks Graphical User Interface (GUI).
SimWorks allows the definition of multiple simulations concurrently. The simulations can be arranged in Project and Geometry groups. Each Project can contain one or more Geometry entries, which in turn can contain any number of simulations. The idea behind this is that a Geometry group contains a set of simulation with the same or similar geometry but different simulation conditions/setup. Any existing simulation can be duplicated to create a new simulation and, by replacing the geometry with a new one, all the existing simulation settings and parameters will be automatically applied. Simulations can also be cut and pasted into a different Geometry group and each Geometry can be cut and past into a different Project.
Moreover, it is possible to analyse multiple simulations at the same time in the Field viewer and plot the difference (or delta) between the results of different cases.
The first time SimWorks is started, the GUI shows 3 main windows:
- Simulation Manager: this is dedicated to managing the simulation, from this window it is possible to start and stop all the main phases of the CFD simulation: setup, meshing and solving. It is also possible to launch the post-processor once the simulation is completed.
- Simulation Editor: this window includes all the simulations parameters and setup of the simulation, including the meshing parameters and the boundary conditions. The Simulation Editor will be described in more detail later in this tutorial. From here it is also possible to load a geometry in the Geometry viewer.
- Geometry viewer: this window is used to visualise and inspect the geometry. Here, it is also possible to setup the boundary conditions and meshing parameters, directly interacting with the geometry. Changes to the simulation setup introduced in the Geometry viewer are automatically updated in the the Simulation Editor and vice-versa. Details about the simulation setup will be described in the remainder of the introduction.
Every window in the SimWorks GUI can be detached from the main window and dragged and dropped in any location. To move a window, click and drag its menu bar and release it in any desired position. This lets the user customise the GUI for convenience and ease of use. The main window, which corresponds to the Geometry viewer, is always active.
- By clicking on the minimise button in each window (with the exception of the Geometry viewer) the window will be hidden from the GUI.
- To show it again, click on the corresponding entry in the Task bar at the top of the GUI. If the Task bar is not visible just click in the top GUI menu on View → Show/Hide taskbar. When the windows is visible, the relevant entry in the Task bar will be underlined, while it will not be underlined when the window is minimised.
If a window is dragged on top of another one, these will be automatically tabbed. A new tab bar will appear next to the original one allowing the user to select the window of interest.
On the top right menu of each window there are multiple options to control its behaviour:
- Minimise the window: this minimises (hides) the window. To maximise (show) it again just press on the relevant entry in the Task bar of the main window
- Maximise the window: when pressed the window will detach from the main GUI and become full screen
- Detach the window: this button detaches the window from the main window so that it is possible to re-position it. This feature is particularly useful in multi-screen layouts where the user can place different windows on different screens
- Maximise a different window: this shows a list of all the available windows, including the minimised ones, which are not visible. When selecting one, that window becomes active and is automatically maximised
The Simulation manager window lets you create new simulations, new Geometry entries (which can have multiple simulations) and new Project entries (which can contain multiple Geometry entries):
- New project: this create a new Project, which is the highest level for organising the simulations. It is possible to define any number of projects and each can contain any number of Geometry entries
- New geometry: this inserts a new Geometry inside the selected Project. It is also possible to right click on a Geometry and cut it and paste it into a different Project. A Geometry can contain any number of simulations
- New simulation: this create a new empty simulation inside the selected Geometry. Similarly to the functionality for Geometry entries, it is possible to duplicate a simulation or cut and paste it between different Geometry entries
- It is possible to quickly define a complete tree with multiple projects, geometries and simulations
- Every entity has a name which can be changed by editing the text box next to the entry
- Right clicking on any entity opens a menu that lets the user delete, cut or duplicate the selected entry in the Simulation manager. Multiple entries can be selected by pressing the Ctrl button on the keyboard. We suggest to experiment with the duplicate/cut/paste functionality in the Simulation manager window.
How to run a simple simulation
Create a new simulation
- Press the New simulation button
- The Simulation manager window will show a new empty simulation, with all the phases currently to 0% indicating that the new simulation does not have any simulation setup, mesh or run phases completed
- The Simulation editor window will be automatically populated with default values for a typical simulation. These are arranged in the following tabs: Setup, Regions, Mesh, Output and Notes. Please to explore all the tabs to see the parameters required for a simulation. The content will be discussed in more detail in the remainder of this guide. There is also an additional tab, called Notes, where it is possible to write and store notes and comments related to the simulation.
Loading a geometry
The first step when setting up a simulation is to load the CAD file corresponding to the geometry to be simulated. Currently SimWorks supports only IGES (.igs) files.
- Press the Browse geometry button in the Simulation editor window and select one .igs file from the Tutorial folder inside the installation path. For example, we will load the baseball_ball.igs from the sphere drag coefficient tutorial. The file path will be stored in the Geometry field.
- Select the Geometry units as mm. This defines all the units used for any length quantity used in the GUI, unless specified otherwise. Please note that the CAD file are always assumed to be in mm. The GUI units do not alter the CAD units but only the length parameters in the GUI. For the purposes of the simulation, it makes no difference whether m or mm are used, as long as all the entries are consistent to each other.
- Load the geometry in the Geometry viewer clicking on the Load geometry icon and, when requested, rename the simulation as Sphere test.
- The geometry is displayed in the Geometry viewer including the external Outer Domain (transparent cube around the sphere in the picture), which is the portion of space around the geometry which will be simulated in an external aerodynamics application. The volume inside the Computational domain but external to the sphere is the region which will be meshed and simulated. Please complete one of the SimWorks tutorial to see more in depth how to modify the computational domain.
Set the mesh parameters
The mesh settings required to create a mesh for the simulation can be defined in the Mesh tab of the Simulation editor. In SimWorks, we define a global base cell size and it is possible to define different refinement levels for each geometrical part or group of parts, which are organised in Surface Mesh Options. For each level, the expected characteristic cell size is evaluated as the global base size divided by 2 to the power of the refinement value.
- Here we set the Base cell size to 20 (mm) under Global Mesh Parameters
- We also need to identify the volume that needs to be meshed. In this case we want to mesh the volume inside the outer domain (OD) but outside the sphere, therefore we can define a Point in mesh with coordinate 100 0 0 and size 10. This is shown in the Geometry viewer as a red sphere. The sphere size is for visualisation purposes only as it helps the user to double check that the point in mesh is located in the desired volume
Define the boundary conditions in the pre-processor
The Geometry viewer window has several useful icons / menu:
- The block of buttons with the little eye on the top right of the icon itself can be used to show/hide geometrical elements. It is also possible to make the geometries transparent or opaque, feel free to familiarise yourself with the different options there
- Clicking on the downward arrow next to the first icon, a menu showing all the possible layering displays is shown
3. Selecting the Boundary conditions types layering, the entire geometry and the OD will change colours showing the boundary conditions types, a new legend will show which colour corresponds to which boundary condition
4. By clicking on a geometrical element in the Geometry viewer and a popup window to change a boundary condition type and its parameters will appear. As an example, by clicking on the front face of the OD, a popup will be shown. Here we select Velocity Normal as boundary condition, with a speed of 5 m/s. Please note that the unit for the speed is always m/s even if we specified mm as a length unit in the Setup tab. As a reminder to the user, the required unit for each entry is displayed in the text within squared brackets, e.g. [m/s]. Finally, we can repeat the same operation for the back face and define the rear face as a Pressure Outlet with pressure 0 Pa. Please note this is a relative pressure value to the Reference pressure specified in the Setup tab.
5. In the Regions tab of Simulation editor window, the different parts of the geometry and the OD are organised in Part Groups. A part group can contain one or more geometrical parts and it allows to specify boundary conditions to a group of parts simultaneously. Now looking at Part Group 1, we can see that the entries for the front face of the OD have been updated with the values we entered via the popup window of the pre-processor. Alternatively, it is possible to define the boundary conditions for this part directly in the Simulation editor without using the pre-processor. Both methods are equivalent.
6. Similarly the boundary condition for the rear face, which is in Part Group 2, is automatically updated with the values inserted in the popup window of the pre-processor
7. Feel free to explore the other layering options available in the Geometry viewer, which include mesh parameters. Every entry can be modified using the pre-processor or in the tabs of the Simulation editor. To come back to the standard view, click on the Set default geometry icon, which is located in the main toolbar in the Geometry viewer window. Other tutorials on different SimWorks functionalities will explore the several layering options.
Set Output parameters
In the Output tab of the Simulation editor of SimWorks, it is possible to define what physical quantities (Output Fields) and geometrical entities (Sections) to include for post-processing.
In this example we are going to leave the default selection in the drop-down menu of Output Fields. This include the velocity (U), the relative pressure (p), the pressure coefficient (Cp) and total pressure coefficient (Cp0).
We can also specify how many Sections (planes) in each orthogonal directions we want to use to show the results. These sections will be later loaded in the Field viewer to visualise the results. Here we leave the default number of 15 sections in each direction. The minimum and maximum starting point in each direction are automatically calculated by SimWorks based on the OD extents when loading the geometry. The user can modify the extents and number of planes according to their needs.
Run the setup and meshing phases
Now that all the parameters of the simulation are set, we can run the simulation from the Simulation manager window:
- Setup phase: in this phase all the entries specified up to this point are converted to OpenFOAM setup files (dictionaries) and the geometry itself is converted into a tessellated representation (triangulated STL files) which are required for the subsequent meshing phase. Depending on the geometry size, complexity and the mesh refinement levels, the surface tessellation can take some time. In this simple test case, the process should be very quick
- Meshing phase: in this phase SimWorks will create the volume mesh using the OpenFOAM mesher snappyHexMesh. The progress bar will show the phase progress. As per the surface mesh, the time it takes to create the volume mesh depends on the geometry size, complexity and meshing parameters. For this case, the meshing phase should complete quickly
- While the meshing phase is running, the Live data console will appear showing the output of the mesher in text form. This helps following the meshing phase progresses
- Once the mesh phase is completed, it is possible to inspect the mesh in the Fields viewer. Right click on the simulation in the Simulation manager and select Fields → Load. The Fields viewer will appear with a representation of the mesh. For convenience the Live data window has been hidden clicking on the relevant icon in the Task bar.
- Fields viewer offers several functionalities from the task bar at the top of the window. The first two buttons on the left are visualisation options. In this case the mesh cells edges have been shown
- The three buttons on the right can be used to probe the data by getting the values at a specific point, or along a line or inside a rectangular area
- In addition to the task bar, the Fields viewer has a menu with tabs. In the Selection tab, it is possible to select the geometrical entities to be shown. In the figure below, we are showing the parts (3D shapes) and the sections (e.g. orthogonal planes)
- It is also possible to scroll through the sections along a selected direction with the two arrows of the Section slider just below the Direction selector
Looking in more detail at the different options available to visualise different entities in Field viewer, we can find 3 different list of items. Here we are inspecting the mesh but the same concepts apply when visualising the CFD results.
- Parts list: if the Show parts checkbox is not ticked no part (3D object) will be shown. This box should be ticked to enable the view of geometrical parts in the window. Looking at the Select parts drop-down menu, you can see that this contains the list of Part Groups as defined in the Regions tab of the Simulation editor. Every Part Group can be activated/deactivate independently from the others. In our case, we just want to visualise the sphere geometry, so we select Part 7. The other part groups in the list corresponds the boundaries of the outer domain
- Sections list: similarly to the parts, to view the sections the Show section checkbox needs to be ticked. In the drop-down menu, the user can select to enable sections normal to X, Y and Z direction
- Direction handling: from the drop-down menu it is possible to select which of the displayed planes to move. Make sure that the plane you are trying to move is enabled in point 2, finally you can actually move the plane by pressing the up / down arrows on the keyboard or by pressing the two horizontal arrows just below the drop-down menu in the viewer
- Back in the Simulation manager window, it is now time to run the simulation clicking on the Run simulation icon
- Next to the Run icon there is also a Stop icon which can be used to stop either the meshing phase or the running phases while these are running
- The Live data will show the output from the solver as the simulation is running. During the Run phase the Forces and Residuals tabs will show graphs of the force coefficients on the main geometry and the equations residuals. These can be used to monitor the evolution of the solution and assess the its convergence
- Once the simulation is completed, right click on it and select Field → Load to load the results in the Field viewer
- The simulation results will now be loaded into the post-processor. Select the mesh edges visibility as desired, in this case the mesh edges are not shown
- In the Variable tab of the menu of Fields viewer select the velocity U (magnitude), set the Min/Max range from 0 to 10 m/s and press the button Update legend (as already specified previously the velocity is expressed in m/s)
- The Fields viewer will now display the velocity filed on every selected entity. Make sure that the sections (planes) are shown. You can scroll through different planes with the two arrows in the post-processor or alternatively with the arrow up and down on the keyboard
Similarly to the Field viewer, it is possible to right click on the simulation results and select Plots → Load. This will open the last of the SimWorks windows called Plot viewer, which can be used to create 2D graphs. As in the Field viewer, the Plot viewer has a task bar at the top and a menu on the right side.
- The two icons highlighted help to change the view, so it is possible to move the graph or to zoom in (just click on the home icon button to reset the view)
- The two icons in the middle allow to change the plot settings, like font, size and scale
- The save icon can be used to save the plot content as an image
- It is also possible to add a new plot by selecting a new variable in the Selected variable menu. The new graph will have the selected variable on the Y axis while the X axis corresponds to the iteration number/time step.
- Alternatively, it is possible to select a predefined set of graphs from the Standard plot sets
- Click on the Add new plot button to actually update the Plot viewer to display the new plot defined at point 4 or 5. The Clear all plots button can be used to remove all current plots in the Plot viewer
Now you have a quick overview of the main elements in the SimWorks GUI, please complete some of the base and intermediate tutorials to explore more about SimWorks and get confident using it. You can then either complete advanced tutorials or simply import your own .igs file and apply the same process to it.
Try our free CFD software SimWorks, no registration required or contact us to find out more