diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C index 3b468bbd063df7284bd6c5a0a30eb523d99bf77c..951bb484edf1dc36e2e8a11dee586b25549c70e3 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C @@ -186,6 +186,7 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection tetPti_(-1), directionVsTime_(nullptr), direction_(Zero), + omegaPtr_(nullptr), parcelsPerSecond_(this->coeffDict().getScalar("parcelsPerSecond")), flowRateProfile_ ( @@ -246,6 +247,19 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection thetaInner_->userTimeToTime(time); thetaOuter_->userTimeToTime(time); + if (this->coeffDict().found("omega")) + { + omegaPtr_ = + Function1<scalar>::New + ( + "omega", + this->coeffDict(), + &owner.mesh() + ); + + omegaPtr_->userTimeToTime(time); + } + setInjectionGeometry(); setFlowType(); @@ -277,6 +291,7 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection tetPti_(im.tetPti_), directionVsTime_(im.directionVsTime_.clone()), direction_(im.direction_), + omegaPtr_(im.omegaPtr_.clone()), parcelsPerSecond_(im.parcelsPerSecond_), flowRateProfile_(im.flowRateProfile_.clone()), thetaInner_(im.thetaInner_.clone()), @@ -505,6 +520,19 @@ void Foam::ConeNozzleInjection<CloudType>::setProperties } } + if (omegaPtr_) + { + const scalar omega = omegaPtr_->value(t); + + const vector p0(parcel.position() - positionVsTime_->value(t)); + const vector r(p0 - (p0 & direction_)*direction_); + const scalar rMag = mag(r); + + const vector d = normalised(normal_ ^ dirVec); + + parcel.U() += omega*rMag*d; + } + // Set particle diameter parcel.d() = sizeDistribution_->sample(); } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H index 606a9e5a6b41d02bf96fa702d863a6a48a3d7f46..bd03d0771e0122df25233ca8e843d04731e878eb 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H @@ -153,6 +153,9 @@ private: //- Cached direction vector vector direction_; + //- Swirl velocity (optional) + autoPtr<Function1<scalar>> omegaPtr_; + //- Number of parcels to introduce per second [] const label parcelsPerSecond_;