void dynLagrangianCsBound::correct(const tmp<volTensorField>& gradU) { LESModel::correct(gradU); volSymmTensorField S(dev(symm(gradU()))); volScalarField magS(mag(S)); volVectorField Uf(filter_(U())); volSymmTensorField Sf(dev(symm(fvc::grad(Uf)))); volScalarField magSf(mag(Sf)); volSymmTensorField L(dev(filter_(sqr(U())) - (sqr(filter_(U()))))); volSymmTensorField M(2.0*sqr(delta())*(filter_(magS*S) - 4.0*magSf*Sf)); volScalarField invT ( (1.0/(theta_.value()*delta()))*pow(flm_*fmm_, 1.0/8.0) ); volScalarField LM(L && M); fvScalarMatrix flmEqn ( fvm::ddt(flm_) + fvm::div(phi(), flm_) == invT*LM - fvm::Sp(invT, flm_) ); flmEqn.relax(); flmEqn.solve(); bound(flm_, flm0_); volScalarField MM(M && M); fvScalarMatrix fmmEqn ( fvm::ddt(fmm_) + fvm::div(phi(), fmm_) == invT*MM - fvm::Sp(invT, fmm_) ); fmmEqn.relax(); fmmEqn.solve(); bound(fmm_, fmm0_); updateSubGridScaleFields(gradU); }
CTransform CTransform::Translate(const CVector3& translationVec) { CMatrix4x4 T(1.0, 0.0, 0.0, translationVec.x, 0.0, 1.0, 0.0, translationVec.y, 0.0, 0.0, 1.0, translationVec.z, 0.0, 0.0, 0.0, 1.0); CMatrix4x4 invT(1.0, 0.0, 0.0, -translationVec.x, 0.0, 1.0, 0.0, -translationVec.y, 0.0, 0.0, 1.0, -translationVec.z, 0.0, 0.0, 0.0, 1.0); return CTransform(T, invT); }
void dynamicLagrangian<BasicTurbulenceModel>::correct() { if (!this->turbulence_) { return; } // Local references const surfaceScalarField& phi = this->phi_; const volVectorField& U = this->U_; LESeddyViscosity<BasicTurbulenceModel>::correct(); tmp<volTensorField> tgradU(fvc::grad(U)); const volTensorField& gradU = tgradU(); volSymmTensorField S(dev(symm(gradU))); volScalarField magS(mag(S)); volVectorField Uf(filter_(U)); volSymmTensorField Sf(dev(symm(fvc::grad(Uf)))); volScalarField magSf(mag(Sf)); volSymmTensorField L(dev(filter_(sqr(U)) - (sqr(filter_(U))))); volSymmTensorField M ( 2.0*sqr(this->delta())*(filter_(magS*S) - 4.0*magSf*Sf) ); volScalarField invT ( (1.0/(theta_.value()*this->delta()))*pow(flm_*fmm_, 1.0/8.0) ); volScalarField LM(L && M); fvScalarMatrix flmEqn ( fvm::ddt(flm_) + fvm::div(phi, flm_) == invT*LM - fvm::Sp(invT, flm_) ); flmEqn.relax(); flmEqn.solve(); bound(flm_, flm0_); volScalarField MM(M && M); fvScalarMatrix fmmEqn ( fvm::ddt(fmm_) + fvm::div(phi, fmm_) == invT*MM - fvm::Sp(invT, fmm_) ); fmmEqn.relax(); fmmEqn.solve(); bound(fmm_, fmm0_); correctNut(gradU); }