Step-by-Step Tutorial DroneS1



Homework Submission

Submitting all four homework assignments will qualify you for a Certificate of Completion.

Homework 1 - Deadline: Date, 18th of May, 11:59 pm

Homework Submission Form


The aim of the of this homework assignment is to investigate and compare the aerodynamic characteristics of different quad-copter propeller designs by changing the angle of attack of blades of the propeller.

We will analyze the lift generated by the propeller depending on the angle of attack. We will use blades with different angle of attack at the rotational speed of 1200, 1600 and 2000 rad/s. You can change the angle of attack to any number (between 0-12 deg). Please follow the tutorial to make the changes in the geometry.

Your final homework project should contain 2 simulations, one for each design, and 6 simulation runs. Of course you can test more angles as well as number of blades, just make a new simulation with every changed model.


Let’s take a look at the physics of the drone before we start to set up our simulations:

The first thing you will notice about the mesh of the drone is the fact that it only contains a quarter of the actual geometry. This is because the drone is a symmetric body. Thus it is best to simulate only one quarter of the drone to reduce the computational effort by defining the inner surrounding walls (yellow) as symmetry planes.

The outer, lower and upper surrounding walls (blue) are necessary to limit the domain we want to simulate, since we are not able to simulate an infinitely large domain. Nevertheless they do not exist in reality and should therefore not interact with the flow. A good approximation here is to assume this wall is frictionless (slip walls).

The body of the drone is a physical wall (green), which means that it involves friction. This faces (including the propeller) should be considered as non-slip walls.

To include the effect of the rotating propeller to the simulation we will use a technology called MRF (Multiple Reference Frame). Instead of “moving” the mesh which would create a high computational effort, the MRF approach allows to add the rotation of the air around the propeller (orange) directly.

Step-by-Step instructions

For this project you will be given a link to the OnShape CAD project. Onshape is an online CAD modeling platform, which allows full CAD modeling from the web browser. Onshape models can directly be imported to SimScale. Please make sure you have an Onshape account (Community account is free). To get the Onshape account please go to the Onshape website and make an account. Once you have the Onshape account you can make the changes to the model and then import it to the SimScale.


To get the Onshape model click on this link. You will be directed to the Onshape CAD project. Make a copy of the project by clicking the Make a Copy button.

Once the CAD project is added to your workspace you can start editing the geometry. Make sure you are in DroneParts tab, here you will see the two parts, “RotationZone” and “Drone”. You can hide any part by clicking the eye sign next to it.

To change the angle of attack of the blade, scroll down in the CAD tree and find the operation AngleOfAttack

Double click on the “AngleOfAttack” operation and set the angle (between 0-12 deg), and press green button to save.

To change the number of blades scroll down in the CAD tree and double lick NoOfBlades operation. Give the number of blades and press green button to save the selection.

Once the geometry is ready, open your SimScale Dashboard and press New Project to create a new project. Give the proper name and description to the project, you can also select the application area of the project in the category.

Once the project is crated open the project by clicking Open.

Once the project is opened, move to the Geometries project in a new tab and press Import option to import geometry directly from OnShape.

Here find your CAD model, select it and press “Import” to start importing the model to SimScale. Make sure you are logged in to OnShape.


Once the model is imported into your SimScale workspace click on the geometry and press New Mesh mesh to add a new mesh setup.

A mesh tree will be added to the left column and mesh settings will appear in the middle column. In the middle column select the mesh type Hex-Dominant parametric (only CFD) and set the other parameters according to the following image. Press “Save” to save the selection.

Now we will define the domain around the drone. The air around the drone will be bounded within this domain. In reality there is no such domain around the drone, but for simplicity we will define walls around the drone and will give boundary conditions on the wall such that it simulated the infinite boundary. In the mesh tree, move to the Background Mesh Box and set the dimensions of the box accordingly.

Next move to the Material Point and set the coordinates accordingly This is the starting point for meshing process, it tells the mesher which region to mesh. If this point is within the geometry then the geometry will be meshed from inside. Here we want to mesh the domain around the geometry so this point should be within the domain but outside the geometry.

Now we will create the region around the model, which will be used in the mesh refinement process. To make the geometric entity, move to the Geometry Primitives and press add a new Cartesian_Box.

Give the dimension according to the following image.

To get the good quality mesh, we will add certain mesh refinements. The result quality highly depends on the mesh quality, finer mesh ensure the good results. But the finer mesh also takes more computational power. To keep the mesh as small as possible without compromising the result quality, instead of making the fine mesh in the whole domain, we refine the mesh in selective more critical regions. to do so move to the Mesh Refinements in the mesh tree and press “New” to add a new mesh refinement.

