# Create Volume Mesh

# refinementFactor

If you set refinementFactor=2, then the number of nodes in the volume mesh will be doubled approximately.

# volume

There are 3 parameters for the volume mesher:

  1. firstLayerThickness: Thickness of the 1st anisotropic layer growing from the surface mesh.
  2. growthRate: Ratio of thicknesses between 2 adjacent layers.
  3. gapTreatmentStrength: A value between 0 and 1, where 0 is no gap treatment and 1 is the strongest gap treatment. See detailed description of this parameter here (opens new window).

# refinement

Both box and cylinder refinement zones are supported. Inside the refinement zones, the max edge length will be restricted

  1. type: By default, a box refinement zone will be created.
  2. center: Coordinate of geometrical center.
  3. spacing: Target edge length of the cells in the refinement zone.

# box

To define a box refinement zone, you need to provide:
4. size: Size of the box in x, y, and z directions.
5. axisOfRotation: Axis of rotation for the box.
6. angleOfRotation: Angle (in degrees) of rotation for the box.

To align the box refinement zone along an arbitrary direction, axisOfRotation and angleOfRotation are needed to define an extra rotation. In the example below, as the axisOfRotation is along the +y direction, the box will be pitched up by 10 degrees respect to its center (following the right-hand rule)

# cylinder

To define a cylindric refinement zone, you need to set type as cylinder. Then you need to provide:
7. radius: Radius of the cylinder.
8. length: Length of the cylinder.
9. axis: Axis of the cylinder.

Example:

"refinement": [
 {
     "size": [4, 3, 2],
     "center": [2, 0, 0],
     "spacing": 0.05,
     "axisOfRotation": [ 0, 1, 0 ],
     "angleOfRotation": 10
 },
 {
     "type": "cylinder",
     "radius": 4,
     "length": 5,
     "center": [5, 0, 0],
     "spacing": 0.05,
     "axis": [1, 0, 0]
 }]

For more details, please see the refinement section (opens new window) of our documentation page.

# rotorDisks

For cases with actuator or BET disks, there will be a strong discontinuity across the disk. To better resolve such discontinuity, it's strongly recommended to anisotropically refine mesh around the disk. rotorDisks will create a semi-structured mesh locally, where the cell size along the axial, radial and circumferential directions can be adjusted independently.

  1. name: This is optional unless you want to enclose this disk in a sliding interface.
  2. innerRadius: If this is greater than 0, then the mesh for rotor disk will have a hole in the middle. You can use this if you have a hub in your propeller.
  3. outerRadius: Typically we would recommend setting this value slightly larger than the radius of your blade.
  4. thickness: Thickness of the disk refinement zone, typically set it to 0.75 of maximum chord of your propeller.
  5. axisThrust: This will be used as the axis of the disk.
  6. center: Coordinates of the disk center.
  7. spacingAxial: Cell edge length along the axial direction. Typically we will have 20~30 layers along the axial/thickness direction.
  8. spacingRadial: Typically we will keep spacingRadial the same as spacingCircumferential
  9. spacingCircumferential: Typically we will have 720 cells along the circumferential direction so you can set spacingCircumferential roughly 2*PI*outerRadius/720

Consider a rotor radius of 1.0 (m) and max chord length of 0.1 (m).

"rotorDisks": [
     {
         "name": "myRotorDisk",
         "innerRadius": 0,
         "outerRadius": 1.25,
         "thickness": 0.075,
         "axisThrust": [1, 0, 0],
         "center": [0, 0, 0],
         "spacingAxial": 4e-3,
         "spacingRadial": 0.01,
         "spacingCircumferential": 0.01
     }
]

For more details, please see the rotorDisks section (opens new window) of our documentation page.

# slidingInterfaces

  1. name: This is optional unless you want to enclose this sliding interface inside another sliding interface.
  2. enclosedObjects: This tells the mesher which components should be enclosed in this sliding interface.
  3. thickness: You need to ensure the sliding interface is thick enough to enclose not only the blade but also the hub of your rotor.
  4. spacingAxial: Typically we will have 50~100 cells along the lateral direction of the sliding interface.
  5. The rest of the parameters are similar to the rotorDisk above.

Example:

"slidingInterfaces": [
    {
        "name": "mySlidingInterface",
        "innerRadius": 0,
        "outerRadius": 1.25,
        "thickness": 0.25,
        "axisOfRotation": [0, 0, 1],
        "center": [0, 0, 0],
        "spacingAxial": 0.0025,
        "spacingRadial": 0.01,
        "spacingCircumferential": 0.01,
        "enclosedObjects": ["rotor"]
    },

For more details, please see the slidingInterfaces section (opens new window) of our documentation page.