Skip to content

Commit 203a003

Browse files
committed
Adding a tutorial for the actuator disk with variable load
1 parent 99655ba commit 203a003

File tree

1 file changed

+194
-0
lines changed

1 file changed

+194
-0
lines changed
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
---
2+
title: Actuator Disk With Variable Load
3+
permalink: /tutorials/ActuatorDisk_VariableLoad/
4+
written_by: Ettore Saetta
5+
for_version: 7.0.8
6+
revised_by:
7+
revision_date:
8+
revised_version:
9+
solver: RANS
10+
requires: SU2_CFD
11+
complexity:
12+
follows:
13+
---
14+
15+
**Insert Image** ![Actuator Disk](../../tutorials_files/compressible_flow/ActuatodDisk_VariableLoad/images/nome.png)
16+
17+
## Goals
18+
19+
Upon completing this tutorial, the user will be able to simulate the presence of a propeller using an actuator disk boundary condition, including also the swirl effects. The specific geometry chosen for the tutorial is composed by an actuator disk and a semi-infinite spinner (grid file and propeller data courtesy of Mauro Minervino, Centro Italiano Ricerche Aerospaziali (CIRA)).
20+
21+
This tutorial is referred only to the actuator disk model "*VARIABLE_LOAD*" implemented in the V7.0.7.
22+
23+
## Resources
24+
25+
The resources for this tutorial can be found in the [TestCases/rans/actuatordisk_variable_load](https://github.com/su2code/SU2/tree/master/TestCases/rans/actuatordisk_variable_load) directory in the [SU2 repository](https://github.com/su2code/SU2). You will need the configuration file ([propeller_variable_load.cfg](https://github.com/su2code/SU2/tree/master/TestCases/rans/actuatordisk_variable_load/propeller_variable_load.cfg)), the mesh file ([propeller_variable_load.su2](https://github.com/su2code/TestCases/tree/master/rans/actuatordisk_variable_load/propeller_variable_load.su2)) and the propeller input data file ([ActuatorDisk.dat](https://github.com/su2code/SU2/tree/master/TestCases/rans/actuatordisk_variable_load/ActuatorDisk.dat)). *It is important to note that the grid used in this tutorial is very coarse to keep computational effort low, finer meshes should be used.*
26+
You will also need the [OptimalPropeller.py](https://github.com/su2code/SU2/tree/master/SU2_PY/OptimalPropeller.py) script which is an useful tool to generate the propeller input data file.
27+
28+
## Tutorial
29+
30+
The following tutorial will walk you through the steps required when solving for the flow in presence of a propeller using SU2. The tutorial will also shows ho to generate the propeller input data file witht the help of the [OptimalPropeller.py](https://github.com/su2code/SU2/tree/master/SU2_PY/OptimalPropeller.py) script. To this end, it is assumed you have already obtained and compiled SU2_CFD. If you have yet to complete these requirements, please see the [Download](/docs_v7/Download/) and [Installation](/docs_v7/Installation/) pages.
31+
32+
### Background
33+
34+
This test case is for an actuator disk with a semi-infinite spinner. The actuator disk is a boundary condition used to simulate the effects of rotary wings in a simple way.
35+
In aeronautics it is a crucial topic for the airframe integration. Nowadays, with the research on the Distributed Electric Propulsion (DEP), a good actuator disk model is getting importance in order to simulate the effects of the propellers on the airframe by fast CFD analysis.
36+
However, the disadvantage of using an actuator disk model is that the unsteady effects are neglected.
37+
38+
### Problem Setup
39+
40+
This problem will solve the flow with these conditions:
41+
- Freestream Mach number = 0.55996
42+
- Angle of attack (AOA) = 0.0 deg
43+
- Reynolds number = 3.65E7
44+
- Reynolds length = 5.0292 m
45+
46+
The global propeller data are:
47+
- Thrust coefficient = 0.15
48+
- Advance Ratio = 2.81487
49+
- Radius = 2.5146 m
50+
51+
The thrust coefficient is defined using the "Renard" definition: the reference force is <img src="https://render.githubusercontent.com/render/math?math=\rho n^2D^4">, where *n* are the propeller rounds per second and *D* is the propeller diameter
52+
The advance ratio is defined as <img src="https://render.githubusercontent.com/render/math?math=J=\frac{V_\infty}{nD}">.
53+
54+
### Mesh Description
55+
56+
The computational domain contains the actuator disk mounted on a semi-infinite spinner. The mesh consists of 48,736 elements and 51,847 nodes. Again, we note that this is a very coarse mesh, and should one wish to obtain more accurate solutions for comparison with results in the literature, finer grids should be used.
57+
58+
Three boundary conditions are employed:
59+
- Actuator Disk on the two surfaces (upstream and downstream) of the actuator disk.
60+
- Navier-Stokes adiabatic wall on the spinner.
61+
- Far-field condition on the outer domain surface.
62+
63+
**Insert Image - Domain and Mesh**
64+
65+
### Configuration File Options
66+
67+
Only the actuator disk boundary condition options are highlighted here:
68+
69+
```
70+
% -------------------- BOUNDARY CONDITION DEFINITION --------------------------%
71+
%
72+
ACTDISK_DOUBLE_SURFACE = YES
73+
%
74+
% Actuator disk boundary type (VARIABLE_LOAD, VARIABLES_JUMP, BC_THRUST,
75+
% DRAG_MINUS_THRUST)
76+
ACTDISK_TYPE= VARIABLE_LOAD
77+
%
78+
% Actuator disk data input file name
79+
ACTDISK_FILENAME= ActuatorDisk.dat
80+
%
81+
% Actuator disk boundary marker(s) with the following formats (NONE = no marker)
82+
% Variable Load: (inlet face marker, outlet face marker,
83+
% 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) Markers only effectively used.
84+
MARKER_ACTDISK = ( DISK, DISK_BACK, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 )
85+
```
86+
87+
The `ACTDISK_DOUBLE_SURFACE` option, in this case, is setted to `true` because the actuator disk surface has been splitted in two parts: upstream and sownstream surfaces.
88+
The `ACTDISK_TYPE` option, is used to chose the actuator disk boundary type. In this tutorial, we want to use a model that allows to consider a variable load distribution along the disk, and that also take the *swirl* term into consideration. The actuator disk type that meets these conditions is the `VARIABLE_LOAD`.
89+
The `ACTDISK_FILENAME` option is used to specify the name of the actuator disk data input file. Further we will see how to generate this file.
90+
The `MARKER_ACTDISK` option, requires the following arguments:
91+
- Marker of the upstream surface of the actuator disk.
92+
- Marker of the downstream surface of the actuator disk.
93+
- 6 zero arguments. These arguments have a different meaning using different `ACTDISK_TYPE`. In this case, they are all setted to `0.0` because they are not needed.
94+
95+
*If there are more actuator disks, it is possible to append them in the `MARKER_ACTDISK` option.*
96+
97+
### Input Data File
98+
99+
The input data file is needed for the `VARIABLE_LOAD` actuator disk type.
100+
An example of this file (used in this tutoral) is here reported:
101+
102+
```
103+
MARKER_ACTDISK= DISK DISK_BACK
104+
CENTER= 0.0 0.0 0.0
105+
AXIS= 1.0 0.0 0.0
106+
RADIUS= 2.5146
107+
ADV_RATIO= 2.81487
108+
NROW= 37
109+
# rs=r/R dCT/drs dCP/drs dCR/drs
110+
0.2031 0.020066 0.0890674 0.0
111+
0.2235 0.019963 0.0932674 0.0
112+
0.2439 0.021707 0.0982980 0.0
113+
0.2644 0.024667 0.1064153 0.0
114+
0.2848 0.029147 0.1189045 0.0
115+
0.3257 0.043674 0.1588513 0.0
116+
0.3461 0.053380 0.1849900 0.0
117+
0.3665 0.064327 0.2145367 0.0
118+
0.3870 0.076521 0.2471873 0.0
119+
0.4278 0.103679 0.3203392 0.0
120+
0.4483 0.118918 0.3609085 0.0
121+
0.4687 0.135619 0.4051864 0.0
122+
0.4891 0.152986 0.4518863 0.0
123+
0.5096 0.171453 0.5011266 0.0
124+
0.5300 0.190755 0.5528521 0.0
125+
0.5504 0.211062 0.6072281 0.0
126+
0.5709 0.231313 0.6620508 0.0
127+
0.5913 0.251252 0.7161404 0.0
128+
0.6117 0.271376 0.7700722 0.0
129+
0.6322 0.290980 0.8219708 0.0
130+
0.6526 0.309848 0.8715231 0.0
131+
0.6730 0.328502 0.9202496 0.0
132+
0.6935 0.346774 0.9681596 0.0
133+
0.7139 0.364895 1.0156277 0.0
134+
0.7343 0.381991 1.0603740 0.0
135+
0.7548 0.398417 1.1036331 0.0
136+
0.7752 0.413550 1.1442054 0.0
137+
0.7956 0.427447 1.1820164 0.0
138+
0.8161 0.440093 1.2163819 0.0
139+
0.8365 0.451007 1.2453084 0.0
140+
0.8569 0.460535 1.2682212 0.0
141+
0.8774 0.467765 1.2823500 0.0
142+
0.8978 0.471296 1.2839416 0.0
143+
0.9182 0.470303 1.2701343 0.0
144+
0.9387 0.460921 1.2317719 0.0
145+
0.9591 0.434937 1.1470356 0.0
146+
0.9795 0.377288 0.9746048 0.0
147+
```
148+
149+
The `MARKER_ACTDISK` option, as the same for the configuration file, is used to specify the markers of the actuator disk surfaces. All the next propeller data will be referred to these surfaces.
150+
The `CENTER` option contains the coordinates of the actuator disk center, expressed in the grid reference system.
151+
The `AXIS` option contains the components of the unit vector normal to the actuator disk surface.
152+
The `RADIUS` option is used to specify the actuator disk radius.
153+
The `ADV_RATIO` option contains the advance ratio of the propeller defined as <img src="https://render.githubusercontent.com/render/math?math=J=\frac{V_\infty}{nD}">, where *n* are the propeller rounds per second and *D* is the propeller diameter.
154+
The `NROW` option isused to indicate the number of radial stations of the actuator disk in which we assign the load distribution.
155+
The next row is a dummy row, so it is skipped.
156+
Then there are 4 columns containing respectively:
157+
- The non dimensional radial station <img src="https://render.githubusercontent.com/render/math?math=J=\overline{r}=\frac{r}{R}">
158+
- The thrust coefficient distribution <img src="https://render.githubusercontent.com/render/math?math=J=\frac{\mathrm{d}C_T}{\mathrm{d}\overline{r}}">
159+
- The power coefficient distribution <img src="https://render.githubusercontent.com/render/math?math=J=\frac{\mathrm{d}C_P}{\mathrm{d}\overline{r}}">
160+
- The radial force coefficient distribution <img src="https://render.githubusercontent.com/render/math?math=J=\frac{\mathrm{d}C_R}{\mathrm{d}\overline{r}}">
161+
162+
These coefficients are defined using the "Renard" definition: the reference force is <img src="https://render.githubusercontent.com/render/math?math=\rho n^2D^4">, while the reference power is reference force is <img src="https://render.githubusercontent.com/render/math?math=\rho n^3D^5">
163+
*It is possible to append other propellers data at the end of the input file. Note that the order and the format of the options should not be changed.*
164+
165+
### Optimal Propeller Script
166+
167+
As already anticipated, the [OptimalPropeller.py](https://github.com/su2code/SU2/tree/master/SU2_PY/OptimalPropeller.py) script can be used to automatically generate the propeller input data file.
168+
This script allows the user to use the `VARIABLE_LOAD` actuator disk type also in case the propeller details are not available (in particular when the overall parameters ar known, but not the exact load distribution).
169+
The input is interactive, and requires the following data:
170+
1. Number of radial stations.
171+
2. CT: the total thrust coefficient defined using the "Renard" definition.
172+
3. R: The propeller radius expressed in meters.
173+
4. r_hub: the hub radius expressed in meters.
174+
5. J: the advance ratio.
175+
6. Vinf: the free-stream velocity expressed in m/s.
176+
7. Here, the script asks if you want to use the tip loss Prandtl correction (yes is the default chose).
177+
8. N: if you chose yes in the previous stage, it requires also the number of propeller blades.
178+
179+
Once the input is given, the script provides 3 plots showing the tip loss Prandtl correction function, the axial and rotational interference factors and the thrust and power coefficients distributions along the non dimentional radius.
180+
The script also provides 2 files:
181+
- ActuatorDisk.cfg: containing the actuator disk boundary condition options needed in the configuration file.
182+
- ActuatorDisk.dat: containing the propeller input data file.
183+
184+
*Note that the two generated files have some empty spaces that need to be filled.*
185+
186+
The load distribution obtined using the [OptimalPropeller.py](https://github.com/su2code/SU2/tree/master/SU2_PY/OptimalPropeller.py) script is the optimal load distribution using the inviscid theory of the optimal propeller.
187+
188+
*For reference: Glauert H., Airplane Propellers, in Aerodynamic Theory, Ed. Durand W. F., Vol. IV, pp. 169 - 360, Springer, 1935.*
189+
190+
### Results
191+
192+
Results of this simulation are here roprted...
193+
194+
**Insert Image - Results**

0 commit comments

Comments
 (0)