propellerDiskAdjustment Class Reference

Automatic adjustment option for the propellerDisk momentum source. More...

Collaboration diagram for propellerDiskAdjustment:

Public Member Functions

 propellerDiskAdjustment (const propellerDisk &, const dictionary &dict)
 Construct from components. More...
 
 propellerDiskAdjustment (const propellerDiskAdjustment &)=delete
 Disallow default bitwise copy construction. More...
 
 ~propellerDiskAdjustment ()
 Destructor. More...
 
void operator= (const propellerDiskAdjustment &)=delete
 Disallow default bitwise assignment. More...
 

Protected Member Functions

scalar resistance () const
 Return the ship resistance (for self-propulsion correction) More...
 
scalar n () const
 Return the current rotation speed. More...
 
void correctn (const scalar T) const
 Correct the rotation speed from the current propulsion force. More...
 

Protected Attributes

const propellerDiskpropellerDisk_
 Reference to the propellerDisk fvModel. More...
 
autoPtr< functionObjects::forcesforces_
 Function object to calculate the resistance force. More...
 
scalar startTime_
 Start time for rotation speed adjustment. More...
 
scalar deltaTStar_
 Relaxation time scale for rotation speed adjustment. More...
 
scalar nFraction_
 Maximum fractional change of rotation speed. More...
 
scalar Tmin_
 Minimum thrust for beta [N]. More...
 
scalar sfc_
 Skin friction correction for model-scale ship [N]. More...
 
scalar resistanceFraction_
 Resistance fraction for multi-propulsor configurations. More...
 
vector resistanceDirection_
 Resistance force direction. More...
 
uniformDimensionedScalarField n_
 Self-propulsion corrected rotational speed [1/s]. More...
 

Friends

class propellerDisk
 

Detailed Description

Automatic adjustment option for the propellerDisk momentum source.

A proportional-integral (PI) controller is used to adjust the propeller rotation speed to achieve balance between the propeller thrust and the hull resistance. A user-specified relaxation time is used to control the rate at which the porpeller speed is adjusted.

Reference:

    Nuutinen, M. (2019).
    Automated self-propulsion point search algorithm for ship performance
    CFD simulations.
    Sixth International Symposium on Marine Propulsors, SMP’19 Rome, Italy.
Usage
Example usage:
diskSource
{
    type            propellerDisk;

    libs            ("libpropellerDisk.so");

    cellZone        propeller;

    normal          (1 0 0);    // Normal direction of the propeller

    n               26.03;      // Rotation speed [1/s]

    dPropeller      0.203;      // Propeller diameter
    dHub            0.039179;   // Hub diameter

    // Automatic adjustment controls
    adjustment      yes;
    startTime       0;      // Start time of rotation speed adjustment
    deltaTStar      0.1;    // Relaxation time scaler [s]
    nFraction       0.1;    // Maximum fractional change of rotation speed
    sfc             0;      // Skin-friction correction [N]
    Tmin            1;      // Minimum thrust for beta [N]

    resistanceFraction  1;  // Defaults to 1
    resistanceDirection $normal;    // Defaults to $normal

    forces
    {
        type            forces;
        libs            ("libforces.so");
        patches         (pod pod_end napa napa_karki rako);
        log             on;
        writeControl    timeStep;
        writeInterval   1;
        CofR            (0 0 0);

        rho             rhoInf;
        rhoInf          998.8;
    }

    propellerCurve
    {
        type table;

        //   J     Kt     Kq
        values
        (
            (0.10 (0.3267 0.03748))
            (0.15 (0.3112 0.03629))
            (0.20 (0.2949 0.03500))
            (0.25 (0.2777 0.03361))
            (0.30 (0.2598 0.03210))
            (0.35 (0.2410 0.03047))
            (0.40 (0.2214 0.02871))
            (0.45 (0.2010 0.02682))
            (0.50 (0.1798 0.02479))
            (0.55 (0.1577 0.02261))
            (0.60 (0.1349 0.02027))
            (0.65 (0.1112 0.01777))
            (0.70 (0.0867 0.01509))
            (0.75 (0.0614 0.01224))
            (0.80 (0.0353 0.00921))
        );
    }
}
Source files

