- Final result
- Preliminaries
- Step 1: create a new simulation model
- Step 2: Upload STL geometry
- Step 3: Setting up material parameters
- Step 4: Setting simulation parameters
- Step 5: Set up boundary conditions
- Step 6: Set up postprocessing
- Step 7: Run the simulation
- Step 8: Postprocess the results
- Step 9 (optional): postprocessing in Paraview
Welcome to the tutorial on the usage ReveaL, DirectFEM’s online platform for structural simulations. In this tutorial, we are going to simulate the stresses and displacements occurring in the quadcopter model depicted below. In this load case, we will rigidly fix the four locations where the engines are mounted and apply gravity load.
At the end of the tutorial, we will be able to see the von Mises stresses and the displacements in the structure, as seen in the following figure.
Final result #

Preliminaries #
If you prefer watching a video instead of reading text, the content of the first part of the tutorial is summarized in the following 5 minute video.
The STL files used throughout this tutorial are available from the following links:
Step 1: create a new simulation model #
After logging in to ReveaL, you will see an overview of your simulations. To create a new simulation, click on “Add new” below the table.

On the next screen, add a name to the simulation, e.g. “quadcopter_gravity_load”, then click submit.

Step 2: Upload STL geometry #
The next screen is the main simulation view of ReveaL. To set up the simulation, first we will need to upload the geometric model of the quadcopter in stl format. Click “Upload STL” on the right side under the “Assets” label.

After uploading the geometry, it will be displayed in the 3D view on the right side. To rotate the view, use the Left Mouse Button. To zoom in, use the mouse wheel. To pan the view, hold SHIFT + Left Mouse Button.

Step 3: Setting up material parameters #
Now we are ready to assign material properties to the model we just uploaded. To do so, select “quadcopter.stl” in the drop-down menu under the Setup label. We will assign the standard parameters of steel to the model. The Young’s modulus is 210000 MPa, its value is set in the input field next to “Material E”. The Poisson coefficient of steel is 0.3, its value is set in the input field next to “Material nu”. The density of steel is 0.00000785 kg/mm^3, which is set in the input field “Material rho”. These are also the default material values assigned, to a new model in ReveaL.
Step 4: Setting simulation parameters #
The precision of the simulation is controlled by the number of elements in the background mesh in the x, y and z directions, respectively. For our simulation, choose 32 x 32 x 32 elements in the input field “Number of elements”. Next, we can set the polynomial order of the elements in the background mesh by setting the value of the input field “P”. For now, we can leave its value at the default “1”. To turn on gravity, we set the direction of the gravity vector to point in the negative z direction. To do so, set the values “0 0 -1” in the “Gravity” input field.
After completing Steps 3 and 4, the values in the Setup section shall look the following:

Step 5: Set up boundary conditions #
In the first scenario, we simulate the case where all engine mounts are rigidly fixed by applying non-displacement boundary conditions on the four representative surfaces. To apply the boundary conditions, first upload the STL file representing these four surfaces by clicking “Upload STL” under the Assets group. Once uploaded, the STL file will appear in the Asset list. To create a new boundary condition, click on “Add BC” under the “Gravity” input field.

To apply no-displacement in the x direction, we set the following values in the fields that appear after having clicked “Add BC”:
- Geometry: quadcopter_fixed.stl
- Component: 0 (which represents the x direction”
- Type: dirichlet
- Value: 0
Similarly, we need to add no-displacement boundary condition on the same surfaces in the y- and z directions as well. To do so, add two more boundary conditions, with the same values as before, change only the component to “1” and “2”, respectively. After completing this step, the boundary conditions should look as follows:

Note: to delete a boundary condition, click on “Delete” next to the respective boundary condition name.
Step 6: Set up postprocessing #
Now we need to specify what results we want to have a look at after the computation has finished. To do so, select the STL file of the main mode in the “Postprocess on” drop-down menu. For this example, we want to see the displacements and von Mises stresses. Make sure that those checkbox are enabled. After completing this step, the postprocessing settings should look as follows:
Step 7: Run the simulation #
Having set up all the parameters for the simulation, we are ready to submit it. To do so, click “Submit” on the bottom of the 3D view.

Clicking “Submit” will put your simulation in the simulation queue and take you back to the summary of your simulation. You will see that the simulation status is “submitted”. Once the simulation is computing, the status will change to “computing”. As the computation is finished, the status turns to “finished”.

Step 8: Postprocess the results #
Once the simulation is finished, we can visualize the results. To do so, click on the name of the simulation in the simulation overview table to get back to the simulation setup screen.
To visualize the displacements, select “Displacement” from the drop-down menu in the lower right corner of the 3D view.

Similarly, von Mises stresses can be visualized by selecting “von Mises Stress” from the drop-down menu.

Step 9 (optional): postprocessing in Paraview #
The results are also stored in .vtu format which can be visualized in Paraview. To do so, download the result files by clicking “Download results” on the bottom of the 3D view.

The zip file contains all the uploaded assets, the logs that ReveaL produced, the simulation definition in json format, as well as the result fields in .vtu format.

The .vtu files may be opened in Paraview to perform more advanced post processing operations.
