1.7. XV-15 Rotor#

The XV-15 tiltotor aircraft is a commonly used test bed for propeller validation work. Its rotor geometry will be used to quickly run an isolated rotor simulation. This same geometry and additional simulation details are discussed further in a following tutorial.

1.7.1. Uploading the Mesh#

In order to run a rotating geometry, set up a mesh with two domains, an inner “rotational volume” and an outer “stationary volume”. The sliding interface between those two volumes needs to be a body of revolution (i.e., sphere, cylinder, etc.).

Inner rotational volume enclosing the XV-15 3-bladed prop

Fig. 1.7.1 Inner rotational volume enclosing the XV-15 3-bladed propeller#

For the purposes of this exercise, a pre-generated CGNS mesh will be used. This configuration has a blade pitch of 10°, targeting an ascent operating condition. The XV-15 mesh can be uploaded either through the Flow360 Web UI or through the Python API. When using the Python API, the Mesh.json file needs to be uploaded as well.

1.7.2. Case Inputs#

For this example, two different “Flow360.json” files are provided with runtime parameters specified: one for the initial 1st order run and one for the final 2nd order run. For more on 1st vs 2nd order simulations see the Knowledge Base.

This simulation will be using the following operating conditions:

  • Airspeed = 5 m/s

  • Rotation rate = 600 RPM

  • Speed of sound = 340.2 m/s

  • Density = 1.225 kg/m3

  • Alpha = -90°, air coming down from above (i.e., an ascent case)

Other key considerations:

  • The reference Mach number is arbitrarily set to the tip Mach number of the blades

  • The initial 1st order case will run 6° per time step for 1 revolution, hence 60 steps (i.e., 360°/6°)

  • The final 2nd order case will run 3° per time step for 5 revolutions, hence 600 steps

Nondimensionalizing the above (see nondimensional inputs) and referencing the CFL guidelines (see Knowledge Base) yields the following flow conditions and timeStepping parameters in the initial 1st order “Flow360.json” file.

    "freestream" :
        "muRef" : 4.29279e-08,
        "Mach" : 1.46972e-02,
        "MachRef" : 0.70,
        "Temperature" : 288.15,
        "alphaAngle" : -90.0,
        "betaAngle" : 0.0
    "boundaries" : {
        "farField/farField" : { "type" : "Freestream" },
        "farField/rotationInterface" : { "type" : "SlidingInterface" },
        "innerRotating/rotationInterface" : { "type" : "SlidingInterface" },
        "innerRotating/blade" : { "type" : "NoSlipWall" }
    "slidingInterfaces" : [
        "stationaryPatches" : ["farField/rotationInterface"],
        "rotatingPatches" : ["innerRotating/rotationInterface"],
        "axisOfRotation" : [0,0,-1],
        "centerOfRotation" : [0,0,0],
        "omega" : 1.84691e-01,
        "volumeName" : ["innerRotating"]
    "timeStepping" : {
        "timeStepSize" : 5.67000e-01,
        "maxPhysicalSteps" : 60,
        "maxPseudoSteps" : 12,
        "CFL" : {
            "initial" : 1,
            "final" : 1000,
            "rampSteps" : 10

1.7.3. Submit the Cases#

Using either the Web UI or the Python API, launch a new case referencing the mesh uploaded above and the initial 1st order “Flow360.json” file previously downloaded. Using the final 2nd order “Flow360.json” file, a new case can be immediately forked from the first case, as outlined in the prior quick start.

The initial 1st order case should finish in less then a minute on this fairly coarse 915k node mesh.

The final 2nd order case takes about 3.5 to 4 minutes to run its 5 revolutions. At the end of the 2nd order case, 6 revolutions (1 for the 1st order case and 5 for the 2nd order case) will have been completed.

For a time-accurate case to be considered well-converged, it is recommended to reduce residuals by at least 2 orders of magnitude within each time step.

convergence of residuals

Fig. 1.7.2 Convergence plot (2nd order case) showing more than 2 orders of magnitude decrease in residuals for each time step.#

The forces also seem to have stabilized after running for 6 revolutions.

convergence of forces

Fig. 1.7.3 Force history plot (2nd order case) showing stabilization of the forces.#