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_;