Added new propellerInfo function object

Merged Andrew Heather requested to merge feature-propeller-info into develop

Calculates propeller performance and wake field properties.

Controlled by executeControl:

  • Propeller performance
    • Thrust coefficient, Kt
    • Torque coefficient, 10*Kq
    • Advance coefficient, J
    • Open water efficiency, etaO
    • Written to postProcessing//

Controlled by writeControl:

  • Wake field text file
    • Wake: 1 - UzMean/URef
    • Velocity in cylindrical coordinates at xyz locations
    • Written to postProcessing//
  • Axial wake field text file
    • 1 - Uz/URef at r/R and angle
    • Written to postProcessing//
  • Velocity surface
    • Written to postProcessing//surfaces/time>/disk.

Example wake field - Courtesy of Yannick Eberhard, Promarin GmbH



Example of function object specification:

    type            propellerInfo;
    libs            (forces);
    writeControl    writeTime;

    patches         ("propeller.*");

    URef            5; // Function1 type; 'constant' form shown here
    rho             rhoInf; // incompressible
    rhoInf          1.2;

    // Optionally write propeller performance data
    writePropellerPerformance yes;

    // Propeller data:

    // Radius
    radius          0.1;

    rotationMode    specified; // specified | MRF

    // rotationMode = specified:
    origin          (0 -0.1 0);
    n               25.15;
    axis            (0 1 0);

    // Optional reference direction for angle (alpha) = 0
    alphaAxis       (1 0 0);

    //// rotationMode = mrf
    //// MRF             MRFZoneName;
    //// (origin, n and axis retrieved from MRF model)

    // Optionally write wake text files
    // Note: controlled by writeControl
    writeWakeFields yes;

    // Sample plane (disk) properties
    // Note: controlled by writeControl
        surfaceWriter   vtk;
        r1              0.05;
        r2              0.2;
        nTheta          36;
        nRadial         10;
        interpolationScheme cellPoint;
        errorOnPointNotFound false;

Where the entries comprise:

Property Description Required Deflt value
type Type name: propellerInfo yes
log Write to standard output no no
patches Patches included in the forces calculation yes
p Pressure field name no p
U Velocity field name no U
rho Density field name no rho
URef Reference velocity yes
rotationMode Rotation mode (see below) yes
origin Sample disk centre no*
n Revolutions per second no*
axis Propeller axis no*
alphaAxis Axis that defines alpha=0 dir no
MRF Name of MRF zone no*
originOffset Origin offset for MRF mode no (0 0 0)
writePropellerPerformance Write propeller performance text file yes
writeWakeFields Write wake field text files yes
surfaceWriter Sample disk surface writer no*
r1 Sample disk inner radius no 0
r2 Sample disk outer radius no*
nTheta Divisions in theta direction no*
nRadial Divisions in radial direction no*
interpolationScheme Sampling interpolation scheme no* cell


  • URef is a scalar Function1 type, i.e. supports constant, table, lookup values
  • rotationMode is used to set the origin, axis and revolutions per second
    • if set to specified all 3 entries are required
      • note: origin is the sample disk origin
    • if set to MRF only the MRF entry is required
      • to move the sample disk away from the MRF origin, use the originOffset
  • if writePropellerPerformance is set to on|true:
    • propellerPerformance text file will be written
  • if writeWakeFields is set to on|true:
    • wake and axialWake text files will be written
  • if the surfaceWriter entry is set, the sample disk surface will be written
    • extents set according to the r1 and r2 entries
    • discretised according to the nTheta and nRadial entries

Note: sign-off in EP 1719

Edited by Andrew Heather

Merge request reports