diff --git a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C index 1db5bdb72e4342768dd27d513a04b2094f3c5bfc..b742b14d20bb955a41bc52dee8a02a3ae288c38e 100644 --- a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C +++ b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C @@ -26,7 +26,8 @@ License #include "LaunderSharmaKE.H" #include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" + +#include "backwardsCompatibilityWallFunctions.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -141,10 +142,10 @@ LaunderSharmaKE::LaunderSharmaKE "k", runTime_.timeName(), mesh_, - IOobject::MUST_READ, + IOobject::NO_READ, IOobject::AUTO_WRITE ), - mesh_ + autoCreateK("k", mesh_) ), epsilon_ @@ -154,10 +155,10 @@ LaunderSharmaKE::LaunderSharmaKE "epsilon", runTime_.timeName(), mesh_, - IOobject::MUST_READ, + IOobject::NO_READ, IOobject::AUTO_WRITE ), - mesh_ + autoCreateEpsilon("epsilon", mesh_) ), mut_ @@ -170,9 +171,28 @@ LaunderSharmaKE::LaunderSharmaKE IOobject::NO_READ, IOobject::NO_WRITE ), - Cmu_*fMu()*rho_*sqr(k_)/(epsilon_ + epsilonSmall_) + autoCreateMut("mut", mesh_) + ), + + alphat_ + ( + IOobject + ( + "alphat", + runTime_.timeName(), + mesh_, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + autoCreateAlphat("alphat", mesh_) ) { + mut_ = rho_*Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_); + mut_.correctBoundaryConditions(); + + alphat_ = mut_/Prt_; + alphat_.correctBoundaryConditions(); + printCoeffs(); } @@ -256,6 +276,12 @@ void LaunderSharmaKE::correct() { // Re-calculate viscosity mut_ = rho_*Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_); + mut_.correctBoundaryConditions(); + + // Re-calculate thermal diffusivity + alphat_ = mut_/Prt_; + alphat_.correctBoundaryConditions(); + return; } @@ -275,9 +301,11 @@ void LaunderSharmaKE::correct() } tmp<volTensorField> tgradU = fvc::grad(U_); - volScalarField G = mut_*(tgradU() && dev(twoSymm(tgradU()))); + volScalarField G("RASModel::G", mut_*(tgradU() && dev(twoSymm(tgradU())))); tgradU.clear(); + // Update espsilon and G at the wall + epsilon_.boundaryField().updateCoeffs(); // Dissipation equation @@ -294,6 +322,9 @@ void LaunderSharmaKE::correct() ); epsEqn().relax(); + + epsEqn().boundaryManipulate(epsilon_.boundaryField()); + solve(epsEqn); bound(epsilon_, epsilon0_); @@ -317,7 +348,12 @@ void LaunderSharmaKE::correct() // Re-calculate viscosity - mut_ = Cmu_*fMu()*rho_*sqr(k_)/epsilon_; + mut_ = Cmu_*fMu()*rho_*sqr(k_)/(epsilon_ + epsilonSmall_); + mut_.correctBoundaryConditions(); + + // Re-calculate thermal diffusivity + alphat_ = mut_/Prt_; + alphat_.correctBoundaryConditions(); } diff --git a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H index 28cee3928bc922da7745469d26b1e3f295634338..b912ae539b56c2825279972946ace62a480f6aa6 100644 --- a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H +++ b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H @@ -64,7 +64,7 @@ namespace RASModels { /*---------------------------------------------------------------------------*\ - Class LaunderSharmaKE Declaration + Class LaunderSharmaKE Declaration \*---------------------------------------------------------------------------*/ class LaunderSharmaKE @@ -73,17 +73,23 @@ class LaunderSharmaKE { // Private data - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar C3_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar alphah_; + // Model coefficients - volScalarField k_; - volScalarField epsilon_; - volScalarField mut_; + dimensionedScalar Cmu_; + dimensionedScalar C1_; + dimensionedScalar C2_; + dimensionedScalar C3_; + dimensionedScalar alphak_; + dimensionedScalar alphaEps_; + dimensionedScalar alphah_; + + + // Fields + + volScalarField k_; + volScalarField epsilon_; + volScalarField mut_; + volScalarField alphat_; // Private member functions @@ -145,7 +151,7 @@ public: { return tmp<volScalarField> ( - new volScalarField("alphaEff", alphah_*mut_ + alpha()) + new volScalarField("alphaEff", alphah_*alphat_ + alpha()) ); } diff --git a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C index 4825c6464ae450e3e558e5e092e2337950bde578..4daef2dd8e1084d7dfed62339a4d61d15151f5fb 100644 --- a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C +++ b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C @@ -26,7 +26,8 @@ License #include "SpalartAllmaras.H" #include "addToRunTimeSelectionTable.H" -#include "wallDist.H" + +#include "backwardsCompatibilityWallFunctions.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -215,8 +216,24 @@ SpalartAllmaras::SpalartAllmaras mesh_ ), + alphat_ + ( + IOobject + ( + "alphat", + runTime_.timeName(), + mesh_, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + autoCreateAlphat("alphat", mesh_) + ), + d_(mesh_) { + alphat_ = mut_/Prt_; + alphat_.correctBoundaryConditions(); + printCoeffs(); } @@ -305,6 +322,12 @@ void SpalartAllmaras::correct() { // Re-calculate viscosity mut_ = rho_*nuTilda_*fv1(chi()); + mut_.correctBoundaryConditions(); + + // Re-calculate thermal diffusivity + alphat_ = mut_/Prt_; + alphat_.correctBoundaryConditions(); + return; } @@ -338,8 +361,13 @@ void SpalartAllmaras::correct() bound(nuTilda_, dimensionedScalar("0", nuTilda_.dimensions(), 0.0)); nuTilda_.correctBoundaryConditions(); + // Re-calculate viscosity mut_.internalField() = fv1*nuTilda_.internalField()*rho_.internalField(); mut_.correctBoundaryConditions(); + + // Re-calculate thermal diffusivity + alphat_ = mut_/Prt_; + alphat_.correctBoundaryConditions(); } diff --git a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H index 5a75616347ff2fbd81d9117d77ecd133dfd57f4e..7b96627f8e7d52affd944fbadb56dba041545c51 100644 --- a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H +++ b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H @@ -81,7 +81,7 @@ namespace RASModels { /*---------------------------------------------------------------------------*\ - Class SpalartAllmaras Declaration + Class SpalartAllmaras Declaration \*---------------------------------------------------------------------------*/ class SpalartAllmaras @@ -90,20 +90,27 @@ class SpalartAllmaras { // Private data - dimensionedScalar alphaNut_; - dimensionedScalar alphah_; + // Model coefficients + dimensionedScalar alphaNut_; + dimensionedScalar alphah_; - dimensionedScalar Cb1_; - dimensionedScalar Cb2_; - dimensionedScalar Cw1_; - dimensionedScalar Cw2_; - dimensionedScalar Cw3_; - dimensionedScalar Cv1_; - dimensionedScalar Cv2_; + dimensionedScalar Cb1_; + dimensionedScalar Cb2_; + dimensionedScalar Cw1_; + dimensionedScalar Cw2_; + dimensionedScalar Cw3_; + dimensionedScalar Cv1_; + dimensionedScalar Cv2_; - volScalarField nuTilda_; - volScalarField mut_; + // Fields + + volScalarField nuTilda_; + volScalarField mut_; + volScalarField alphat_; + + + //- Wall distance wallDist d_; @@ -173,7 +180,7 @@ public: { return tmp<volScalarField> ( - new volScalarField("alphaEff", alphah_*mut_ + alpha()) + new volScalarField("alphaEff", alphah_*alphat_ + alpha()) ); } diff --git a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C index 92c72770a8625f0f38dde715d5655408b6499e5a..8eb230792f5087e2a02014537963a79f3cbc6969 100644 --- a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C +++ b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C @@ -27,6 +27,8 @@ License #include "LamBremhorstKE.H" #include "addToRunTimeSelectionTable.H" +#include "backwardsCompatibilityWallFunctions.H" + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam @@ -112,7 +114,7 @@ LamBremhorstKE::LamBremhorstKE IOobject::MUST_READ, IOobject::AUTO_WRITE ), - mesh_ + autoCreateEpsilon("epsilon", mesh_) ), y_(mesh_), @@ -125,8 +127,22 @@ LamBremhorstKE::LamBremhorstKE *(scalar(1) + 20.5/(Rt_ + SMALL)) ), - nut_(Cmu_*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_)) + nut_ + ( + IOobject + ( + "nut", + runTime_.timeName(), + mesh_, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + autoCreateNut("nut", mesh_) + ) { + nut_ = Cmu_*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_); + nut_.correctBoundaryConditions(); + printCoeffs(); } @@ -216,7 +232,7 @@ void LamBremhorstKE::correct() y_.correct(); } - volScalarField G = nut_*2*magSqr(symm(fvc::grad(U_))); + volScalarField G("RASModel::G", nut_*2*magSqr(symm(fvc::grad(U_)))); // Calculate parameters and coefficients for low-Reynolds number model @@ -229,6 +245,8 @@ void LamBremhorstKE::correct() volScalarField f1 = scalar(1) + pow(0.05/(fMu_ + SMALL), 3); volScalarField f2 = scalar(1) - exp(-sqr(Rt_)); + // Update espsilon and G at the wall + epsilon_.boundaryField().updateCoeffs(); // Dissipation equation @@ -243,6 +261,9 @@ void LamBremhorstKE::correct() ); epsEqn().relax(); + + epsEqn().boundaryManipulate(epsilon_.boundaryField()); + solve(epsEqn); bound(epsilon_, epsilon0_); @@ -265,6 +286,7 @@ void LamBremhorstKE::correct() // Re-calculate viscosity nut_ = Cmu_*fMu_*sqr(k_)/epsilon_; + nut_.correctBoundaryConditions(); }