Parameters
YAML and Directory Structure
The YAML structure below details all possible parameters, their expected data types, and input formats.
1filetype: string
2domain:
3 terrain_path: string
4 x_range: [double, double]
5 y_range: [double, double]
6 height: double
7 aspect_ratio: int
8 upper_aspect_ratio: double
9 aspect_distance: double
10 dimension: int
11 inflow_angle: double
12 type: string
13 center: [double, double]
14 radius: double
15refine:
16 global_scale: double
17 background_length_scale: double
18 farm:
19 type: string
20 length_scale: double
21 threshold_distance: double
22 turbine:
23 type: string
24 length_scale: double
25 threshold_upstream_distance: double
26 threshold_downstream_distance: double
27 threshold_rotor_distance: double
28 num_turbines: int
29 1:
30 x: double
31 y: double
32 HH: double
33 2:
34 x: double
35 y: double
36 HH: double
37
38 # ...
39
40 n:
41 x: double
42 y: double
43 HH: double
44refine_custom:
45 num_refines: int
46 1:
47 type: string
48 x_range: [double, double] or double
49 y_range: [double, double] or double
50 z_range: [double, double]
51 radius: double
52 length_scale: double
53
54 # ...
55
56 n:
57 type: string
58 x_range: [double, double] or double
59 y_range: [double, double] or double
60 z_range: [double, double]
61 radius: double
62 length_scale: double
Parameter Descriptions
The schema above contains domain and refinement parameters. The following sections will describe the domain and refinement customizability offered by AeroMesh, as well as some different options offered in 3D and 2D meshes that can provide additional flexibility.
Domain Parameters
This section details the parameters that define the domain for both 2D and 3D simulations. These parameters are not optional and must be included in every meshing procedure.
Parameter |
Description |
Optional |
|---|---|---|
type |
Box by default. Can be set to cylinder for a cylindrical outer domain (or a circle in 2D). |
Yes. |
x_range |
The minimum and maximum x-coordinates that define the meshing domain. |
No. |
y_range |
The minimum and maximum y-coordinates that define the meshing domain. |
No. |
dimension |
The dimension of the mesh. 2 for 2D meshes, 3 for 3D meshes. |
No. |
inflow_angle |
If there is one incoming wind vector, this flag will orient the turbines to face the wind. Input the angle in degrees. |
Yes. |
Refinement Parameters
There are a few parameters that apply globally across refinements. This section details them.
Parameter |
Description |
Optional |
|---|---|---|
global_scale |
A scaling factor applied uniformly to all length scales. 1 by default, to create no effect. |
Yes. |
background_length_scale |
The length scale of the meshing across the entire domain. |
No. |
Creating Turbines
The number of turbines must be specified using the appropriate (num_turbines) field. For each turbine, create a numerical field and populate it with the three relevant turbine parameters. Examples are shown here, under the turbine header. The table below describes the three turbine parameters.
Parameter |
Description |
Optional |
|---|---|---|
x |
The x-coordinate of the center of the turbine. |
No. |
y |
The y-coordinate of the center of the turbine. |
No. |
HH |
The turbine’s hub height. This parameter determines how high off the terrain the turbine center is placed. Set to 100 by default. |
Yes. |
Creating Turbines
In addition to defining the location of the farm’s turbines, AeroMesh provides additional global customizability that applies to every turbine in the mesh. These options are described below.
Parameter |
Description |
Optional |
|---|---|---|
num_turbines |
The expected number of turbines. |
No. |
length_scale (turbine) |
The length scale of the meshing near the turbines. |
No. |
threshold_upstream_distance |
The extent to which the turbine meshes should extend in the negative wake direction. |
No. |
threshold_downstream_distance |
The extent to which the turbine meshes should extend in the positive wake direction. |
No. |
threshold_rotor_distance |
The radius formed by a rotation of the turbine’s rotor. |
No. |
Creating Farm Refinements
AeroMesh defines a “farm” as, at a minimum, a bounding geometry that surrounds all the turbines and an associated length scale for this region. Note that farms are optional and do not need to be included in the YAML if not desired. Examples are shown here, under the farm header. The table below describes the farm parameters.
Parameter |
Description |
Optional |
|---|---|---|
type |
None (disabled) by default. Can be set to cylinder or box if desired. |
Yes. |
threshold_distance |
By default, a farm region is defined by a minimum bounding rectangle surrounding all the turbines. This parameter extends the bounding region by its value. |
Yes. |
length_scale |
The length scale of the points contained within the farms. |
Yes. |
Creating Custom Refinements
Creating custom refinements is almost identical to creating turbines. The number of custom refinements must be specified. Depending on the type of refinement (box or cylinder) desired, different parameters must be supplied. In 2D meshes, the 3D refinement types will be replaced with their 2D analogs without the need for any flags from the user. Examples are shown here, under the refine_custom header. The table below describes the relevant sub-parameters.
Parameter |
Description |
Optional |
|---|---|---|
type |
Either “box” for a box refine or “cylinder” for a cylindrical one. |
No. |
x_range |
In box refines, the x range of the refinement. In cylinders, the x-coordinate of the center. |
No. |
y_range |
In box refines, the y range of the refinement. In cylinders, the y-coordinate of the center. |
No. |
z_range |
The z range of the refinement. |
No. |
radius |
The radius of a cylindrical refinement. Unused by box meshes and does not need to be included. |
No. |
length_scale |
The length scale across the custom refinement. |
No. |
3D Domain Customizability
3D meshes have some additional domain-level parameters not available in 2 dimensions. These parameters are described below.
Parameter |
Description |
Optional |
|---|---|---|
terrain_path |
The path to a file containing valid terrain data, where the terrain is a function f(x, y) = z. If omitted, the domain will have a smooth bottom face. |
Yes. |
height |
The extension of the wind farm in the z-direction. |
No. |
aspect_ratio |
The ratio of nodes in the z-direction to nodes in the x-y plane. Used to create anisotropic effects, if desired. |
Yes. |
upper_aspect_ratio |
Similar to aspect_ratio, but applied above the threshold distance instead to create expanded nodes in the z-direction. Note that the resultant size after the application of both aspect ratios must be at least the original height of the domain to prevent undefined behavior. |
Yes. |
aspect_distance |
The z-distance up to which the anisotropic effects generated by aspect_ratio will extend. |
Yes. |
2D Turbine Customizability
In 2D meshes, the type of refinement that defines the turbine may be specified. This customizability is done using the refine[turbine][type] flag. The table below describes the flag.
Parameter |
Description |
Optional |
|---|---|---|
type |
Determines whether turbines are meshed using a rectangular wake or as a large circle. The options are rectangle and circle respectively. Rectangles are used by default. |
Yes. |
Output Format
AeroMesh produces an output file named out.extension that contains the mesh data. The extension type can be controlled by the “filetype” field. By default, AeroMesh produces msh files. However, it supports any other data formats handled by GMSH and the additional xdmf output type if desired.