diff --git a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C index b8313c57253b7331cd1e1a4f679c62719aa603ba..a16ca46fbcd1ceff0ae325fc8dd2931beb642f3a 100644 --- a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C +++ b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C @@ -149,6 +149,17 @@ Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::DPMIncompressibleTurbulenceModel<TransportModel>::divDevReff @@ -170,6 +181,19 @@ Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devRhoReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return nullptr; +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::DPMIncompressibleTurbulenceModel<TransportModel>::divDevRhoReff diff --git a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H index 914c93d72ffff5637521fcee8be05578e2078ec4..14d36e9f2f78aa99ef90d7ef1123c1e6addea8f8 100644 --- a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H +++ b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H @@ -116,12 +116,24 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; }; diff --git a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H index 07de20a43d8972e1d51885da579598800c6e0c95..abed13fee96d24cfeebf4f4b758dd707ddad01dd 100644 --- a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H +++ b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H @@ -123,6 +123,13 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp<volSymmTensorField> devRhoReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const = 0; diff --git a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C index 56c7381703fa549ee3be104142abd6efbbe14787..e197d22803d00edb139cc1915fb13b0fe829f5cf 100644 --- a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C +++ b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C @@ -107,6 +107,17 @@ Foam::IncompressibleTurbulenceModel<TransportModel>::devReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::IncompressibleTurbulenceModel<TransportModel>::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::IncompressibleTurbulenceModel<TransportModel>::divDevReff @@ -128,6 +139,19 @@ Foam::IncompressibleTurbulenceModel<TransportModel>::devRhoReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::IncompressibleTurbulenceModel<TransportModel>::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return nullptr; +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::IncompressibleTurbulenceModel<TransportModel>::divDevRhoReff diff --git a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H index 9734d732b09b68b828cdc5eaad8a22e9bb6720db..291fc37eb8c18da54e673f5fd5cca6c557c24bdc 100644 --- a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H +++ b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H @@ -108,12 +108,24 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H b/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H index 14715b344ee7d0cae1cf469dd3c002a855bd256f..b3dee1ed3bd35981d02c033e1f77c2e957d8ac19 100644 --- a/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H +++ b/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H @@ -139,6 +139,13 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp<volSymmTensorField> devReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const = 0; }; diff --git a/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H b/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H index adb8438702fa20664d4b09a8a8362cc704879ba5..5578a510818d3e107beca25ee236daec4e3b7172 100644 --- a/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H +++ b/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H @@ -138,6 +138,13 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp<volSymmTensorField> devReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const = 0; }; diff --git a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C index 137c92a0373f8f18502eaddb176ea81beed849ba..bee2cc0ed8e3059be93406d3e421288d9377c6a5 100644 --- a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C +++ b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C @@ -150,6 +150,17 @@ Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::devReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::divDevReff @@ -171,6 +182,19 @@ Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::devRhoReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return nullptr; +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::divDevRhoReff diff --git a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H index b25692493e13616dfc155bf54361b04d98c2aeca..cebba9df4fe5a901dbf3e56dcab6f5b6d72c4425 100644 --- a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H +++ b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H @@ -117,12 +117,24 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; }; diff --git a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C index dcf05d0a57616820aca64d816f3ddb459ca4af3c..a3a7b42d622e0edec60109e2c3ec495b266cad01 100644 --- a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C +++ b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C @@ -208,6 +208,17 @@ Foam::ReynoldsStress<BasicTurbulenceModel>::k() const template<class BasicTurbulenceModel> Foam::tmp<Foam::volSymmTensorField> Foam::ReynoldsStress<BasicTurbulenceModel>::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template<class BasicTurbulenceModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::ReynoldsStress<BasicTurbulenceModel>::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -223,7 +234,7 @@ Foam::ReynoldsStress<BasicTurbulenceModel>::devRhoReff() const ), this->alpha_*this->rho_*R_ - (this->alpha_*this->rho_*this->nu()) - *dev(twoSymm(fvc::grad(this->U_))) + *dev(twoSymm(fvc::grad(U))) ) ); } diff --git a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.H b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.H index 371d1ecb52c195d56337c4c7a826df55eb1cf8b9..612cc61047475571ef82cbf5e8088235e6286a7a 100644 --- a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.H +++ b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.H @@ -140,6 +140,12 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C index ed314a944be43c1b54d0cdb11387f02f28c384bc..6c03e0eb00849a70d3c8ad7b1ba22e0928c36e65 100644 --- a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C +++ b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C @@ -104,6 +104,7 @@ bool Maxwell<BasicTurbulenceModel>::read() return false; } + template<class BasicTurbulenceModel> tmp<Foam::volSymmTensorField> Maxwell<BasicTurbulenceModel>::R() const @@ -111,9 +112,18 @@ Maxwell<BasicTurbulenceModel>::R() const return sigma_; } + template<class BasicTurbulenceModel> tmp<Foam::volSymmTensorField> Maxwell<BasicTurbulenceModel>::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template<class BasicTurbulenceModel> +tmp<Foam::volSymmTensorField> +Maxwell<BasicTurbulenceModel>::devRhoReff(const volVectorField& U) const { return tmp<volSymmTensorField> ( @@ -129,7 +139,7 @@ Maxwell<BasicTurbulenceModel>::devRhoReff() const ), this->alpha_*this->rho_*sigma_ - (this->alpha_*this->rho_*this->nu()) - *dev(twoSymm(fvc::grad(this->U_))) + *dev(twoSymm(fvc::grad(U))) ) ); } diff --git a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H index 1f3ce3c6863ed322761e1bcc4b7a2d2a5306698a..d446622fa41df231ffb489525fe654ce0c59c699 100644 --- a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H +++ b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H @@ -143,6 +143,12 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C index e6515388ca190fcd5b7e816a45322cdcb429602f..b71797502ba7825d4897736017d59d1b4deb527b 100644 --- a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C +++ b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C @@ -70,6 +70,17 @@ bool Foam::linearViscousStress<BasicTurbulenceModel>::read() template<class BasicTurbulenceModel> Foam::tmp<Foam::volSymmTensorField> Foam::linearViscousStress<BasicTurbulenceModel>::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template<class BasicTurbulenceModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::linearViscousStress<BasicTurbulenceModel>::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -84,7 +95,7 @@ Foam::linearViscousStress<BasicTurbulenceModel>::devRhoReff() const IOobject::NO_WRITE ), (-(this->alpha_*this->rho_*this->nuEff())) - *dev(twoSymm(fvc::grad(this->U_))) + *dev(twoSymm(fvc::grad(U))) ) ); } diff --git a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.H b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.H index 3c81b7227e8c9afc7f56d4a546510a28f32f0cdd..c307c6268c4b0d2f7c045d5577bb5f15782e26cb 100644 --- a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.H +++ b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.H @@ -91,6 +91,12 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C index d92488a662f5ee73afb22c89389413002162455d..699fa25e7b80f08944b8e579a802dd6fd62dfbc5 100644 --- a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C +++ b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C @@ -88,12 +88,24 @@ Foam::nonlinearEddyViscosity<BasicTurbulenceModel>::R() const template<class BasicTurbulenceModel> Foam::tmp<Foam::volSymmTensorField> Foam::nonlinearEddyViscosity<BasicTurbulenceModel>::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template<class BasicTurbulenceModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::nonlinearEddyViscosity<BasicTurbulenceModel>::devRhoReff +( + const volVectorField& U +) const { tmp<volSymmTensorField> tdevRhoReff ( - eddyViscosity<BasicTurbulenceModel>::devRhoReff() + eddyViscosity<BasicTurbulenceModel>::devRhoReff(U) ); tdevRhoReff.ref() += this->rho_*nonlinearStress_; + return tdevRhoReff; } diff --git a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.H b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.H index 2d97c5ba70b8e64c765f331b8c1da898c78f2db9..be6f16c6f63fce9cc435212790ed22ab4b337c47 100644 --- a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.H +++ b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.H @@ -107,6 +107,12 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C index 7bed329b68c46a4a0b4c06662dd180054450a123..d79320f848a6b1c24e1a660a161349cb08d363f8 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C @@ -71,6 +71,15 @@ adjointLaminar::adjointLaminar tmp<volSymmTensorField> adjointLaminar::devReff() const { const volVectorField& Ua = adjointVars_.Ua(); + return devReff(Ua); +} + + +tmp<volSymmTensorField> adjointLaminar::devReff +( + const volVectorField& U +) const +{ return tmp<volSymmTensorField> ( new volSymmTensorField @@ -83,7 +92,7 @@ tmp<volSymmTensorField> adjointLaminar::devReff() const IOobject::NO_READ, IOobject::NO_WRITE ), - -nu()*dev(twoSymm(fvc::grad(Ua))) + -nu()*dev(twoSymm(fvc::grad(U))) ) ); } diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H index e0e155e5fd261bef23d4f668cf6589432b6f7767..51a52df5d6f46cd89c2610e11630cbb406032584 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H @@ -100,6 +100,12 @@ public: //- Return the effective stress tensor, i.e. the adjointLaminar stress virtual tmp<volSymmTensorField> devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const; + //- Return the diffusion term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H index 4b654311ae3bf20ba5b0842b0771de476c27ec53..6abd793144176151a3a477f85ced978ffadd0080 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H @@ -261,6 +261,12 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp<volSymmTensorField> devReff() const = 0; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const = 0; + //- Return the diffusion term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const = 0; diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C index 073ea69ffde198c6b27a6ce56dbb951ff0670fa6..7878349822708ebf00a5f0326e72597cb5e38974 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C @@ -703,7 +703,17 @@ adjointSpalartAllmaras::adjointSpalartAllmaras tmp<volSymmTensorField> adjointSpalartAllmaras::devReff() const { const volVectorField& Ua = adjointVars_.UaInst(); - return tmp<volSymmTensorField>::New + return devReff(Ua); +} + + +tmp<volSymmTensorField> adjointSpalartAllmaras::devReff +( + const volVectorField& U +) const +{ + return + tmp<volSymmTensorField>::New ( IOobject ( @@ -713,7 +723,7 @@ tmp<volSymmTensorField> adjointSpalartAllmaras::devReff() const IOobject::NO_READ, IOobject::NO_WRITE ), - -nuEff()*dev(twoSymm(fvc::grad(Ua))) + -nuEff()*dev(twoSymm(fvc::grad(U))) ); } diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H index 6404c0169b04d7b2b5f179c1d6d65b7fa4a24dd8..91606032411581530284e13890e30f4a336b68fa 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H @@ -317,6 +317,8 @@ public: virtual tmp<volSymmTensorField> devReff() const; + virtual tmp<volSymmTensorField> devReff(const volVectorField& U) const; + virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; virtual tmp<volVectorField> adjointMeanFlowSource(); diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H index 93d4b673eaa93e9dc2e2cbf0a9bdb7d44edf7235..e7039465e53fee1835ff04b9a2c9d1490455ddb8 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H @@ -186,6 +186,12 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp<volSymmTensorField> devReff() const = 0; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const = 0; + //- Return the diffusion term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const = 0; diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index f2831ad3d888ea478de3bd235fae648c0abb2541..25572bfb3c92795708dece8e7eb4d22bee74979e 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -311,6 +311,16 @@ Foam::RASModels::kineticTheoryModel::pPrimef() const Foam::tmp<Foam::volSymmTensorField> Foam::RASModels::kineticTheoryModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp<Foam::volSymmTensorField> +Foam::RASModels::kineticTheoryModel::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -318,14 +328,14 @@ Foam::RASModels::kineticTheoryModel::devRhoReff() const ( IOobject ( - IOobject::groupName("devRhoReff", U_.group()), + IOobject::groupName("devRhoReff", U.group()), runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - (rho_*nut_) - *dev(twoSymm(fvc::grad(U_))) + *dev(twoSymm(fvc::grad(U))) - ((rho_*lambda_)*fvc::div(phi_))*symmTensor::I ) ); diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H index aa18a9c39031b7d3363180fd4448a0dd5f852e2a..6bec967ed79180104288ef370d73bc2c82616cb1 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H @@ -223,6 +223,12 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C index 1b29db5e4d4bb60c4877ccf5a46dfe933964212a..bf6fbd3316ddb2a91058505c34430e3ada383257 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C @@ -200,6 +200,16 @@ Foam::RASModels::phasePressureModel::pPrimef() const Foam::tmp<Foam::volSymmTensorField> Foam::RASModels::phasePressureModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp<Foam::volSymmTensorField> +Foam::RASModels::phasePressureModel::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -207,7 +217,7 @@ Foam::RASModels::phasePressureModel::devRhoReff() const ( IOobject ( - IOobject::groupName("devRhoReff", U_.group()), + IOobject::groupName("devRhoReff", U.group()), runTime_.timeName(), mesh_, IOobject::NO_READ, diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H index d9c41e8f3df2ce9ee9fd205a943fb1ff8077452f..5cde6bea3f5681fc76d857e53806dbca2e54345b 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H @@ -174,6 +174,12 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index 588a310b1ab50aa1acefc53a0e26a622f3b73ee3..bca4b784428328a4bf3783563eee02f9baaba6c3 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -311,6 +311,16 @@ Foam::RASModels::kineticTheoryModel::pPrimef() const Foam::tmp<Foam::volSymmTensorField> Foam::RASModels::kineticTheoryModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp<Foam::volSymmTensorField> +Foam::RASModels::kineticTheoryModel::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -318,14 +328,14 @@ Foam::RASModels::kineticTheoryModel::devRhoReff() const ( IOobject ( - IOobject::groupName("devRhoReff", U_.group()), + IOobject::groupName("devRhoReff", U.group()), runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - (rho_*nut_) - *dev(twoSymm(fvc::grad(U_))) + *dev(twoSymm(fvc::grad(U))) - ((rho_*lambda_)*fvc::div(phi_))*symmTensor::I ) ); diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H index a9180f6afd320459b284bcc636915311d0ae2622..2d5b2c14022564c11f019227a232ded8df3448b6 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H @@ -223,6 +223,12 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C index f20ed8a6334b9da84ac89a3182caaecac986edeb..42fa6cfbac522dc77c6c26b54080c8d55263c950 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C @@ -203,12 +203,22 @@ Foam::RASModels::phasePressureModel::pPrimef() const Foam::tmp<Foam::volSymmTensorField> Foam::RASModels::phasePressureModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp<Foam::volSymmTensorField> +Foam::RASModels::phasePressureModel::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField>::New ( IOobject ( - IOobject::groupName("devRhoReff", U_.group()), + IOobject::groupName("devRhoReff", U.group()), runTime_.timeName(), mesh_, IOobject::NO_READ, diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H index fa54e84afe29d5db4f9968e4d6f2ddeb417494f2..84c9502a7d803bdd05eaab09fdb1ff541473a261 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H @@ -178,6 +178,12 @@ public: //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const;