From 07c28f578630317ab61abbb050369bd342d2a62a Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Thu, 5 Sep 2013 18:24:02 +0100 Subject: [PATCH] ENH: Spray - usability updates to break-up models - mantis #993 --- .../BreakupModel/BreakupModel/BreakupModel.C | 21 +++++++------- .../BreakupModel/BreakupModel/BreakupModel.H | 5 ++-- .../spray/submodels/BreakupModel/ETAB/ETAB.C | 28 ++++--------------- .../spray/submodels/BreakupModel/ETAB/ETAB.H | 7 +---- .../spray/submodels/BreakupModel/TAB/TAB.C | 24 +++------------- .../spray/submodels/BreakupModel/TAB/TAB.H | 5 +--- 6 files changed, 24 insertions(+), 66 deletions(-) diff --git a/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.C b/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.C index f714be34f48..521cc4d12d0 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.C +++ b/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -64,11 +64,12 @@ Foam::BreakupModel<CloudType>::BreakupModel ( const dictionary& dict, CloudType& owner, - const word& type + const word& type, + bool solveOscillationEq ) : SubModelBase<CloudType>(owner, dict, typeName, type), - solveOscillationEq_(this->coeffDict().lookup("solveOscillationEq")), + solveOscillationEq_(solveOscillationEq), y0_(0.0), yDot0_(0.0), TABComega_(0.0), @@ -77,14 +78,12 @@ Foam::BreakupModel<CloudType>::BreakupModel { if (solveOscillationEq_) { - const dictionary TABcoeffsDict(dict.subDict("TABCoeffs")); - y0_ = TABcoeffsDict.template lookupOrDefault<scalar>("y0", 0.0); - yDot0_ = TABcoeffsDict.template lookupOrDefault<scalar>("yDot0", 0.0); - TABComega_ = - TABcoeffsDict.template lookupOrDefault<scalar>("Comega", 8.0); - TABCmu_ = TABcoeffsDict.template lookupOrDefault<scalar>("Cmu", 10.0); - TABWeCrit_ = - TABcoeffsDict.template lookupOrDefault<scalar>("WeCrit", 12.0); + const dictionary coeffs(dict.subDict("TABCoeffs")); + y0_ = coeffs.template lookupOrDefault<scalar>("y0", 0.0); + yDot0_ = coeffs.template lookupOrDefault<scalar>("yDot0", 0.0); + TABComega_ = coeffs.template lookupOrDefault<scalar>("Comega", 8.0); + TABCmu_ = coeffs.template lookupOrDefault<scalar>("Cmu", 10.0); + TABWeCrit_ = coeffs.template lookupOrDefault<scalar>("WeCrit", 12.0); } } diff --git a/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.H b/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.H index e0672ca9389..e10c56a0f71 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.H +++ b/src/lagrangian/spray/submodels/BreakupModel/BreakupModel/BreakupModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -97,7 +97,8 @@ public: ( const dictionary& dict, CloudType& owner, - const word& type + const word& type, + bool solveOscillationEq = false ); //- Construct copy diff --git a/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.C b/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.C index fb480408313..dec1e0bae0f 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.C +++ b/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,36 +34,21 @@ Foam::ETAB<CloudType>::ETAB CloudType& owner ) : - BreakupModel<CloudType>(dict, owner, typeName), - Cmu_(10.0), - Comega_(8.0), + BreakupModel<CloudType>(dict, owner, typeName, true), k1_(0.2), k2_(0.2), - WeCrit_(12.0), WeTransition_(100.0), AWe_(0.0) { if (!this->defaultCoeffs(true)) { - this->coeffDict().lookup("Cmu") >> Cmu_; - this->coeffDict().lookup("Comega") >> Comega_; this->coeffDict().lookup("k1") >> k1_; this->coeffDict().lookup("k2") >> k2_; - this->coeffDict().lookup("WeCrit") >> WeCrit_; this->coeffDict().lookup("WeTransition") >> WeTransition_; } scalar k21 = k2_/k1_; AWe_ = (k21*sqrt(WeTransition_) - 1.0)/pow4(WeTransition_); - - if (!BreakupModel<CloudType>::solveOscillationEq_) - { - Info<< "Warning: solveOscillationEq is set to " - << BreakupModel<CloudType>::solveOscillationEq_ << nl - << " Setting it to true in order for the ETAB model to work." - << endl; - BreakupModel<CloudType>::solveOscillationEq_ = true; - } } @@ -71,11 +56,8 @@ template<class CloudType> Foam::ETAB<CloudType>::ETAB(const ETAB<CloudType>& bum) : BreakupModel<CloudType>(bum), - Cmu_(bum.Cmu_), - Comega_(bum.Comega_), k1_(bum.k1_), k2_(bum.k2_), - WeCrit_(bum.WeCrit_), WeTransition_(bum.WeTransition_), AWe_(bum.AWe_) {} @@ -123,10 +105,10 @@ bool Foam::ETAB<CloudType>::update scalar semiMass = nParticle*pow3(d); // inverse of characteristic viscous damping time - scalar rtd = 0.5*Cmu_*mu/(rho*r2); + scalar rtd = 0.5*this->TABCmu_*mu/(rho*r2); // oscillation frequency (squared) - scalar omega2 = Comega_*sigma/(rho*r3) - rtd*rtd; + scalar omega2 = this->TABComega_*sigma/(rho*r3) - rtd*rtd; if (omega2 > 0) { @@ -134,7 +116,7 @@ bool Foam::ETAB<CloudType>::update scalar romega = 1.0/omega; scalar We = rhoc*sqr(Urmag)*r/sigma; - scalar Wetmp = We/WeCrit_; + scalar Wetmp = We/this->TABWeCrit_; scalar y1 = y - Wetmp; scalar y2 = yDot*romega; diff --git a/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.H b/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.H index 86d27e934da..9b8b45c04f0 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.H +++ b/src/lagrangian/spray/submodels/BreakupModel/ETAB/ETAB.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -71,13 +71,8 @@ private: // Model constants - // Cmu_ and Comega_ are the same as in the TAB model - scalar Cmu_; - scalar Comega_; - scalar k1_; scalar k2_; - scalar WeCrit_; scalar WeTransition_; scalar AWe_; diff --git a/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.C b/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.C index 0fe325fbacf..817542ad7cf 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.C +++ b/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.C @@ -34,10 +34,7 @@ Foam::TAB<CloudType>::TAB CloudType& owner ) : - BreakupModel<CloudType>(dict, owner, typeName), - Cmu_(BreakupModel<CloudType>::TABCmu_), - Comega_(BreakupModel<CloudType>::TABComega_), - WeCrit_(BreakupModel<CloudType>::TABWeCrit_), + BreakupModel<CloudType>(dict, owner, typeName, true), SMDCalcMethod_(this->coeffDict().lookup("SMDCalculationMethod")) { // calculate the inverse function of the Rossin-Rammler Distribution @@ -52,16 +49,6 @@ Foam::TAB<CloudType>::TAB (1.0 - exp(-xx)*(1.0 + xx + sqr(xx)/2.0 + pow3(xx)/6.0))*rrd100; } - if (!BreakupModel<CloudType>::solveOscillationEq_) - { - WarningIn("Foam::TAB<CloudType>::TAB(const dictionary&, CloudType&)") - << "solveOscillationEq is set to " - << BreakupModel<CloudType>::solveOscillationEq_ << nl - << " Setting it to true in order for the TAB model to work." - << endl; - BreakupModel<CloudType>::solveOscillationEq_ = true; - } - if (SMDCalcMethod_ == "method1") { SMDMethod_ = method1; @@ -84,9 +71,6 @@ template<class CloudType> Foam::TAB<CloudType>::TAB(const TAB<CloudType>& bum) : BreakupModel<CloudType>(bum), - Cmu_(bum.Cmu_), - Comega_(bum.Comega_), - WeCrit_(bum.WeCrit_), SMDCalcMethod_(bum.SMDCalcMethod_) {} @@ -135,16 +119,16 @@ bool Foam::TAB<CloudType>::update scalar semiMass = nParticle*pow3(d); // inverse of characteristic viscous damping time - scalar rtd = 0.5*Cmu_*mu/(rho*r2); + scalar rtd = 0.5*this->TABCmu_*mu/(rho*r2); // oscillation frequency (squared) - scalar omega2 = Comega_*sigma/(rho*r3) - rtd*rtd; + scalar omega2 = this->TABComega_*sigma/(rho*r3) - rtd*rtd; if (omega2 > 0) { scalar omega = sqrt(omega2); scalar We = rhoc*sqr(Urmag)*r/sigma; - scalar Wetmp = We/WeCrit_; + scalar Wetmp = We/this->TABWeCrit_; scalar y1 = y - Wetmp; scalar y2 = yDot/omega; diff --git a/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.H b/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.H index e5c9234666a..462953f1ee3 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.H +++ b/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -83,9 +83,6 @@ private: // Model constants - scalar Cmu_; - scalar Comega_; - scalar WeCrit_; word SMDCalcMethod_; SMDMethods SMDMethod_; -- GitLab