diff --git a/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloud.C b/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloud.C index af32eaebad..cb393e7433 100644 --- a/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloud.C +++ b/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloud.C @@ -26,7 +26,7 @@ License #include "SprayCloud.H" #include "AtomizationModel.H" #include "BreakupModel.H" -#include "CollisionModel.H" +#include "StochasticCollisionModel.H" // * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // @@ -51,9 +51,9 @@ void Foam::SprayCloud::setModels() ).ptr() ); - collisionModel_.reset + stochasticCollisionModel_.reset ( - CollisionModel >::New + StochasticCollisionModel >::New ( this->subModelProperties(), *this @@ -72,7 +72,7 @@ void Foam::SprayCloud::cloudReset atomizationModel_.reset(c.atomizationModel_.ptr()); breakupModel_.reset(c.breakupModel_.ptr()); - collisionModel_.reset(c.collisionModel_.ptr()); + stochasticCollisionModel_.reset(c.stochasticCollisionModel_.ptr()); } @@ -92,47 +92,23 @@ Foam::SprayCloud::SprayCloud CloudType(cloudName, rho, U, g, thermo, false), sprayCloud(), cloudCopyPtr_(NULL), - averageParcelMass_(this->injection().averageParcelMass()), - atomizationModel_ - ( - AtomizationModel >::New - ( - this->particleProperties(), - *this - ) - ), - breakupModel_ - ( - BreakupModel >::New - ( - this->particleProperties(), - *this - ) - ), - collisionModel_ - ( - CollisionModel >::New - ( - this->particleProperties(), - *this - ) - ) + averageParcelMass_(0.0), + atomizationModel_(NULL), + breakupModel_(NULL), + stochasticCollisionModel_(NULL) { if (this->solution().active()) { setModels(); + averageParcelMass_ = this->injection().averageParcelMass(); + if (readFields) { parcelType::readFields(*this, this->composition()); } } - if (this->solution().resetSourcesOnStartup()) - { - resetSourceTerms(); - } - Info << " Average parcel mass: " << averageParcelMass_ << endl; } @@ -150,7 +126,7 @@ Foam::SprayCloud::SprayCloud averageParcelMass_(c.averageParcelMass_), atomizationModel_(c.atomizationModel_->clone()), breakupModel_(c.breakupModel_->clone()), - collisionModel_(c.collisionModel_->clone()) + stochasticCollisionModel_(c.stochasticCollisionModel_->clone()) {} @@ -168,7 +144,7 @@ Foam::SprayCloud::SprayCloud averageParcelMass_(0.0), atomizationModel_(NULL), breakupModel_(NULL), - collisionModel_(NULL) + stochasticCollisionModel_(NULL) {} @@ -257,9 +233,10 @@ void Foam::SprayCloud::motion(TrackData& td) this->updateCellOccupancy(); - - if (collision().active()) + if (stochasticCollision().active()) { + const liquidMixtureProperties& liqMix = this->composition().liquids(); + label i = 0; forAllIter(typename SprayCloud, *this, iter) { @@ -270,17 +247,17 @@ void Foam::SprayCloud::motion(TrackData& td) { parcelType& p = iter(); scalar Vi = this->mesh().V()[p.cell()]; - scalarField X1(this->composition().liquids().X(p.Y())); - scalar sigma1 = this->composition().liquids().sigma(p.pc(), p.T(), X1); + scalarField X1(liqMix.X(p.Y())); + scalar sigma1 = liqMix.sigma(p.pc(), p.T(), X1); scalar mp = p.mass()*p.nParticle(); parcelType& q = jter(); scalar Vj = this->mesh().V()[q.cell()]; - scalarField X2(this->composition().liquids().X(q.Y())); - scalar sigma2 = this->composition().liquids().sigma(q.pc(), q.T(), X2); + scalarField X2(liqMix.X(q.Y())); + scalar sigma2 = liqMix.sigma(q.pc(), q.T(), X2); scalar mq = q.mass()*q.nParticle(); - bool updateProperties = collision().update + bool updateProperties = stochasticCollision().update ( dt, this->rndGen(), @@ -314,18 +291,26 @@ void Foam::SprayCloud::motion(TrackData& td) { if (mp > VSMALL) { - scalarField Xp(this->composition().liquids().X(p.Y())); - p.rho() = this->composition().liquids().rho(p.pc(), p.T(), Xp); - p.Cp() = this->composition().liquids().Cp(p.pc(), p.T(), Xp); - scalar rhs = 6.0*mp/(p.nParticle()*p.rho()*constant::mathematical::pi); - p.d() = pow(rhs, 1.0/3.0); + scalarField Xp(liqMix.X(p.Y())); + p.rho() = liqMix.rho(p.pc(), p.T(), Xp); + p.Cp() = liqMix.Cp(p.pc(), p.T(), Xp); + p.d() = + cbrt + ( + 6.0*mp + /( + p.nParticle() + *p.rho() + *constant::mathematical::pi + ) + ); } if (mq > VSMALL) { - scalarField Xq(this->composition().liquids().X(q.Y())); - q.rho() = this->composition().liquids().rho(q.pc(), q.T(), Xq); - q.Cp() = this->composition().liquids().Cp(q.pc(), q.T(), Xq); + scalarField Xq(liqMix.X(q.Y())); + q.rho() = liqMix.rho(q.pc(), q.T(), Xq); + q.Cp() = liqMix.Cp(q.pc(), q.T(), Xq); scalar rhs = 6.0*mq/(q.nParticle()*q.rho()*constant::mathematical::pi); q.d() = pow(rhs, 1.0/3.0); } diff --git a/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloud.H b/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloud.H index 09d555a452..24f9a6f1fd 100644 --- a/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloud.H +++ b/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloud.H @@ -47,7 +47,7 @@ template class BreakupModel; template -class CollisionModel; +class StochasticCollisionModel; /*---------------------------------------------------------------------------*\ Class SprayCloud Declaration @@ -107,7 +107,8 @@ protected: autoPtr > > breakupModel_; //- Collision model - autoPtr > > collisionModel_; + autoPtr > > + stochasticCollisionModel_; // Protected Member Functions @@ -196,8 +197,8 @@ public: breakup() const; //- Return const-access to the breakup model - inline const CollisionModel >& - collision() const; + inline const StochasticCollisionModel >& + stochasticCollision() const; // Check @@ -228,9 +229,6 @@ public: //- Reset the current cloud to the previously stored state void restoreState(); - //- Reset the spray source terms - void resetSourceTerms(); - //- Evolve the spray (inject, move) void evolve(); //- Particle motion diff --git a/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloudI.H b/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloudI.H index 57edee7077..a5037f79fe 100644 --- a/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloudI.H +++ b/src/lagrangian/spray/clouds/Templates/SprayCloud/SprayCloudI.H @@ -50,10 +50,10 @@ Foam::SprayCloud::breakup() const template -inline const Foam::CollisionModel >& -Foam::SprayCloud::collision() const +inline const Foam::StochasticCollisionModel >& +Foam::SprayCloud::stochasticCollision() const { - return collisionModel_; + return stochasticCollisionModel_; } diff --git a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.C b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.C index a301cfab5c..e7b6bcda5d 100644 --- a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.C +++ b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcel.C @@ -210,6 +210,13 @@ void Foam::SprayParcel::calcBreakup const CompositionModel& composition = td.cloud().composition(); + typedef typename TrackData::cloudType cloudType; + typedef typename cloudType::parcelType parcelType; + typedef typename cloudType::forceType forceType; + + const parcelType& p = static_cast(*this); + const forceType& forces = td.cloud().forces(); + if (td.cloud().breakup().solveOscillationEq()) { solveTABEq(td, dt); @@ -233,11 +240,12 @@ void Foam::SprayParcel::calcBreakup scalar muAv = this->muc(); vector Urel = this->U() - this->Uc(); scalar Urmag = mag(Urel); - scalar As = this->areaS(this->d()); - scalar Re = rhoAv*Urmag*this->d()/muAv; + scalar Re = this->Re(this->U(), this->d(), rhoAv, muAv); - scalar utc = td.cloud().drag().utc(Re, this->d(), muAv) + ROOTVSMALL; - scalar tMom = 1.0/(As*utc); + const scalar mass = p.mass(); + const forceSuSp Fcp = forces.calcCoupled(p, dt, mass, Re, muAv); + const forceSuSp Fncp = forces.calcNonCoupled(p, dt, mass, Re, muAv); + scalar tMom = 1.0/(Fcp.Sp() + Fncp.Sp()); const vector g = td.cloud().g().value(); @@ -273,17 +281,20 @@ void Foam::SprayParcel::calcBreakup ) ) { - scalar As = this->areaS(dChild); scalar Re = rhoAv*Urmag*dChild/muAv; - scalar utc = td.cloud().drag().utc(Re, dChild, muAv) + ROOTVSMALL; this->mass0() -= massChild; // Add child parcel as copy of parent SprayParcel* child = new SprayParcel(*this); - scalar massDrop = rho*constant::mathematical::pi*pow(dChild, 3.0)/6.0; child->mass0() = massChild; child->d() = dChild; - child->nParticle() = massChild/massDrop; + child->nParticle() = massChild/rho*this->volume(dChild); + + const forceSuSp Fcp = + forces.calcCoupled(*child, dt, massChild, Re, muAv); + const forceSuSp Fncp = + forces.calcNonCoupled(*child, dt, massChild, Re, muAv); + child->liquidCore() = 0.0; child->KHindex() = 1.0; child->y() = td.cloud().breakup().y0(); @@ -291,7 +302,7 @@ void Foam::SprayParcel::calcBreakup child->tc() = -GREAT; child->ms() = 0.0; child->injector() = this->injector(); - child->tMom() = 1.0/(As*utc); + child->tMom() = 1.0/(Fcp.Sp() + Fncp.Sp()); child->user() = 0.0; child->setCellValues(td, dt, cellI); @@ -322,7 +333,7 @@ Foam::scalar Foam::SprayParcel::chi scalar p0 = this->pc(); scalar pAmb = td.cloud().pAmbient(); - scalar pv = composition.liquids().sigma(p0, T0, X); + scalar pv = composition.liquids().pv(p0, T0, X); forAll(composition.liquids(), i) { @@ -377,16 +388,16 @@ void Foam::SprayParcel::solveTABEq const scalar& TABWeCrit = td.cloud().breakup().TABWeCrit(); const scalar& TABComega = td.cloud().breakup().TABComega(); - scalar r = 0.5*this->d_; + scalar r = 0.5*this->d(); scalar r2 = r*r; scalar r3 = r*r2; const scalarField& Y(this->Y()); scalarField X(composition.liquids().X(Y)); - scalar rho = composition.liquids().rho(this->pc_, this->T(), X); - scalar mu = composition.liquids().mu(this->pc_, this->T(), X); - scalar sigma = composition.liquids().sigma(this->pc_, this->T(), X); + scalar rho = composition.liquids().rho(this->pc(), this->T(), X); + scalar mu = composition.liquids().mu(this->pc(), this->T(), X); + scalar sigma = composition.liquids().sigma(this->pc(), this->T(), X); // inverse of characteristic viscous damping time scalar rtd = 0.5*TABCmu*mu/(rho*r2); @@ -397,11 +408,8 @@ void Foam::SprayParcel::solveTABEq if(omega2 > 0) { scalar omega = sqrt(omega2); - scalar rhoc = this->rhoc_; //spray_.rho()[p.cell()]; - scalar We = rhoc*pow(mag(this->Uc_ - this->U()), 2.0)*r/sigma; - - //scalar We = p.We(Ug, rhog, sigma); - scalar Wetmp = We/TABWeCrit; + scalar rhoc = this->rhoc(); + scalar Wetmp = this->We(this->U(), r, rhoc, sigma)/TABWeCrit; scalar y1 = this->y() - Wetmp; scalar y2 = this->yDot()/omega; @@ -435,10 +443,7 @@ void Foam::SprayParcel::solveTABEq // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template -Foam::SprayParcel::SprayParcel -( - const SprayParcel& p -) +Foam::SprayParcel::SprayParcel(const SprayParcel& p) : ParcelType(p), d0_(p.d0_), @@ -455,6 +460,28 @@ Foam::SprayParcel::SprayParcel {} +template +Foam::SprayParcel::SprayParcel +( + const SprayParcel& p, + const polyMesh& mesh +) +: + ParcelType(p, mesh), + d0_(p.d0_), + position0_(p.position0_), + liquidCore_(p.liquidCore_), + KHindex_(p.KHindex_), + y_(p.y_), + yDot_(p.yDot_), + tc_(p.tc_), + ms_(p.ms_), + injector_(p.injector_), + tMom_(p.tMom_), + user_(p.user_) +{} + + // * * * * * * * * * * * * * * IOStream operators * * * * * * * * * * * * * // #include "SprayParcelIO.C" diff --git a/src/lagrangian/spray/parcels/derived/basicSprayParcel/makeBasicSprayParcelSubmodels.C b/src/lagrangian/spray/parcels/derived/basicSprayParcel/makeBasicSprayParcelSubmodels.C index 45e5c3982b..6f242a8fe6 100644 --- a/src/lagrangian/spray/parcels/derived/basicSprayParcel/makeBasicSprayParcelSubmodels.C +++ b/src/lagrangian/spray/parcels/derived/basicSprayParcel/makeBasicSprayParcelSubmodels.C @@ -39,6 +39,7 @@ License // Reacting #include "makeReactingParcelCompositionModels.H" #include "makeReactingParcelPhaseChangeModels.H" +#include "makeReactingParcelSurfaceFilmModels.H" // Spray #include "makeSprayParcelAtomizationModels.H" @@ -63,11 +64,12 @@ namespace Foam // Reacting sub-models makeReactingParcelCompositionModels(basicSprayCloud); makeReactingParcelPhaseChangeModels(basicSprayCloud); + makeReactingParcelSurfaceFilmModels(basicSprayCloud); // Spray sub-models makeSprayParcelAtomizationModels(basicSprayCloud); makeSprayParcelBreakupModels(basicSprayCloud); -// makeSprayParcelCollisionModels(basicSprayCloud); + makeSprayParcelCollisionModels(basicSprayCloud); }; diff --git a/src/lagrangian/spray/parcels/include/makeSprayParcelCollisionModels.H b/src/lagrangian/spray/parcels/include/makeSprayParcelCollisionModels.H index 0347201fcf..2d30cb72b9 100644 --- a/src/lagrangian/spray/parcels/include/makeSprayParcelCollisionModels.H +++ b/src/lagrangian/spray/parcels/include/makeSprayParcelCollisionModels.H @@ -28,7 +28,7 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#include "NoCollision.H" +#include "NoStochasticCollision.H" #include "ORourkeCollision.H" #include "TrajectoryCollision.H" @@ -36,10 +36,10 @@ License #define makeSprayParcelCollisionModels(CloudType) \ \ - makeCollisionModel(CloudType); \ - makeCollisionModelType(NoCollision, CloudType); \ - makeCollisionModelType(ORourkeCollision, CloudType); \ - makeCollisionModelType(TrajectoryCollision, CloudType); + makeStochasticCollisionModel(CloudType); \ + makeStochasticCollisionModelType(NoStochasticCollision, CloudType); \ + makeStochasticCollisionModelType(ORourkeCollision, CloudType); \ + makeStochasticCollisionModelType(TrajectoryCollision, CloudType); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.C b/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.C index e36c269f06..0f4f74c976 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.C +++ b/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.C @@ -57,6 +57,13 @@ Foam::NoAtomization::~NoAtomization() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template +bool Foam::NoAtomization::active() const +{ + return false; +} + + template Foam::scalar Foam::NoAtomization::initLiquidCore() const { diff --git a/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.H b/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.H index 7d7d72dd8b..37132fc05f 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.H +++ b/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.H @@ -77,6 +77,9 @@ public: // Member Functions + //- Flag to indicate whether model activates atomization model + virtual bool active() const; + //- Initial value of liquidCore virtual scalar initLiquidCore() const; diff --git a/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.C b/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.C index 8d83605c9b..a4e2d8f37f 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.C +++ b/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.C @@ -77,12 +77,14 @@ Foam::BreakupModel::BreakupModel { if (solveOscillationEq_) { - const dictionary TABcoeffsDict(this->coeffDict().subDict("TABCoeffs")); - y0_ = readScalar(TABcoeffsDict.lookup("y0")); - yDot0_ = readScalar(TABcoeffsDict.lookup("yDot0")); - TABComega_ = readScalar(TABcoeffsDict.lookup("Comega")); - TABCmu_ = readScalar(TABcoeffsDict.lookup("Cmu")); - TABWeCrit_ = readScalar(TABcoeffsDict.lookup("WeCrit")); + const dictionary TABcoeffsDict(dict.subDict("TABCoeffs")); + y0_ = TABcoeffsDict.template lookupOrDefault("y0", 0.0); + yDot0_ = TABcoeffsDict.template lookupOrDefault("yDot0", 0.0); + TABComega_ = + TABcoeffsDict.template lookupOrDefault("Comega", 8.0); + TABCmu_ = TABcoeffsDict.template lookupOrDefault("Cmu", 10.0); + TABWeCrit_ = + TABcoeffsDict.template lookupOrDefault("WeCrit", 12.0); } } diff --git a/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.C b/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.C index 2671a1a4e0..1ba28effe1 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.C +++ b/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.C @@ -35,12 +35,22 @@ Foam::ETAB::ETAB ) : BreakupModel(dict, owner, typeName), - Cmu_(readScalar(this->coeffDict().lookup("Cmu"))), - Comega_(readScalar(this->coeffDict().lookup("Comega"))), - k1_(readScalar(this->coeffDict().lookup("k1"))), - k2_(readScalar(this->coeffDict().lookup("k2"))), - WeCrit_(readScalar(this->coeffDict().lookup("WeCrit"))), - WeTransition_(readScalar(this->coeffDict().lookup("WeTransition"))), + Cmu_(this->coeffDict().template lookupOrDefault("Cmu", 10.0)), + Comega_(this->coeffDict().template lookupOrDefault("Comega", 8.0)), + k1_(this->coeffDict().template lookupOrDefault("k1", 0.2)), + k2_(this->coeffDict().template lookupOrDefault("k2", 0.2)), + WeCrit_ +( + this->coeffDict().template lookupOrDefault("WeCrit", 12.0) +), + WeTransition_ + ( + this->coeffDict().template lookupOrDefault + ( + "WeTransition", + 100.0 + ) + ), AWe_(0.0) { scalar k21 = k2_/k1_; diff --git a/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.C b/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.C index 7e4d3cf19f..645d67f8fe 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.C +++ b/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.C @@ -55,6 +55,13 @@ Foam::NoBreakup::~NoBreakup() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template +bool Foam::NoBreakup::active() const +{ + return false; +} + + template bool Foam::NoBreakup::update ( diff --git a/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.H b/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.H index 672a05107c..178550ff18 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.H +++ b/src/lagrangian/spray/submodels/BreakupModel/NoBreakup/NoBreakup.H @@ -77,6 +77,9 @@ public: // Member Functions + //- Flag to indicate whether model activates break-up model + virtual bool active() const; + //- update the parcel properties virtual bool update ( diff --git a/src/lagrangian/spray/submodels/BreakupModel/ReitzKHRT/ReitzKHRT.C b/src/lagrangian/spray/submodels/BreakupModel/ReitzKHRT/ReitzKHRT.C index 3c3324ccb0..0e1d4a91bf 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/ReitzKHRT/ReitzKHRT.C +++ b/src/lagrangian/spray/submodels/BreakupModel/ReitzKHRT/ReitzKHRT.C @@ -35,11 +35,18 @@ Foam::ReitzKHRT::ReitzKHRT ) : BreakupModel(dict, owner, typeName), - b0_(readScalar(this->coeffDict().lookup("B0"))), - b1_(readScalar(this->coeffDict().lookup("B1"))), - cTau_(readScalar(this->coeffDict().lookup("Ctau"))), - cRT_(readScalar(this->coeffDict().lookup("CRT"))), - msLimit_(readScalar(this->coeffDict().lookup("msLimit"))), + b0_(this->coeffDict().template lookupOrDefault("B0", 0.61)), + b1_(this->coeffDict().template lookupOrDefault("B1", 40.0)), + cTau_(this->coeffDict().template lookupOrDefault("Ctau", 1.0)), + cRT_(this->coeffDict().template lookupOrDefault("CRT", 0.1)), + msLimit_ + ( + this->coeffDict().template lookupOrDefault + ( + "msLimit", + 0.03 + ) + ), weberLimit_(readScalar(this->coeffDict().lookup("WeberLimit"))) {} diff --git a/src/lagrangian/spray/submodels/CollisionModel/NoCollision/NoCollision.C b/src/lagrangian/spray/submodels/StochasticCollision/NoStochasticCollision/NoStochasticCollision.C similarity index 80% rename from src/lagrangian/spray/submodels/CollisionModel/NoCollision/NoCollision.C rename to src/lagrangian/spray/submodels/StochasticCollision/NoStochasticCollision/NoStochasticCollision.C index ee8b63bbc3..f3c2da05fd 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/NoCollision/NoCollision.C +++ b/src/lagrangian/spray/submodels/StochasticCollision/NoStochasticCollision/NoStochasticCollision.C @@ -23,39 +23,49 @@ License \*---------------------------------------------------------------------------*/ -#include "NoCollision.H" +#include "NoStochasticCollision.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template -Foam::NoCollision::NoCollision +Foam::NoStochasticCollision::NoStochasticCollision ( const dictionary& dict, CloudType& owner ) : - CollisionModel(owner) + StochasticCollisionModel(owner) {} template -Foam::NoCollision::NoCollision(const NoCollision& cm) +Foam::NoStochasticCollision::NoStochasticCollision +( + const NoStochasticCollision& cm +) : - CollisionModel(cm) + StochasticCollisionModel(cm) {} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template -Foam::NoCollision::~NoCollision() +Foam::NoStochasticCollision::~NoStochasticCollision() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -bool Foam::NoCollision::update +bool Foam::NoStochasticCollision::active() const +{ + return false; +} + + +template +bool Foam::NoStochasticCollision::update ( const scalar dt, cachedRandom& rndGen, diff --git a/src/lagrangian/spray/submodels/CollisionModel/NoCollision/NoCollision.H b/src/lagrangian/spray/submodels/StochasticCollision/NoStochasticCollision/NoStochasticCollision.H similarity index 78% rename from src/lagrangian/spray/submodels/CollisionModel/NoCollision/NoCollision.H rename to src/lagrangian/spray/submodels/StochasticCollision/NoStochasticCollision/NoStochasticCollision.H index 10848a294c..866e1f6c8d 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/NoCollision/NoCollision.H +++ b/src/lagrangian/spray/submodels/StochasticCollision/NoStochasticCollision/NoStochasticCollision.H @@ -22,30 +22,30 @@ License along with OpenFOAM. If not, see . Class - Foam::NoCollision + Foam::NoStochasticCollision Description Dummy collision model for 'none' \*---------------------------------------------------------------------------*/ -#ifndef NoCollision_H -#define NoCollision_H +#ifndef NoStochasticCollision_H +#define NoStochasticCollision_H -#include "CollisionModel.H" +#include "StochasticCollisionModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ - Class NoCollision Declaration + Class NoStochasticCollision Declaration \*---------------------------------------------------------------------------*/ template -class NoCollision +class NoStochasticCollision : - public CollisionModel + public StochasticCollisionModel { public: @@ -56,27 +56,30 @@ public: // Constructors //- Construct from dictionary - NoCollision(const dictionary& dict, CloudType& cloud); + NoStochasticCollision(const dictionary& dict, CloudType& owner); //- Construct copy - NoCollision(const NoCollision& cm); + NoStochasticCollision(const NoStochasticCollision& cm); //- Construct and return a clone - virtual autoPtr > clone() const + virtual autoPtr > clone() const { - return autoPtr > + return autoPtr > ( - new NoCollision(*this) + new NoStochasticCollision(*this) ); } //- Destructor - virtual ~NoCollision(); + virtual ~NoStochasticCollision(); // Member Functions + //- Flag to indicate whether model activates collision model + virtual bool active() const; + virtual bool update ( const scalar dt, @@ -114,7 +117,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository -# include "NoCollision.C" +# include "NoStochasticCollision.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/spray/submodels/CollisionModel/ORourkeCollision/ORourkeCollision.C b/src/lagrangian/spray/submodels/StochasticCollision/ORourkeCollision/ORourkeCollision.C similarity index 98% rename from src/lagrangian/spray/submodels/CollisionModel/ORourkeCollision/ORourkeCollision.C rename to src/lagrangian/spray/submodels/StochasticCollision/ORourkeCollision/ORourkeCollision.C index 6d8a530945..73e6baf417 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/ORourkeCollision/ORourkeCollision.C +++ b/src/lagrangian/spray/submodels/StochasticCollision/ORourkeCollision/ORourkeCollision.C @@ -34,7 +34,7 @@ Foam::ORourkeCollision::ORourkeCollision CloudType& owner ) : - CollisionModel(dict, owner), + StochasticCollisionModel(dict, owner, typeName), coalescence_(this->coeffDict().lookup("coalescence")) {} @@ -45,7 +45,7 @@ Foam::ORourkeCollision::ORourkeCollision const ORourkeCollision& cm ) : - CollisionModel(cm), + StochasticCollisionModel(cm), coalescence_(cm.coalescence_) {} diff --git a/src/lagrangian/spray/submodels/CollisionModel/ORourkeCollision/ORourkeCollision.H b/src/lagrangian/spray/submodels/StochasticCollision/ORourkeCollision/ORourkeCollision.H similarity index 94% rename from src/lagrangian/spray/submodels/CollisionModel/ORourkeCollision/ORourkeCollision.H rename to src/lagrangian/spray/submodels/StochasticCollision/ORourkeCollision/ORourkeCollision.H index 54c94d57f1..ad685e8d34 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/ORourkeCollision/ORourkeCollision.H +++ b/src/lagrangian/spray/submodels/StochasticCollision/ORourkeCollision/ORourkeCollision.H @@ -33,7 +33,7 @@ Description #ifndef ORourkeCollision_H #define ORourkeCollision_H -#include "CollisionModel.H" +#include "StochasticCollisionModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -46,7 +46,7 @@ namespace Foam template class ORourkeCollision : - public CollisionModel + public StochasticCollisionModel { private: @@ -68,9 +68,9 @@ public: ORourkeCollision(const ORourkeCollision& cm); //- Construct and return a clone - virtual autoPtr > clone() const + virtual autoPtr > clone() const { - return autoPtr > + return autoPtr > ( new ORourkeCollision(*this) ); diff --git a/src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModel.C b/src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModel.C similarity index 85% rename from src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModel.C rename to src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModel.C index 0212521e82..efc7f85750 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModel.C +++ b/src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModel.C @@ -23,12 +23,12 @@ License \*---------------------------------------------------------------------------*/ -#include "CollisionModel.H" +#include "StochasticCollisionModel.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template -Foam::CollisionModel::CollisionModel +Foam::StochasticCollisionModel::StochasticCollisionModel ( CloudType& owner ) @@ -38,9 +38,9 @@ Foam::CollisionModel::CollisionModel template -Foam::CollisionModel::CollisionModel +Foam::StochasticCollisionModel::StochasticCollisionModel ( - const CollisionModel& cm + const StochasticCollisionModel& cm ) : SubModelBase(cm) @@ -48,7 +48,7 @@ Foam::CollisionModel::CollisionModel template -Foam::CollisionModel::CollisionModel +Foam::StochasticCollisionModel::StochasticCollisionModel ( const dictionary& dict, CloudType& owner, @@ -62,14 +62,14 @@ Foam::CollisionModel::CollisionModel // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template -Foam::CollisionModel::~CollisionModel() +Foam::StochasticCollisionModel::~StochasticCollisionModel() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -bool Foam::CollisionModel::update +bool Foam::StochasticCollisionModel::update ( const scalar dt, cachedRandom& rndGen, @@ -99,7 +99,7 @@ bool Foam::CollisionModel::update { notImplemented ( - "bool Foam::CollisionModel::update" + "bool Foam::StochasticCollisionModel::update" "(" "const scalar, " "cachedRandom&, " @@ -134,7 +134,7 @@ bool Foam::CollisionModel::update // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#include "CollisionModelNew.C" +#include "StochasticCollisionModelNew.C" // ************************************************************************* // diff --git a/src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModel.H b/src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModel.H similarity index 80% rename from src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModel.H rename to src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModel.H index 4da3046f87..012a851424 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModel.H +++ b/src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModel.H @@ -22,19 +22,19 @@ License along with OpenFOAM. If not, see . Class - Foam::CollisionModel + Foam::StochasticCollisionModel Description - Templated collision model class + Templated stochastic collision model class SourceFiles - CollisionModel.C - CollisionModelNew.C + StochasticCollisionModel.C + StochasticCollisionModelNew.C \*---------------------------------------------------------------------------*/ -#ifndef CollisionModel_H -#define CollisionModel_H +#ifndef StochasticCollisionModel_H +#define StochasticCollisionModel_H #include "IOdictionary.H" #include "autoPtr.H" @@ -47,11 +47,11 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class CollisionModel Declaration + Class StochasticCollisionModel Declaration \*---------------------------------------------------------------------------*/ template -class CollisionModel +class StochasticCollisionModel : public SubModelBase { @@ -64,7 +64,7 @@ public: declareRunTimeSelectionTable ( autoPtr, - CollisionModel, + StochasticCollisionModel, dictionary, ( const dictionary& dict, @@ -77,10 +77,10 @@ public: // Constructors //- Construct null from owner - CollisionModel(CloudType& owner); + StochasticCollisionModel(CloudType& owner); //- Construct from dictionary - CollisionModel + StochasticCollisionModel ( const dictionary& dict, CloudType& owner, @@ -88,24 +88,24 @@ public: ); //- Construct copy - CollisionModel(const CollisionModel& cm); + StochasticCollisionModel(const StochasticCollisionModel& cm); //- Construct and return a clone - virtual autoPtr > clone() const + virtual autoPtr > clone() const { - return autoPtr > + return autoPtr > ( - new CollisionModel(*this) + new StochasticCollisionModel(*this) ); } //- Destructor - virtual ~CollisionModel(); + virtual ~StochasticCollisionModel(); //- Selector - static autoPtr > New + static autoPtr > New ( const dictionary& dict, CloudType& owner @@ -150,27 +150,27 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#define makeCollisionModel(CloudType) \ +#define makeStochasticCollisionModel(CloudType) \ \ typedef CloudType::sprayCloudType sprayCloudType; \ defineNamedTemplateTypeNameAndDebug \ ( \ - CollisionModel, \ + StochasticCollisionModel, \ 0 \ ); \ defineTemplateRunTimeSelectionTable \ ( \ - CollisionModel, \ + StochasticCollisionModel, \ dictionary \ ); -#define makeCollisionModelType(SS, CloudType) \ +#define makeStochasticCollisionModelType(SS, CloudType) \ \ typedef CloudType::sprayCloudType sprayCloudType; \ defineNamedTemplateTypeNameAndDebug(SS, 0); \ \ - CollisionModel:: \ + StochasticCollisionModel:: \ adddictionaryConstructorToTable > \ add##SS##CloudType##sprayCloudType##ConstructorToTable_; @@ -179,7 +179,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository -# include "CollisionModel.C" +# include "StochasticCollisionModel.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModelNew.C b/src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModelNew.C similarity index 71% rename from src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModelNew.C rename to src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModelNew.C index f8e7c1bf51..c17d04c64a 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/CollisionModel/CollisionModelNew.C +++ b/src/lagrangian/spray/submodels/StochasticCollision/StochasticCollisionModel/StochasticCollisionModelNew.C @@ -23,42 +23,44 @@ License \*---------------------------------------------------------------------------*/ -#include "CollisionModel.H" +#include "StochasticCollisionModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template -Foam::autoPtr > -Foam::CollisionModel::New +Foam::autoPtr > +Foam::StochasticCollisionModel::New ( const dictionary& dict, CloudType& owner ) { - word CollisionModelType(dict.lookup("CollisionModel")); + word modelType(dict.lookup("StochasticCollisionModel")); - Info<< "Selecting CollisionModel " << CollisionModelType << endl; + Info<< "Selecting StochasticCollisionModel " << modelType << endl; typename dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(CollisionModelType); + dictionaryConstructorTablePtr_->find(modelType); if (cstrIter == dictionaryConstructorTablePtr_->end()) { FatalErrorIn ( - "CollisionModel::New" + "StochasticCollisionModel::New" "(" "const dictionary&, " "CloudType&" ")" - ) << "Unknown CollisionModelType type " - << CollisionModelType - << ", constructor not in hash table" << nl << nl - << " Valid CollisionModel types are:" << nl + ) << "Unknown StochasticCollisionModelType type " + << modelType << ", constructor not in hash table" << nl << nl + << " Valid StochasticCollisionModel types are:" << nl << dictionaryConstructorTablePtr_->sortedToc() << exit(FatalError); } - return autoPtr >(cstrIter()(dict, owner)); + return autoPtr > + ( + cstrIter()(dict, owner) + ); } diff --git a/src/lagrangian/spray/submodels/CollisionModel/TrajectoryCollision/TrajectoryCollision.C b/src/lagrangian/spray/submodels/StochasticCollision/TrajectoryCollision/TrajectoryCollision.C similarity index 98% rename from src/lagrangian/spray/submodels/CollisionModel/TrajectoryCollision/TrajectoryCollision.C rename to src/lagrangian/spray/submodels/StochasticCollision/TrajectoryCollision/TrajectoryCollision.C index 9c90acc7fb..87790da192 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/TrajectoryCollision/TrajectoryCollision.C +++ b/src/lagrangian/spray/submodels/StochasticCollision/TrajectoryCollision/TrajectoryCollision.C @@ -34,7 +34,7 @@ Foam::TrajectoryCollision::TrajectoryCollision CloudType& owner ) : - CollisionModel(dict, owner, typeName), + StochasticCollisionModel(dict, owner, typeName), cSpace_(readScalar(this->coeffDict().lookup("cSpace"))), cTime_(readScalar(this->coeffDict().lookup("cTime"))), coalescence_(this->coeffDict().lookup("coalescence")) @@ -47,7 +47,7 @@ Foam::TrajectoryCollision::TrajectoryCollision const TrajectoryCollision& cm ) : - CollisionModel(cm), + StochasticCollisionModel(cm), cSpace_(cm.cSpace_), cTime_(cm.cTime_), coalescence_(cm.coalescence_) diff --git a/src/lagrangian/spray/submodels/CollisionModel/TrajectoryCollision/TrajectoryCollision.H b/src/lagrangian/spray/submodels/StochasticCollision/TrajectoryCollision/TrajectoryCollision.H similarity index 94% rename from src/lagrangian/spray/submodels/CollisionModel/TrajectoryCollision/TrajectoryCollision.H rename to src/lagrangian/spray/submodels/StochasticCollision/TrajectoryCollision/TrajectoryCollision.H index e0e4dc2243..7de45fcfd1 100644 --- a/src/lagrangian/spray/submodels/CollisionModel/TrajectoryCollision/TrajectoryCollision.H +++ b/src/lagrangian/spray/submodels/StochasticCollision/TrajectoryCollision/TrajectoryCollision.H @@ -32,7 +32,7 @@ Description #ifndef TrajectoryCollision_H #define TrajectoryCollision_H -#include "CollisionModel.H" +#include "StochasticCollisionModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -45,7 +45,7 @@ namespace Foam template class TrajectoryCollision : - public CollisionModel + public StochasticCollisionModel { private: @@ -71,9 +71,9 @@ public: TrajectoryCollision(const TrajectoryCollision& cm); //- Construct and return a clone - virtual autoPtr > clone() const + virtual autoPtr > clone() const { - return autoPtr > + return autoPtr > ( new TrajectoryCollision(*this) );