Definition at line 134 of file propellerDiskAdjustment.H.

Constructor & Destructor Documentation

◆ propellerDiskAdjustment() [1/2]

propellerDiskAdjustment ( const propellerDisk pd,
const dictionary dict 
)

Construct from components.

Definition at line 65 of file propellerDiskAdjustment.C.

References dict.

◆ propellerDiskAdjustment() [2/2]

Disallow default bitwise copy construction.

◆ ~propellerDiskAdjustment()

Destructor.

Definition at line 212 of file propellerDiskAdjustment.H.

Member Function Documentation

◆ resistance()

Foam::scalar resistance ( ) const
protected

Return the ship resistance (for self-propulsion correction)

Definition at line 56 of file propellerDiskAdjustment.C.

◆ n()

scalar n ( ) const
inlineprotected

Return the current rotation speed.

Definition at line 177 of file propellerDiskAdjustment.H.

References propellerDiskAdjustment::n_.

◆ correctn()

void correctn ( const scalar  T) const
protected

Correct the rotation speed from the current propulsion force.

Definition at line 91 of file propellerDiskAdjustment.C.

References primitiveMesh::cellVolumes(), TimeState::deltaT(), Foam::dimRate, Foam::gSum(), Foam::mag(), Foam::max(), mesh, Foam::min(), n, rho, Foam::sign(), Foam::sqr(), Foam::T(), fvMesh::time(), fvCellZone::V(), dimensioned< Type >::value(), and generatedCellZone::zone().

Here is the call graph for this function:

◆ operator=()

void operator= ( const propellerDiskAdjustment )
delete

Disallow default bitwise assignment.

Friends And Related Function Documentation

◆ propellerDisk

friend class propellerDisk
friend

Definition at line 185 of file propellerDiskAdjustment.H.

Member Data Documentation

◆ propellerDisk_

const propellerDisk& propellerDisk_
protected

Reference to the propellerDisk fvModel.

Definition at line 141 of file propellerDiskAdjustment.H.

◆ forces_

autoPtr<functionObjects::forces> forces_
mutableprotected

Function object to calculate the resistance force.

Definition at line 144 of file propellerDiskAdjustment.H.

◆ startTime_

scalar startTime_
protected

Start time for rotation speed adjustment.

Definition at line 147 of file propellerDiskAdjustment.H.

◆ deltaTStar_

scalar deltaTStar_
protected

Relaxation time scale for rotation speed adjustment.

Definition at line 150 of file propellerDiskAdjustment.H.

◆ nFraction_

scalar nFraction_
protected

Maximum fractional change of rotation speed.

Definition at line 153 of file propellerDiskAdjustment.H.

◆ Tmin_

scalar Tmin_
protected

Minimum thrust for beta [N].

Definition at line 156 of file propellerDiskAdjustment.H.

◆ sfc_

scalar sfc_
protected

Skin friction correction for model-scale ship [N].

Definition at line 159 of file propellerDiskAdjustment.H.

◆ resistanceFraction_

scalar resistanceFraction_
protected

Resistance fraction for multi-propulsor configurations.

Definition at line 162 of file propellerDiskAdjustment.H.

◆ resistanceDirection_

vector resistanceDirection_
protected

Resistance force direction.

Definition at line 165 of file propellerDiskAdjustment.H.

◆ n_

uniformDimensionedScalarField n_
mutableprotected

Self-propulsion corrected rotational speed [1/s].

Definition at line 168 of file propellerDiskAdjustment.H.

Referenced by propellerDiskAdjustment::n().


The documentation for this class was generated from the following files: