From b1d62169ecf3b116ef8df660c7476a90cb423197 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Thu, 28 Jun 2012 14:10:32 +0100 Subject: [PATCH] BUG: rotor momentum source - trim model corrected force coeff calc for incompressible --- .../basicSource/rotorDiskSource/rotorDiskSource.C | 4 ++-- .../trimModel/targetCoeff/targetCoeffTrim.C | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/fieldSources/basicSource/rotorDiskSource/rotorDiskSource.C b/src/fieldSources/basicSource/rotorDiskSource/rotorDiskSource.C index 82ecd711765..2b73a471f48 100644 --- a/src/fieldSources/basicSource/rotorDiskSource/rotorDiskSource.C +++ b/src/fieldSources/basicSource/rotorDiskSource/rotorDiskSource.C @@ -662,8 +662,8 @@ bool Foam::rotorDiskSource::read(const dictionary& dict) flapCoeffs.lookup("beta1c") >> flap_.beta1c; flapCoeffs.lookup("beta2s") >> flap_.beta2s; flap_.beta0 = degToRad(flap_.beta0); - flap_.beta1 = degToRad(flap_.beta1); - flap_.beta2 = degToRad(flap_.beta2); + flap_.beta1c = degToRad(flap_.beta1c); + flap_.beta2s = degToRad(flap_.beta2s); // create co-ordinate system diff --git a/src/fieldSources/basicSource/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C b/src/fieldSources/basicSource/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C index d53d73f3ac4..abb5be0ae0e 100644 --- a/src/fieldSources/basicSource/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C +++ b/src/fieldSources/basicSource/rotorDiskSource/trimModel/targetCoeff/targetCoeffTrim.C @@ -88,7 +88,7 @@ Foam::vector Foam::targetCoeffTrim::calcCoeffs } reduce(cf, sumOp<vector>()); - + return cf; } @@ -176,6 +176,8 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force) Info<< type() << ":" << nl << " solving for target trim coefficients" << nl; + const scalar rhoRef = rotor_.rhoRef(); + // iterate to find new pitch angles to achieve target force scalar err = GREAT; label iter = 0; @@ -210,7 +212,7 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force) } // calculate the change in pitch angle vector - vector dt = inv(J) & (target_ - old); + vector dt = inv(J) & (target_/rhoRef - old); // update pitch angles vector thetaNew = theta_ + relax_*dt; @@ -236,9 +238,9 @@ void Foam::targetCoeffTrim::correct(const vectorField& U, vectorField& force) } Info<< " current and target coefficients:" << nl - << " thrust = " << old[0] << ", " << target_[0] << nl - << " pitch = " << old[1] << ", " << target_[1] << nl - << " roll = " << old[2] << ", " << target_[2] << nl + << " thrust = " << old[0]*rhoRef << ", " << target_[0] << nl + << " pitch = " << old[1]*rhoRef << ", " << target_[1] << nl + << " roll = " << old[2]*rhoRef << ", " << target_[2] << nl << " new pitch angles [deg]:" << nl << " theta0 = " << radToDeg(theta_[0]) << nl << " theta1c = " << radToDeg(theta_[1]) << nl -- GitLab