From e7a6095aaf9b1b10767dbba692710acbbf5016c9 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Mon, 24 Sep 2018 17:55:37 +0200 Subject: [PATCH] ENH: avoid duplicate bookkeeping of rotation tensors in rotorDiskSource --- .../sources/derived/rotorDiskSource/rotorDiskSource.C | 8 +++----- .../sources/derived/rotorDiskSource/rotorDiskSource.H | 5 +---- .../derived/rotorDiskSource/rotorDiskSourceTemplates.C | 5 +++-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C index 106d52aaf4..0d518f551b 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C +++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.C @@ -422,8 +422,7 @@ void Foam::fv::rotorDiskSource::constructGeometry() // rotor cone system scalar c = cos(beta); scalar s = sin(beta); - R_[i] = tensor(c, 0, -s, 0, 1, 0, s, 0, c); - invR_[i] = R_[i].T(); + Rcone_[i] = tensor(c, 0, -s, 0, 1, 0, s, 0, c); } } } @@ -480,9 +479,8 @@ Foam::fv::rotorDiskSource::rotorDiskSource tipEffect_(1.0), flap_(), x_(cells_.size(), Zero), - R_(cells_.size(), I), - invR_(cells_.size(), I), - area_(cells_.size(), 0.0), + Rcone_(cells_.size(), I), + area_(cells_.size(), Zero), coordSys_(), cylindrical_(), rMax_(0.0), diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H index f63916bf22..ec293d7eda 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H +++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSource.H @@ -188,10 +188,7 @@ protected: List x_; //- Rotation tensor for flap angle - List R_; - - //- Inverse rotation tensor for flap angle - List invR_; + List Rcone_; //- Area [m2] List area_; diff --git a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSourceTemplates.C b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSourceTemplates.C index bcec1750a0..c5cab4d847 100644 --- a/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSourceTemplates.C +++ b/src/fvOptions/sources/derived/rotorDiskSource/rotorDiskSourceTemplates.C @@ -26,6 +26,7 @@ License #include "rotorDiskSource.H" #include "volFields.H" #include "unitConversion.H" +#include "transform.H" using namespace Foam::constant; @@ -62,7 +63,7 @@ void Foam::fv::rotorDiskSource::calculate vector Uc = cylindrical_->invTransform(U[celli], i); // Transform velocity into local coning system - Uc = R_[i] & Uc; + Uc = transform(Rcone_[i], Uc); // Set radial component of velocity to zero Uc.x() = 0.0; @@ -129,7 +130,7 @@ void Foam::fv::rotorDiskSource::calculate liftEff += rhoRef_*localForce.z(); // Transform force from local coning system into rotor cylindrical - localForce = invR_[i] & localForce; + localForce = invTransform(Rcone_[i], localForce); // Transform force into global Cartesian co-ordinate system force[celli] = cylindrical_->transform(localForce, i);