To separate the rotational part of the drone we need to make a surface refinement. We will use this rotational part to mimic the effect of the rotation later in the tutorial. Change the name of the refinement to “Rot_Zone”,refinement type to Surface Refinement,set all the other parameters accordingly and assign the “Solid_1” for this refinement. Save the selection.

Next add another mesh refinement. Give the proper name and change the type to “Region Refinement”. Set the parameters and assign previously created “Cartesian Box” for this refinement.

To refine the mesh on the drone body, add another “Surface refinement”, set the parameters and assign the drone body without the blades.

To refine the blades of the drone, add a surface refinement for the blades.

Finally to resolve the flow near the surface of the drone, add a refinement to add the layers on the drone surface.

Now to start the mesh move to the “Operation_1” in the mesh tree and press Start to start the mesh.


Once the mesh is completed, click on the ‘Simulation Designer’ button on the main ribbon bar and then on the New button to create a simulation run.

This will open an additional column in the middle. Here you can select which kind of simulation you want to run. In our case we will run a Fluid dynamics simulation of an incompressible fluid.

Now you can define some additional settings. First of all choose the k-omega SST turbulence model. This is necessary since the airflow around the propeller will be highly turbulent. Then choose Steady-State from the drop down field below. This means that we will simulate the stationary flow field. Finally save your settings, which will create additional items in the project tree on the left side.

Going forward, this tree will guide us through all the necessary steps. Please note that some of the items are optional.

Next you have to specify which mesh you want to use for your simulation. Click on Domain item in the project tree and select 3Blade_Mesh from the menu. Don’t forget to save your selection.

Now we have to specify the material properties of the fluid. Click on the Materials sub-item in the project tree and press New to add new material.

This will open a new middle column windows where you can assign fluids to your mesh. SimScale also comes with a material library which we will use. Click on the Import from material library button

Here choose Air from the list and save your selection.

Finally we have to assign which parts of the mesh should be this material. Since we are only dealing with air select both volumes from the list.

The next item Initial Conditions can be skipped since the default values are fine for our simulation setup. For the sake of completeness, however, a short explanation about the meaning of these settings:

The Initial Conditions define the initial values for all physical quantities like pressure, velocity, etc. To understand this you have to keep in mind how engineering simulation actually works: Since the mathematical equations which describe the motion of fluids can only be solved numerically, the solver needs an initial solution to iterate. In some special cases it can be necessary to adapt this in order to make the simulation more stable. But this is not necessary in most of the cases.

Now you can start to specify the physical behavior of the drone and its interaction with the environment by defining the Boundary Conditions for all faces of the mesh.

Click on the Boundary Condition item in the project tree which will again open a new column in the middle of the windows. Here you can see an overview of all boundary conditions which are applied to your mesh. To add a new Boundary Condition, click New

This will add a sub-item to the project list and open a new window where you can define the boundary condition. Here you can define a name for the boundary condition, choose the type and assign it to faces by using the list below.

It is also possible and recommended to select the faces which you want to assign to the boundary condition graphically. You can select the faces in the 3D model window by clicking on them with the left mouse button; to add them to the list, just click on the Add selection from Viewer button in the middle column.

Since the full mesh domain is displayed, it is necessary to hide these faces in order to be able to select the inner faces. For this, select the faces you want to hide and click on the Hide Selection button from the drop down menu on top of the 3D model windows. Note that you can unselect faces by re-clicking on them.

Now we will create the 3 necessary boundary conditions.


This boundary condition is required because we are using a quarter model of the drone. Select Symmetry as the type and the 2 surrounding faces (boundingBox3, boundingBox5) which intersects with the drone body.


As already discussed, this boundary conditions will reduce the interaction of the other surrounding walls. It is necessary because these walls do not exist in reality.

Select Wall as the type and Slip for Velocity and Wall function for the wall treatment. Now select the remaining surrounding faces (boundingBox1, boundingBox2, boundingBox4, boundingBox6) and add them to the list of faces.


Next we will apply the boundary condition to the drone. Select Wall as the type and No-Slip for Velocity and Wall function for the wall treatment.

To select the right faces, it is necessary to hide the surrounding surfaces as described in the previous section. You will notice that there is a cylindrical surface around the propeller which you also have to hide. Now you can select the surfaces of the drone. Be sure to select EVERY surface of the propeller (some of them are very small,) including the upper shaft of the propeller. You can also use select all in the drop down menu, which will select ALL visible faces.

Next we will assign the rotation to the propellers. Click on the Advanced Concept item in the project list and click then on the Add rotating zone button in the middle column. This will open a new middle column menu where you can specify the rotation.

The mesh includes two zones. One of them (Rotation) includes all cells around the propeller. The only thing you have to do is specify the Rotation center (0.0849, 0.037, 0.0849), the Rotation axis (0, 1, 0) and the angular velocity of the rotation which is 2100 rad/s (this is equal to 20000 rpm). Last, select the cell zone Rotation from the list bellow and save.

