diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index 0d7cafdf0a..929f02b298 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -279,6 +279,14 @@ Foam::RASModels::kineticTheoryModel::epsilon() const } +Foam::tmp +Foam::RASModels::kineticTheoryModel::omega() const +{ + NotImplemented; + return nut_; +} + + Foam::tmp Foam::RASModels::kineticTheoryModel::sigma() const { diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H index 857c516d5e..ce7cc07822 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -203,6 +203,9 @@ public: //- Return the turbulence kinetic energy dissipation rate virtual tmp epsilon() const; + //- Return the turbulence specific dissipation rate + virtual tmp omega() const; + //- Return the stress tensor [m^2/s^2] virtual tmp sigma() const; diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/phasePressureModel/phasePressureModel.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/phasePressureModel/phasePressureModel.C index fe45bd3b89..5123a11639 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/phasePressureModel/phasePressureModel.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/phasePressureModel/phasePressureModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -114,6 +114,14 @@ Foam::RASModels::phasePressureModel::epsilon() const } +Foam::tmp +Foam::RASModels::phasePressureModel::omega() const +{ + NotImplemented; + return nut_; +} + + Foam::tmp Foam::RASModels::phasePressureModel::sigma() const { diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/phasePressureModel/phasePressureModel.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/phasePressureModel/phasePressureModel.H index 0da4599ad5..a5c1909659 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/phasePressureModel/phasePressureModel.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseCompressibleMomentumTransportModels/phasePressureModel/phasePressureModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -145,6 +145,9 @@ public: //- Return the turbulence kinetic energy dissipation rate virtual tmp epsilon() const; + //- Return the turbulence specific dissipation rate + virtual tmp omega() const; + //- Return the stress tensor [m^2/s^2] virtual tmp sigma() const; diff --git a/src/MomentumTransportModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H b/src/MomentumTransportModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H index d69e8ecde1..15e65b950f 100644 --- a/src/MomentumTransportModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H +++ b/src/MomentumTransportModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -161,6 +161,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); diff --git a/src/MomentumTransportModels/incompressible/RAS/LienCubicKE/LienCubicKE.H b/src/MomentumTransportModels/incompressible/RAS/LienCubicKE/LienCubicKE.H index c7cd325b53..8c69ceaace 100644 --- a/src/MomentumTransportModels/incompressible/RAS/LienCubicKE/LienCubicKE.H +++ b/src/MomentumTransportModels/incompressible/RAS/LienCubicKE/LienCubicKE.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -187,6 +187,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); }; diff --git a/src/MomentumTransportModels/incompressible/RAS/LienLeschziner/LienLeschziner.H b/src/MomentumTransportModels/incompressible/RAS/LienLeschziner/LienLeschziner.H index cbe8610df1..b5fb7a7a8f 100644 --- a/src/MomentumTransportModels/incompressible/RAS/LienLeschziner/LienLeschziner.H +++ b/src/MomentumTransportModels/incompressible/RAS/LienLeschziner/LienLeschziner.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -175,6 +175,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); }; diff --git a/src/MomentumTransportModels/incompressible/RAS/ShihQuadraticKE/ShihQuadraticKE.H b/src/MomentumTransportModels/incompressible/RAS/ShihQuadraticKE/ShihQuadraticKE.H index f438349e25..685c5a9d4c 100644 --- a/src/MomentumTransportModels/incompressible/RAS/ShihQuadraticKE/ShihQuadraticKE.H +++ b/src/MomentumTransportModels/incompressible/RAS/ShihQuadraticKE/ShihQuadraticKE.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -162,6 +162,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(0.09*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); }; diff --git a/src/MomentumTransportModels/incompressible/RAS/qZeta/qZeta.H b/src/MomentumTransportModels/incompressible/RAS/qZeta/qZeta.H index 84905d8b4c..518003ac6c 100644 --- a/src/MomentumTransportModels/incompressible/RAS/qZeta/qZeta.H +++ b/src/MomentumTransportModels/incompressible/RAS/qZeta/qZeta.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -193,6 +193,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + virtual const volScalarField& q() const { return q_; diff --git a/src/MomentumTransportModels/momentumTransportModels/LES/DeardorffDiffStress/DeardorffDiffStress.C b/src/MomentumTransportModels/momentumTransportModels/LES/DeardorffDiffStress/DeardorffDiffStress.C index b5866f2f1d..e38c8646c1 100644 --- a/src/MomentumTransportModels/momentumTransportModels/LES/DeardorffDiffStress/DeardorffDiffStress.C +++ b/src/MomentumTransportModels/momentumTransportModels/LES/DeardorffDiffStress/DeardorffDiffStress.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -140,7 +140,7 @@ template tmp DeardorffDiffStress::epsilon() const { - volScalarField k(this->k()); + const volScalarField k(this->k()); return volScalarField::New ( @@ -150,6 +150,20 @@ DeardorffDiffStress::epsilon() const } +template +tmp +DeardorffDiffStress::omega() const +{ + const volScalarField k(this->k()); + + return volScalarField::New + ( + IOobject::groupName("omega", this->alphaRhoPhi_.group()), + (this->Ce_/this->Ck_)*sqrt(k)/this->delta() + ); +} + + template void DeardorffDiffStress::correct() { diff --git a/src/MomentumTransportModels/momentumTransportModels/LES/DeardorffDiffStress/DeardorffDiffStress.H b/src/MomentumTransportModels/momentumTransportModels/LES/DeardorffDiffStress/DeardorffDiffStress.H index 3090b65de5..c1f9c27b4a 100644 --- a/src/MomentumTransportModels/momentumTransportModels/LES/DeardorffDiffStress/DeardorffDiffStress.H +++ b/src/MomentumTransportModels/momentumTransportModels/LES/DeardorffDiffStress/DeardorffDiffStress.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -140,6 +140,9 @@ public: //- Return the turbulence kinetic energy dissipation rate virtual tmp epsilon() const; + //- Return the turbulence specific dissipation rate + virtual tmp omega() const; + //- Correct sub-grid stress, eddy-Viscosity and related properties virtual void correct(); diff --git a/src/MomentumTransportModels/momentumTransportModels/LES/LESeddyViscosity/LESeddyViscosity.C b/src/MomentumTransportModels/momentumTransportModels/LES/LESeddyViscosity/LESeddyViscosity.C index 39ae663786..e167149969 100644 --- a/src/MomentumTransportModels/momentumTransportModels/LES/LESeddyViscosity/LESeddyViscosity.C +++ b/src/MomentumTransportModels/momentumTransportModels/LES/LESeddyViscosity/LESeddyViscosity.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -57,6 +57,16 @@ LESeddyViscosity::LESeddyViscosity viscosity ), + Ck_ + ( + dimensioned::lookupOrAddToDict + ( + "Ck", + this->coeffDict_, + 0.094 + ) + ), + Ce_ ( dimensioned::lookupOrAddToDict @@ -76,6 +86,7 @@ bool LESeddyViscosity::read() { if (eddyViscosity>::read()) { + Ck_.readIfPresent(this->coeffDict()); Ce_.readIfPresent(this->coeffDict()); return true; @@ -101,6 +112,20 @@ LESeddyViscosity::epsilon() const } +template +tmp +LESeddyViscosity::omega() const +{ + tmp tk(this->k()); + + return volScalarField::New + ( + IOobject::groupName("omega", this->alphaRhoPhi_.group()), + (Ce_/Ck_)*sqrt(tk())/this->delta() + ); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace LESModels diff --git a/src/MomentumTransportModels/momentumTransportModels/LES/LESeddyViscosity/LESeddyViscosity.H b/src/MomentumTransportModels/momentumTransportModels/LES/LESeddyViscosity/LESeddyViscosity.H index 0ea66e5007..9eed0bfb36 100644 --- a/src/MomentumTransportModels/momentumTransportModels/LES/LESeddyViscosity/LESeddyViscosity.H +++ b/src/MomentumTransportModels/momentumTransportModels/LES/LESeddyViscosity/LESeddyViscosity.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -58,6 +58,7 @@ protected: // Protected data + dimensionedScalar Ck_; dimensionedScalar Ce_; @@ -98,6 +99,9 @@ public: //- Return sub-grid disipation rate virtual tmp epsilon() const; + //- Return the turbulence specific dissipation rate + virtual tmp omega() const; + // Member Operators diff --git a/src/MomentumTransportModels/momentumTransportModels/LES/Smagorinsky/Smagorinsky.C b/src/MomentumTransportModels/momentumTransportModels/LES/Smagorinsky/Smagorinsky.C index 15f2a4987b..e67e0a729e 100644 --- a/src/MomentumTransportModels/momentumTransportModels/LES/Smagorinsky/Smagorinsky.C +++ b/src/MomentumTransportModels/momentumTransportModels/LES/Smagorinsky/Smagorinsky.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -46,7 +46,7 @@ tmp Smagorinsky::k volScalarField a(this->Ce_/this->delta()); volScalarField b((2.0/3.0)*tr(D)); - volScalarField c(2*Ck_*this->delta()*(dev(D) && D)); + volScalarField c(2*this->Ck_*this->delta()*(dev(D) && D)); return volScalarField::New ( @@ -61,7 +61,7 @@ void Smagorinsky::correctNut() { volScalarField k(this->k(fvc::grad(this->U_))); - this->nut_ = Ck_*this->delta()*sqrt(k); + this->nut_ = this->Ck_*this->delta()*sqrt(k); this->nut_.correctBoundaryConditions(); fvConstraints::New(this->mesh_).constrain(this->nut_); } @@ -90,16 +90,6 @@ Smagorinsky::Smagorinsky alphaRhoPhi, phi, viscosity - ), - - Ck_ - ( - dimensioned::lookupOrAddToDict - ( - "Ck", - this->coeffDict_, - 0.094 - ) ) { if (type == typeName) @@ -114,29 +104,7 @@ Smagorinsky::Smagorinsky template bool Smagorinsky::read() { - if (LESeddyViscosity::read()) - { - Ck_.readIfPresent(this->coeffDict()); - - return true; - } - else - { - return false; - } -} - - -template -tmp Smagorinsky::epsilon() const -{ - volScalarField k(this->k(fvc::grad(this->U_))); - - return volScalarField::New - ( - IOobject::groupName("epsilon", this->alphaRhoPhi_.group()), - this->Ce_*k*sqrt(k)/this->delta() - ); + return LESeddyViscosity::read(); } diff --git a/src/MomentumTransportModels/momentumTransportModels/LES/Smagorinsky/Smagorinsky.H b/src/MomentumTransportModels/momentumTransportModels/LES/Smagorinsky/Smagorinsky.H index cd27a8fca4..6d96f8c65f 100644 --- a/src/MomentumTransportModels/momentumTransportModels/LES/Smagorinsky/Smagorinsky.H +++ b/src/MomentumTransportModels/momentumTransportModels/LES/Smagorinsky/Smagorinsky.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -90,11 +90,6 @@ class Smagorinsky { protected: - // Protected data - - dimensionedScalar Ck_; - - // Protected Member Functions //- Return SGS kinetic energy @@ -149,9 +144,6 @@ public: return k(fvc::grad(this->U_)); } - //- Return sub-grid disipation rate - virtual tmp epsilon() const; - //- Correct Eddy-Viscosity and related properties virtual void correct(); diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/LRR/LRR.H b/src/MomentumTransportModels/momentumTransportModels/RAS/LRR/LRR.H index a5c743a929..b694893fcd 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/LRR/LRR.H +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/LRR/LRR.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -189,6 +189,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Return the effective diffusivity for R tmp DREff() const; diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/LaunderSharmaKE/LaunderSharmaKE.H b/src/MomentumTransportModels/momentumTransportModels/RAS/LaunderSharmaKE/LaunderSharmaKE.H index 8b3447d879..ddf0830968 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/LaunderSharmaKE/LaunderSharmaKE.H +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/LaunderSharmaKE/LaunderSharmaKE.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -183,6 +183,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/RNGkEpsilon/RNGkEpsilon.H b/src/MomentumTransportModels/momentumTransportModels/RAS/RNGkEpsilon/RNGkEpsilon.H index c836918adc..f68612b118 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/RNGkEpsilon/RNGkEpsilon.H +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/RNGkEpsilon/RNGkEpsilon.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -188,6 +188,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/SSG/SSG.H b/src/MomentumTransportModels/momentumTransportModels/RAS/SSG/SSG.H index 2c6fefad89..0d153338ff 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/SSG/SSG.H +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/SSG/SSG.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2015-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2015-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -180,6 +180,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Return the effective diffusivity for R tmp DREff() const; diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/SpalartAllmaras/SpalartAllmaras.C b/src/MomentumTransportModels/momentumTransportModels/RAS/SpalartAllmaras/SpalartAllmaras.C index e5dad44f49..c2717dfd50 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/SpalartAllmaras/SpalartAllmaras.C +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/SpalartAllmaras/SpalartAllmaras.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -344,6 +344,24 @@ SpalartAllmaras::epsilon() const } +template +tmp +SpalartAllmaras::omega() const +{ + WarningInFunction + << "Turbulence specific dissipation rate not defined for " + << "Spalart-Allmaras model. Returning zero field" + << endl; + + return volScalarField::New + ( + "omega", + this->mesh_, + dimensionedScalar(dimless/dimTime, 0) + ); +} + + template void SpalartAllmaras::correct() { diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/SpalartAllmaras/SpalartAllmaras.H b/src/MomentumTransportModels/momentumTransportModels/RAS/SpalartAllmaras/SpalartAllmaras.H index eca6e09cba..d7aa9ff1a3 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/SpalartAllmaras/SpalartAllmaras.H +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/SpalartAllmaras/SpalartAllmaras.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -194,6 +194,9 @@ public: //- Return the turbulence kinetic energy dissipation rate virtual tmp epsilon() const; + //- Return the turbulence specific dissipation rate + virtual tmp omega() const; + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/kEpsilon/kEpsilon.H b/src/MomentumTransportModels/momentumTransportModels/RAS/kEpsilon/kEpsilon.H index 694627f986..e6a7307d04 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/kEpsilon/kEpsilon.H +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/kEpsilon/kEpsilon.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -181,6 +181,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/realizableKE/realizableKE.H b/src/MomentumTransportModels/momentumTransportModels/RAS/realizableKE/realizableKE.H index 88d2fd5466..599c79b742 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/realizableKE/realizableKE.H +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/realizableKE/realizableKE.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -189,6 +189,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(0.09*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); }; diff --git a/src/MomentumTransportModels/momentumTransportModels/RAS/v2f/v2f.H b/src/MomentumTransportModels/momentumTransportModels/RAS/v2f/v2f.H index 24b8066c8c..fd9392e546 100644 --- a/src/MomentumTransportModels/momentumTransportModels/RAS/v2f/v2f.H +++ b/src/MomentumTransportModels/momentumTransportModels/RAS/v2f/v2f.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2012-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -238,6 +238,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Return turbulence stress normal to streamlines virtual tmp v2() const { diff --git a/src/MomentumTransportModels/momentumTransportModels/laminar/laminarModel/laminarModel.C b/src/MomentumTransportModels/momentumTransportModels/laminar/laminarModel/laminarModel.C index 476d46b8ad..71c0af86f1 100644 --- a/src/MomentumTransportModels/momentumTransportModels/laminar/laminarModel/laminarModel.C +++ b/src/MomentumTransportModels/momentumTransportModels/laminar/laminarModel/laminarModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2016-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -212,7 +212,7 @@ Foam::laminarModel::k() const ( IOobject::groupName("k", this->alphaRhoPhi_.group()), this->mesh_, - dimensionedScalar(sqr(this->U_.dimensions()), 0) + dimensionedScalar(sqr(dimVelocity), 0) ); } @@ -225,7 +225,20 @@ Foam::laminarModel::epsilon() const ( IOobject::groupName("epsilon", this->alphaRhoPhi_.group()), this->mesh_, - dimensionedScalar(sqr(this->U_.dimensions())/dimTime, 0) + dimensionedScalar(sqr(dimVelocity)/dimTime, 0) + ); +} + + +template +Foam::tmp +Foam::laminarModel::omega() const +{ + return volScalarField::New + ( + IOobject::groupName("omega", this->alphaRhoPhi_.group()), + this->mesh_, + dimensionedScalar(dimless/dimTime, 0) ); } diff --git a/src/MomentumTransportModels/momentumTransportModels/laminar/laminarModel/laminarModel.H b/src/MomentumTransportModels/momentumTransportModels/laminar/laminarModel/laminarModel.H index 3313831e89..8e841505aa 100644 --- a/src/MomentumTransportModels/momentumTransportModels/laminar/laminarModel/laminarModel.H +++ b/src/MomentumTransportModels/momentumTransportModels/laminar/laminarModel/laminarModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2016-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -168,6 +168,10 @@ public: // i.e. 0 for laminar flow virtual tmp epsilon() const; + //- Return the turbulence specific dissipation rate, + // i.e. 0 for laminar flow + virtual tmp omega() const; + //- Return the stress tensor [m^2/s^2], i.e. 0 for laminar flow virtual tmp sigma() const; diff --git a/src/MomentumTransportModels/momentumTransportModels/momentumTransportModel.H b/src/MomentumTransportModels/momentumTransportModels/momentumTransportModel.H index db60177988..6391eb6d5d 100644 --- a/src/MomentumTransportModels/momentumTransportModels/momentumTransportModel.H +++ b/src/MomentumTransportModels/momentumTransportModels/momentumTransportModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -206,6 +206,9 @@ public: //- Return the turbulence kinetic energy dissipation rate virtual tmp epsilon() const = 0; + //- Return the turbulence specific dissipation rate + virtual tmp omega() const = 0; + //- Return the stress tensor [m^2/s^2] virtual tmp sigma() const = 0; diff --git a/src/MomentumTransportModels/phaseCompressible/RAS/mixtureKEpsilon/mixtureKEpsilon.H b/src/MomentumTransportModels/phaseCompressible/RAS/mixtureKEpsilon/mixtureKEpsilon.H index 449ddd96b8..84ad1d1928 100644 --- a/src/MomentumTransportModels/phaseCompressible/RAS/mixtureKEpsilon/mixtureKEpsilon.H +++ b/src/MomentumTransportModels/phaseCompressible/RAS/mixtureKEpsilon/mixtureKEpsilon.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -237,6 +237,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); diff --git a/src/atmosphericModels/kEpsilonLopesdaCosta/kEpsilonLopesdaCosta.H b/src/atmosphericModels/kEpsilonLopesdaCosta/kEpsilonLopesdaCosta.H index ede9a2e13e..e5b687b478 100644 --- a/src/atmosphericModels/kEpsilonLopesdaCosta/kEpsilonLopesdaCosta.H +++ b/src/atmosphericModels/kEpsilonLopesdaCosta/kEpsilonLopesdaCosta.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2018-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2018-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -207,6 +207,17 @@ public: return epsilon_; } + //- Return the turbulence specific dissipation rate + virtual tmp omega() const + { + return volScalarField::New + ( + "omega", + epsilon_/(Cmu_*k_), + epsilon_.boundaryField().types() + ); + } + //- Solve the turbulence equations and correct the turbulence viscosity virtual void correct(); diff --git a/src/functionObjects/field/turbulenceFields/turbulenceFields.C b/src/functionObjects/field/turbulenceFields/turbulenceFields.C index 63df49b7cc..fc0b3a31c7 100644 --- a/src/functionObjects/field/turbulenceFields/turbulenceFields.C +++ b/src/functionObjects/field/turbulenceFields/turbulenceFields.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -191,7 +191,7 @@ bool Foam::functionObjects::turbulenceFields::execute() } case compressibleField::omega: { - processField(f, omega(model)); + processField(f, model.omega()); break; } case compressibleField::nut: @@ -249,7 +249,7 @@ bool Foam::functionObjects::turbulenceFields::execute() } case compressibleField::omega: { - processField(f, omega(model)); + processField(f, model.omega()); break; } case compressibleField::nut: @@ -308,7 +308,7 @@ bool Foam::functionObjects::turbulenceFields::execute() } case incompressibleField::omega: { - processField(f, omega(model)); + processField(f, model.omega()); break; } case incompressibleField::nut: diff --git a/src/functionObjects/field/turbulenceFields/turbulenceFields.H b/src/functionObjects/field/turbulenceFields/turbulenceFields.H index 704aca9e0e..ab53704321 100644 --- a/src/functionObjects/field/turbulenceFields/turbulenceFields.H +++ b/src/functionObjects/field/turbulenceFields/turbulenceFields.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -161,10 +161,6 @@ protected: const tmp>& tvalue ); - //- Return omega calculated from k and epsilon - template - tmp omega(const Model& model) const; - public: diff --git a/src/functionObjects/field/turbulenceFields/turbulenceFieldsTemplates.C b/src/functionObjects/field/turbulenceFields/turbulenceFieldsTemplates.C index bd54ab7bd0..943aa1ee0b 100644 --- a/src/functionObjects/field/turbulenceFields/turbulenceFieldsTemplates.C +++ b/src/functionObjects/field/turbulenceFields/turbulenceFieldsTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2012-2020 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2022 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -73,37 +73,4 @@ void Foam::functionObjects::turbulenceFields::processField } -template -Foam::tmp -Foam::functionObjects::turbulenceFields::omega -( - const Model& model -) const -{ - const scalar Cmu = 0.09; - - // Assume k and epsilon are available - const volScalarField k(model.k()); - const volScalarField epsilon(model.epsilon()); - - return tmp - ( - new volScalarField - ( - IOobject - ( - IOobject::groupName("omega", phaseName_), - k.mesh().time().timeName(), - k.mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - epsilon/(Cmu*k), - epsilon.boundaryField().types() - ) - ); -} - - // ************************************************************************* //