diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C index 96052f5b097d1ec4b89ce9bbb4c5474cf657ba9b..03e1e5aa1acb2673e463975a1b8483cf47cab590 100644 --- a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C +++ b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -171,16 +171,15 @@ LienCubicKE::LienCubicKE autoCreateEpsilon("epsilon", mesh_) ), - gradU_(fvc::grad(U)), eta_ ( k_/bound(epsilon_, epsilonMin_) - *sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))) + *sqrt(2.0*magSqr(0.5*(fvc::grad(U) + T(fvc::grad(U))))) ), ksi_ ( k_/epsilon_ - *sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))) + *sqrt(2.0*magSqr(0.5*(fvc::grad(U) - T(fvc::grad(U))))) ), Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), fEta_(A2_ + pow(eta_, 3.0)), @@ -189,8 +188,8 @@ LienCubicKE::LienCubicKE ( - 2.0*pow3(Cmu_)*pow4(k_)/pow3(epsilon_) *( - magSqr(gradU_ + gradU_.T()) - - magSqr(gradU_ - gradU_.T()) + magSqr(fvc::grad(U) + T(fvc::grad(U))) + - magSqr(fvc::grad(U) - T(fvc::grad(U))) ) ), @@ -217,20 +216,20 @@ LienCubicKE::LienCubicKE *( Ctau1_/fEta_ *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() + (fvc::grad(U) & fvc::grad(U)) + + (fvc::grad(U) & fvc::grad(U))().T() ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) + + Ctau2_/fEta_*(fvc::grad(U) & T(fvc::grad(U))) + + Ctau3_/fEta_*(T(fvc::grad(U)) & fvc::grad(U)) ) // cubic term C4 - 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0) *pow(Cmu_, 3.0) *( - ((gradU_ & gradU_) & gradU_.T()) - + ((gradU_ & gradU_.T()) & gradU_.T()) - - ((gradU_.T() & gradU_) & gradU_) - - ((gradU_.T() & gradU_.T()) & gradU_) + ((fvc::grad(U) & fvc::grad(U)) & T(fvc::grad(U))) + + ((fvc::grad(U) & T(fvc::grad(U))) & T(fvc::grad(U))) + - ((T(fvc::grad(U)) & fvc::grad(U)) & fvc::grad(U)) + - ((T(fvc::grad(U)) & T(fvc::grad(U))) & fvc::grad(U)) ) ) ) @@ -261,7 +260,7 @@ tmp<volSymmTensorField> LienCubicKE::R() const IOobject::NO_READ, IOobject::NO_WRITE ), - ((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU_) + nonlinearStress_, + ((2.0/3.0)*I)*k_ - nut_*twoSymm(fvc::grad(U_)) + nonlinearStress_, k_.boundaryField().types() ) ); @@ -332,15 +331,16 @@ void LienCubicKE::correct() return; } - gradU_ = fvc::grad(U_); + tmp<volTensorField> tgradU = fvc::grad(U_); + const volTensorField& gradU = tgradU(); // generation term - tmp<volScalarField> S2 = symm(gradU_) && gradU_; + tmp<volScalarField> S2 = symm(gradU) && gradU; volScalarField G ( "RASModel::G", - Cmu_*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU_) + Cmu_*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU) ); // Update epsilon and G at the wall @@ -384,14 +384,14 @@ void LienCubicKE::correct() // Re-calculate viscosity - eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))); - ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))); + eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + gradU.T()))); + ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - gradU.T()))); Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_)); fEta_ = A2_ + pow(eta_, 3.0); C5viscosity_ = - 2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0) - *(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T())); + *(magSqr(gradU + gradU.T()) - magSqr(gradU - gradU.T())); nut_ = Cmu_*sqr(k_)/epsilon_ + C5viscosity_; nut_.correctBoundaryConditions(); @@ -403,20 +403,20 @@ void LienCubicKE::correct() ( Ctau1_/fEta_* ( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() + (gradU & gradU) + + (gradU & gradU)().T() ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) + + Ctau2_/fEta_*(gradU & gradU.T()) + + Ctau3_/fEta_*(gradU.T() & gradU) ) // cubic term C4 - 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0) *pow(Cmu_, 3.0) *( - ((gradU_ & gradU_) & gradU_.T()) - + ((gradU_ & gradU_.T()) & gradU_.T()) - - ((gradU_.T() & gradU_) & gradU_) - - ((gradU_.T() & gradU_.T()) & gradU_) + ((gradU & gradU) & gradU.T()) + + ((gradU & gradU.T()) & gradU.T()) + - ((gradU.T() & gradU) & gradU) + - ((gradU.T() & gradU.T()) & gradU) ) ); } diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H index 1f675ac655d9c86005d694b22ad2428b61e3dd17..ebe7c373d8e9f0d9b96bfcc4e8077f16aa3c07b0 100644 --- a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H +++ b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -78,7 +78,6 @@ protected: volScalarField k_; volScalarField epsilon_; - volTensorField gradU_; volScalarField eta_; volScalarField ksi_; volScalarField Cmu_; diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C index eaf09f03c1a25fcd9e496180e13fb8e77b5ef75e..9698399642d1403122667e40f686e51fb4bc2cc2 100644 --- a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C +++ b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -220,16 +220,15 @@ LienCubicKELowRe::LienCubicKELowRe y_(mesh_), - gradU_(fvc::grad(U)), eta_ ( k_/bound(epsilon_, epsilonMin_) - *sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))) + *sqrt(2.0*magSqr(0.5*(fvc::grad(U) + T(fvc::grad(U))))) ), ksi_ ( k_/epsilon_ - *sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))) + *sqrt(2.0*magSqr(0.5*(fvc::grad(U) - T(fvc::grad(U))))) ), Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), fEta_(A2_ + pow3(eta_)), @@ -237,7 +236,7 @@ LienCubicKELowRe::LienCubicKELowRe C5viscosity_ ( -2.0*pow3(Cmu_)*pow4(k_)/pow3(epsilon_) - *(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T())) + *(magSqr(fvc::grad(U) + T(fvc::grad(U))) - magSqr(fvc::grad(U) - T(fvc::grad(U)))) ), yStar_(sqrt(k_)*y_/nu() + SMALL), @@ -265,27 +264,27 @@ LienCubicKELowRe::LienCubicKELowRe *( Ctau1_/fEta_ *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() + (fvc::grad(U) & fvc::grad(U)) + + (fvc::grad(U) & fvc::grad(U))().T() ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) + + Ctau2_/fEta_*(fvc::grad(U) & T(fvc::grad(U))) + + Ctau3_/fEta_*(T(fvc::grad(U)) & fvc::grad(U)) ) // cubic term C4 - 20.0*pow4(k_)/pow3(epsilon_) *pow3(Cmu_) *( - ((gradU_ & gradU_) & gradU_.T()) - + ((gradU_ & gradU_.T()) & gradU_.T()) - - ((gradU_.T() & gradU_) & gradU_) - - ((gradU_.T() & gradU_.T()) & gradU_) + ((fvc::grad(U) & fvc::grad(U)) & T(fvc::grad(U))) + + ((fvc::grad(U) & T(fvc::grad(U))) & T(fvc::grad(U))) + - ((T(fvc::grad(U)) & fvc::grad(U)) & fvc::grad(U)) + - ((T(fvc::grad(U)) & T(fvc::grad(U))) & fvc::grad(U)) ) // cubic term C5, explicit part + min ( C5viscosity_, dimensionedScalar("0", C5viscosity_.dimensions(), 0.0) - )*gradU_ + )*fvc::grad(U) ) ) { @@ -325,7 +324,7 @@ tmp<volSymmTensorField> LienCubicKELowRe::R() const IOobject::NO_READ, IOobject::NO_WRITE ), - ((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU_) + nonlinearStress_, + ((2.0/3.0)*I)*k_ - nut_*twoSymm(fvc::grad(U_)) + nonlinearStress_, k_.boundaryField().types() ) ); @@ -406,10 +405,11 @@ void LienCubicKELowRe::correct() y_.correct(); } - gradU_ = fvc::grad(U_); + tmp<volTensorField> tgradU = fvc::grad(U_); + const volTensorField& gradU = tgradU(); // generation term - tmp<volScalarField> S2 = symm(gradU_) && gradU_; + tmp<volScalarField> S2 = symm(gradU) && gradU; yStar_ = sqrt(k_)*y_/nu() + SMALL; tmp<volScalarField> Rt = sqr(k_)/(nu()*epsilon_); @@ -427,7 +427,7 @@ void LienCubicKELowRe::correct() volScalarField G ( "RASModel::G", - Cmu_*fMu*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU_) + Cmu_*fMu*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU) ); // Dissipation equation @@ -473,14 +473,14 @@ void LienCubicKELowRe::correct() // Re-calculate viscosity - eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))); - ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))); + eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + gradU.T()))); + ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - gradU.T()))); Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_)); fEta_ = A2_ + pow(eta_, 3.0); C5viscosity_ = - 2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0) - *(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T())); + *(magSqr(gradU + gradU.T()) - magSqr(gradU - gradU.T())); nut_ = Cmu_*fMu*sqr(k_)/epsilon_ @@ -498,27 +498,27 @@ void LienCubicKELowRe::correct() *( Ctau1_/fEta_ *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() + (gradU & gradU) + + (gradU & gradU)().T() ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) + + Ctau2_/fEta_*(gradU & gradU.T()) + + Ctau3_/fEta_*(gradU.T() & gradU) ) // cubic term C4 - 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0) *pow(Cmu_, 3.0) *( - ((gradU_ & gradU_) & gradU_.T()) - + ((gradU_ & gradU_.T()) & gradU_.T()) - - ((gradU_.T() & gradU_) & gradU_) - - ((gradU_.T() & gradU_.T()) & gradU_) + ((gradU & gradU) & gradU.T()) + + ((gradU & gradU.T()) & gradU.T()) + - ((gradU.T() & gradU) & gradU) + - ((gradU.T() & gradU.T()) & gradU) ) // cubic term C5, explicit part + min ( C5viscosity_, dimensionedScalar("0", C5viscosity_.dimensions(), 0.0) - )*gradU_ + )*gradU ); } diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H index 4cf5143e7479f290b455b7e7a050a2c9ef5a89ee..0efd63a454c5f5cbe04e0df94c86ae877cc60271 100644 --- a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H +++ b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -103,7 +103,6 @@ protected: wallDist y_; - volTensorField gradU_; volScalarField eta_; volScalarField ksi_; volScalarField Cmu_; diff --git a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C index 5fdb54af7e4a08ed9a2daf9a2fb1fb55b81e7600..09c025dc02f28ad92d6c3dc50a82f7a2345b88fd 100644 --- a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C +++ b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -190,16 +190,15 @@ NonlinearKEShih::NonlinearKEShih mesh_ ), - gradU_(fvc::grad(U)), eta_ ( k_/bound(epsilon_, epsilonMin_) - *sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))) + *sqrt(2.0*magSqr(0.5*(fvc::grad(U) + T(fvc::grad(U))))) ), ksi_ ( k_/epsilon_ - *sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))) + *sqrt(2.0*magSqr(0.5*(fvc::grad(U) - T(fvc::grad(U))))) ), Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), fEta_(A2_ + pow(eta_, 3.0)), @@ -215,11 +214,11 @@ NonlinearKEShih::NonlinearKEShih *( Ctau1_/fEta_ *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() + (fvc::grad(U) & fvc::grad(U)) + + (fvc::grad(U) & fvc::grad(U))().T() ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) + + Ctau2_/fEta_*(fvc::grad(U) & T(fvc::grad(U))) + + Ctau3_/fEta_*(T(fvc::grad(U)) & fvc::grad(U)) ) ) ) @@ -323,16 +322,17 @@ void NonlinearKEShih::correct() return; } - gradU_ = fvc::grad(U_); + tmp<volTensorField> tgradU = fvc::grad(U_); + const volTensorField& gradU = tgradU(); // generation term - tmp<volScalarField> S2 = symm(gradU_) && gradU_; + tmp<volScalarField> S2 = symm(gradU) && gradU; volScalarField G ( "RASModel::G", Cmu_*sqr(k_)/epsilon_*S2 - - (nonlinearStress_ && gradU_) + - (nonlinearStress_ && gradU) ); #include "nonLinearWallFunctionsI.H" @@ -375,8 +375,8 @@ void NonlinearKEShih::correct() // Re-calculate viscosity - eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))); - ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))); + eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU + T(gradU)))); + ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU - T(gradU)))); Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_)); fEta_ = A2_ + pow(eta_, 3.0); @@ -390,11 +390,11 @@ void NonlinearKEShih::correct() *( Ctau1_/fEta_ *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() + (gradU & gradU) + + (gradU & gradU)().T() ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) + + Ctau2_/fEta_*(gradU & T(gradU)) + + Ctau3_/fEta_*(T(gradU) & gradU) ) ); } diff --git a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H index 9c18ab71e6d395264d44a236e9242fa0a52458b7..c7ad8a371313005e06ff2f9499ebbc803d9dd994 100644 --- a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H +++ b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -82,7 +82,6 @@ protected: volScalarField k_; volScalarField epsilon_; - volTensorField gradU_; volScalarField eta_; volScalarField ksi_; volScalarField Cmu_; diff --git a/src/turbulenceModels/incompressible/RAS/include/nonLinearWallFunctionsI.H b/src/turbulenceModels/incompressible/RAS/include/nonLinearWallFunctionsI.H index 9489ad078fa3dbd01744b911704b383c6484c1b6..f5be25729133d4f036ebb3ed719af7a6f5e15481 100644 --- a/src/turbulenceModels/incompressible/RAS/include/nonLinearWallFunctionsI.H +++ b/src/turbulenceModels/incompressible/RAS/include/nonLinearWallFunctionsI.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -104,7 +104,7 @@ Description *magFaceGradU[facei] *Cmu25*sqrt(k_[faceCelli]) /(kappa_.value()*y_[patchi][facei]) - - (nonlinearStress_[faceCelli] && gradU_[faceCelli]); + - (nonlinearStress_[faceCelli] && gradU[faceCelli]); } } }