Now we have to modify some of the numerical settings. This is not absolutely necessary but it will help to reduce the simulation time and make it more stable. Click on the Numerics items in the tree and change the settings and values according to the image below (Please note that you have scroll down).

Click on the Simulation Control item in the project tree to specify how fast and accurate you want the simulation to be computed.

Choose 0 as the Start time value and 3000 as the end time value. The time step length must be 1 and the write interval 3000. Finally, choose 32 computing cores from the drop down menu and define a maximum runtime of 10000 seconds (this is the time after which the simulation run will automatically be cancelled).

To “measure” the lift force of the drone we have to add Result Control item. Click on the corresponding item in the project tree and click on New for Add Forces and moments item.

Choose Forces and moments as a type, define (0.0849, 0.037, 0.0849) as the Center of rotation. Skip the remaining settings and add all surfaces of the drone to the surface list (workflow according to the drone boundary condition)

To start the simulation, click on the Simulation Run item in the tree and click on the New against Simulation Runs. This will create a snapshot of your simulation settings as a new sub-item. Give the proper name to the run.

You can now start the simulation run by selecting it from the project tree and then click on the Start button.

You will be notified by email when the simulation is finished. To check the results of the lift force, click on the Post-Processor button in the main ribbon bar. On the left side is a result tree, where you can find all simulation results. Click here on the sub-item Force plot and select the related plot. This will open a graphical chart on the right side where you can see the calculated forces and moments against the number of iteration. Moving your mouse over the line for Pressure force y will show you the lift of the drone.


  • Once the simulation is finished, move to the Post-Processing tab and load the Solution fields to the viewer by clicking on the given option.

  • Now to visualize the steam lines, add a filter by pressing the Add Filter button and selecting the Stream Tracer filter.

  • Next change the properties of the stream lines and also change the field for the stream lines.

  • To show the drone, right click on Solution fields and select Add result to the viewer.

  • Now move to the newly added solution. In the Mesh Regions select only the drone faces and also change the Field to Solid color.

  • Finally move to the StramTracer1 and change the properties for better visualization.

Simulation Error - Boundary Condition



I am having a “bit” of a problem. the flow in the post-processor if wrong, can someone help please?


Hi @pgalamba!

You just forgot to adapt the values for the Stream Tracer, that’s all. You can find the values in the Post-Processing part of this thread.

Let me know if that helped.




Thank you. It’s ok now, I need to be more alert.


Did anyone find a way to make a 1-bladed prop? It wouldn’t let me do it. Since there was already pics and footage of 2/3/etc bladed props, wanted to see if you could have something that didn’t eat its own wake the next rotation.


Hi @brendan_a_b,

I just tried it out in Onshape - and you can enter 1 into NoOfBlades field (there will be an error message but just proceed with exporting):

Not so sure this version would fly though :wink:



Cheers, when I tried it the whole thing went yellow, wouldn’t save, and so in simscale I could only import the most recent saved state.

btw, they use this for some gliders with fold-out props because of size, and apparently in some other cases because in theory it’s more efficient (less rotational airflow, more clean air for the blade).


Ah I see - in my case I exported the part directly from Onshape as a STEP and then uploaded it to the project rather than using Import.

That’s an interesting concept, be sure to share your results with us :slight_smile:



Hi, I am still not sure about the concept of rotation disc around the propeller and what kind of cad operation is needed before importing it in mesh?


Hi @cashifk!

With the CAD operation you want to define your MRF zone for later on. The tutorial gives a pretty good idea about that. When you have a look at other projects involving MRF you can see that you basically just need a cylinder around your domain, that’s it. Let me know if you need help with that.




I get that it’s just a cylinder around the propeller but is it a merged solid? or is it just a surface around the propeller? Thanks


Hi @cashifk!

It is a merged solid consisting of surfaces. If you want to work with OnShape make sure to check out this post here: OnShape - Merging & Meshing

All the best!



Interesting tutorial! Any ideas of how well this represents reality?
I’m just a little bit worried that the use of wall functions and MRF might yield inaccurate an lift force.


Hi @Filiptheking!

Every simulation/modelling implies an abstraction of reality thus will not represent reality in every detail (so deep…). Why not run another simulation without wall functions and MRF and see the difference? I doubt that this is more accurate. I remember that one of our users @afelfoldi is familiar with those kinds of simulations and maybe can give you some tips.




I did a simulation with full resolution wall treatment instead of with wall functions. The difference in lift force seems quite small.

Lift force when using Full resolution wall treatment = 2.9288 N
Lift force when using Wall functions = 2.9287 N

I was a little bit surprised that simulation time were almost the same (both at around 50 minutes).