From c022e5ade309d3ce336ad391bb8ee276f9fc2905 Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Thu, 4 Aug 2016 15:02:51 +0100 Subject: [PATCH] BrunDrippingInjection: Calculate drop diameter from the capillary length The diameter of the drops formed are obtained from the local capillary length multiplied by the \c dCoeff coefficient which defaults to 3.3. Reference: Lefebvre, A. (1988). Atomization and sprays (Vol. 1040, No. 2756). CRC press. --- .../BrunDrippingInjection.C | 83 ++++++------------- .../BrunDrippingInjection.H | 39 ++++----- 2 files changed, 44 insertions(+), 78 deletions(-) diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C index 57132e13e1..e5cc9634ea 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.C @@ -25,11 +25,6 @@ License #include "BrunDrippingInjection.H" #include "addToRunTimeSelectionTable.H" -#include "fvMesh.H" -#include "Time.H" -#include "mathematicalConstants.H" -#include "Random.H" -#include "volFields.H" #include "kinematicSingleLayer.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -56,17 +51,8 @@ BrunDrippingInjection::BrunDrippingInjection : injectionModel(type(), owner, dict), ubarStar_(coeffDict_.lookupOrDefault("ubarStar", 1.62208)), - deltaStable_(readScalar(coeffDict_.lookup("deltaStable"))), - particlesPerParcel_(readScalar(coeffDict_.lookup("particlesPerParcel"))), - rndGen_(label(0), -1), - parcelDistribution_ - ( - distributionModels::distributionModel::New - ( - coeffDict_.subDict("parcelDistribution"), - rndGen_ - ) - ), + dCoeff_(coeffDict_.lookupOrDefault("dCoeff", 3.3)), + deltaStable_(coeffDict_.lookupOrDefault("deltaStable", 0)), diameter_(owner.regionMesh().nCells(), -1.0) {} @@ -89,8 +75,6 @@ void BrunDrippingInjection::correct const kinematicSingleLayer& film = refCast(this->owner()); - const scalar pi = constant::mathematical::pi; - // Calculate available dripping mass tmp tsinAlpha(film.gNorm()/mag(film.g())); const scalarField& sinAlpha = tsinAlpha(); @@ -101,66 +85,47 @@ void BrunDrippingInjection::correct const scalarField& sigma = film.sigma(); const scalar magg = mag(film.g().value()); - scalarField massDrip(film.regionMesh().nCells(), 0.0); + scalarField massDrip(film.regionMesh().nCells(), scalar(0)); - forAll(delta, i) + forAll(delta, celli) { - if (sinAlpha[i] > SMALL && delta[i] > deltaStable_) + if (sinAlpha[celli] > SMALL && delta[celli] > deltaStable_) { - scalar lc = sqrt(sigma[i]/(rho[i]*magg)); - scalar deltaStable = max + const scalar lc = sqrt(sigma[celli]/(rho[celli]*magg)); + const scalar deltaStable = max ( - 3*lc*sqrt(1 - sqr(sinAlpha[i])) - /(ubarStar_*sqrt(sinAlpha[i])*sinAlpha[i]), + 3*lc*sqrt(1 - sqr(sinAlpha[celli])) + /(ubarStar_*sqrt(sinAlpha[celli])*sinAlpha[celli]), deltaStable_ ); - Info<< delta[i] << " " << deltaStable << endl; - if (delta[i] > deltaStable) + if (delta[celli] > deltaStable) { - const scalar ddelta = max(0.0, delta[i] - deltaStable); - massDrip[i] += - min(availableMass[i], max(0.0, ddelta*rho[i]*magSf[i])); + const scalar ddelta = max(delta[celli] - deltaStable, 0); + massDrip[celli] += + min + ( + availableMass[celli], + max(ddelta*rho[celli]*magSf[celli], 0) + ); } } } - // Collect the data to be transferred forAll(massDrip, celli) { if (massDrip[celli] > 0) { - // Set new particle diameter if not already set - if (diameter_[celli] < 0) - { - diameter_[celli] = parcelDistribution_->sample(); - } + const scalar rhoc = rho[celli]; + const scalar diam = dCoeff_*sqrt(sigma[celli]/(rhoc*magg)); + diameter_[celli] = diam; - scalar& diam = diameter_[celli]; - scalar rhoc = rho[celli]; - scalar minMass = particlesPerParcel_*rhoc*pi/6*pow3(diam); + massToInject[celli] += massDrip[celli]; + availableMass[celli] -= massDrip[celli]; - if (massDrip[celli] > minMass) - { - // All drip mass can be injected - massToInject[celli] += massDrip[celli]; - availableMass[celli] -= massDrip[celli]; - - // Set particle diameter - diameterToInject[celli] = diam; - - // Retrieve new particle diameter sample - diam = parcelDistribution_->sample(); - - addToInjectedMass(massDrip[celli]); - } - else - { - // Particle mass below minimum threshold - cannot be injected - massToInject[celli] = 0; - diameterToInject[celli] = 0; - } + diameterToInject[celli] = diam; + addToInjectedMass(massDrip[celli]); } else { diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H index 9acdf9f0b9..00f2344412 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/BrunDrippingInjection/BrunDrippingInjection.H @@ -27,10 +27,10 @@ Class Description Film Dripping mass transfer model. - If the film thickness exceeds the critical value needed to generate a valid - parcel, the equivalent mass is removed from the film. The critical film - thickness is calculated from the Rayleigh-Taylor stability analysis - of film flow on an inclined plane by Brun et.al. + If the film thickness exceeds the critical value needed to generate one or + more drops, the equivalent mass is removed from the film. The critical film + thickness is calculated from the Rayleigh-Taylor stability analysis of film + flow on an inclined plane by Brun et.al. Reference: \verbatim @@ -39,7 +39,15 @@ Description Physics of Fluids (1994-present), 27(8), 084107. \endverbatim - New parcel diameters are sampled from a PDF. + The diameter of the drops formed are obtained from the local capillary + length multiplied by the \c dCoeff coefficient which defaults to 3.3. + + Reference: + \verbatim + Lefebvre, A. (1988). + Atomization and sprays + (Vol. 1040, No. 2756). CRC press. + \endverbatim SourceFiles BrunDrippingInjection.C @@ -50,8 +58,6 @@ SourceFiles #define BrunDrippingInjection_H #include "injectionModel.H" -#include "distributionModel.H" -#include "cachedRandom.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -84,24 +90,19 @@ protected: // Protected data //- Critical non-dimensional interface velocity - // Coefficient in the film angle stability function - // defaults to 1.62208 + // Coefficient in the film angle stability function. + // Defaults to 1.62208 scalar ubarStar_; + //- Coefficient relating the diameter of the drops formed to + // the capillary length. + // Defaults to 3.3 + scalar dCoeff_; + //- Stable film thickness - drips only formed if thickness // execeeds this threhold value scalar deltaStable_; - //- Number of particles per parcel - scalar particlesPerParcel_; - - //- Random number generator - cachedRandom rndGen_; - - //- Parcel size PDF model - const autoPtr - parcelDistribution_; - //- Diameters of particles to inject into the dripping scalarList diameter_;